[ https://issues.apache.org/jira/browse/GERONIMO-5987?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13043024#comment-13043024 ]
Russell E Glaue commented on GERONIMO-5987: ------------------------------------------- Apparently there are two places in which the ActiveMQ Host and Port could be configured in a bundle deployment. 1. var/config/config-substitutions.properties 2. etc/blueprint-activemq-placeholder.cfg (The fact that the second file has the word "placeholder" in the file name makes me curious about the developer's status of the ActiveMQ plugin.) Configuring the port in either file is not utilized by ActiveMQ Also, the "activemq.data" working directory can be configured in the second file. But ActiveMQ does not utilize that either. > 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 > 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