[ https://issues.apache.org/jira/browse/GERONIMO-5987?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13084942#comment-13084942 ]
Rex Wang commented on GERONIMO-5987: ------------------------------------ Thanks Kevan, I think we'd better open a separate jira, so I filed it in GERONIMO-6110. > The ActiveMQ working directory and port are not referenced correctly - > multiple instances not possible > ------------------------------------------------------------------------------------------------------ > > Key: GERONIMO-5987 > URL: https://issues.apache.org/jira/browse/GERONIMO-5987 > Project: Geronimo > Issue Type: Bug > Security Level: public(Regular issues) > Components: ActiveMQ > Affects Versions: 3.0-M1, 3.0-M2, 3.0 > Environment: Linux x86, Red Hat Enterprise Linux Server release 5.4 > (Tikanga) > Reporter: Russell E Glaue > Assignee: Rex Wang > Labels: geronimo > > I am testing with geronimo-tomcat7-javaee6-web-3.0-SNAPSHOT, > geronimo-tomcat7-javaee6-web-3.0-20110523.171218-97 > ActiveMQ is configured to run as "org.apache.geronimo.home.dir/var/activemq" > and port 61616, and does not cooperate with multi-server configurations, nor > does it use the PortOffset. This is the use of the > "org.apache.geronimo.server.name" option and PortOffset in > "var/config/config-substitutions.properties". (see: > https://cwiki.apache.org/GMOxDOC30/running-multiple-geronimo-instances.html) > First, Problem with working directory > When wanting to run more than a single server instance, the ActiveMQ startup > will block waiting for the lock file "$GERONIMO_HOME/var/activemq/lock" to > become available. > Obviously this causes any server instance started after the first server > instance is started to block during startup while waiting for the lock file > to become available. > Second, Problem with PortOffset > When configuring the PortOffset in > "var/config/config-substitutions.properties", all Geroniomo components expect > and attempt to connect to ActiveMQ at the port {ActiveMQ + PortOffset}. > However, regardless of what you set the PortOffset to be, the ActiveMQ > service only ever binds to port 61616, the default configured port (or > whatever you have the port set as for this service). > Steps to repeat working directory problem: > 1. Download and unpack G3.0 SNAPSHOT (3.0-20110523 tested) > 2. Create the server instances: > -- 2A. cd ${GERONIMO_HOME} > -- 2B-1. mkdir gserver1 > -- 2B-2. cp -rp var gserver1/ > -- 2B-3. cp -rp etc gserver1/ > -- 2B-4. cp -rp repository gserver1/ > 3. update the "PortOffset" parameter in > gserver1/var/config/config-substitutions.properties for the gserver1 instance. > 4. Start the default instance and gserver1 instance: > -- bin/startup > -- env GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=gserver1 bin/startup > 5. `tail -f gserver1/var/logs/geronimo.log` and you will see this as the last > line that outputs: > "2011-05-31 16:26:39,609 WARN [AMQPersistenceAdapter] Waiting to Lock the > Store var/activemq" > The server waits here indefinitely. > 6. Shutdown the default instance and you will see the "gserver1" instance > continue on in the startup procedures. (of course you will see errors due to > the PortOffset problem) > * If I first start the "gserver1" instance by itself (before starting the > default instance), the directory "org.apache.geronimo.home.dir/var/activemq" > is created and populated. Instead it should be > "org.apache.geronimo.home.dir/org.apache.geronimo.server.name/var/activemq" > that is created and populated. > * Probably the patch should be to reference the ActiveMQ working directory as > "org.apache.geronimo.server.dir/var/activemq" > Steps to repeat PortOffset problem: > 1. Download and unpack G3.0 SNAPSHOT (3.0-20110523 tested) > 2. Create the server instances: > -- 2A. cd ${GERONIMO_HOME} > -- 2B-1. mkdir gserver1 > -- 2B-2. cp -rp var gserver1/ > -- 2B-3. cp -rp etc gserver1/ > -- 2B-4. cp -rp repository gserver1/ > 3. update the "PortOffset" parameter in > gserver1/var/config/config-substitutions.properties in the instance > 4. Start the server instance: > -- env GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=gserver1 bin/startup > This is the two error messages you receive when configuring PortOffset to 100 > (for example). The second error message, regarding XAResource, repeats: > - > 2011-06-01 16:26:49,883 ERROR [MCFConnectionInterceptor] Error occurred > creating > ManagedConnection for handle: nullManagedConnectionInfo: > org.apache.geronimo.connector.outbound.ManagedConnectionInfo@1c211b3. mc: > null] > javax.resource.ResourceException: Could not create connection. > at > org.apache.activemq.ra.ActiveMQManagedConnectionFactory.createManagedConnection(ActiveMQManagedConnectionFactory.java:171) > ... > Caused by: java.net.ConnectException: Connection refused > ... > - > This one reveals the problem that ActiveMQ ia not using PortOffset. > RecoveryController wants to connect to ${ActiveMQ + PortOffset} (61616 + 100). > - > 2011-06-01 16:26:49,885 ERROR [RecoveryController] Recovery error: Could not > get > XAResource for recovery for mcf: > geronimo:J2EEApplication=null,J2EEServer=geronimo,JCAConnectionFactory=DefaultActiveMQConnectionFactory,JCAManagedConnectionFactory=DefaultActiveMQConnectionFactory,JCAResource=geronimo-activemq-ra-3.0-SNAPSHOT,ResourceAdapter=geronimo-activemq-ra-3.0-SNAPSHOT,ResourceAdapterModule=org.apache.geronimo.configs/activemq-ra/3.0-SNAPSHOT/car,j2eeType=JCAConnectionManager,name=DefaultActiveMQConnectionFactory > 2011-06-01 16:27:05,894 ERROR [MCFConnectionInterceptor] Error occurred > creating > ManagedConnection for handle: nullManagedConnectionInfo: > org.apache.geronimo.connector.outbound.ManagedConnectionInfo@287dba. mc: null] > javax.resource.ResourceException: Could not create connection. > ... > Caused by: javax.jms.JMSException: Could not connect to broker URL: > tcp://localhost:61716. Reason: java.net.ConnectException: Connection refused > ... > - > In this tested scenario, ActiveMQ is binding to port 61616, even though the > PortOffset value is 100. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira