[ 
https://issues.apache.org/jira/browse/GERONIMO-6281?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13213762#comment-13213762
 ] 

Russell E Glaue commented on GERONIMO-6281:
-------------------------------------------

"
For activemq.data, you just need to use a relative path for a new instance. For 
example, if the instance name is GERONIMO_SERVER=inst1, then you set it like 
this:
activemq.data=inst1/var/activemq

No need to add a absolute path there.
"

The problem is that ActiveMQ access "activemq.data" relative to the directory 
you are in when you start Geronimo.
That is if you start Geronimo, without the no configured instances, like this:
- $ cd /opt
- $ export GERONIMO_HOME=/opt/geronimo
- $ /opt/geronomo/bin/geronimo start
Then ActiveMQ uses the following path as "activemq.data":
- /opt/var/activemq

In this scenario, we want ActiveMQ to use {{GERONIMO_HOME/var/activemq}}, and 
not {{PWD/var/activemq}}
For the configured instance example you provide, ActiveMQ would create 
{{/opt/inst1/var/activemq}}. It would not use 
{{/opt/geronimo/inst1/var/activemq}} as you would expect.

Now take for example that I want to start Geronimo as a unix service.
If {{GERONIMO_HOME=/opt/geronimo}}
And the unix service starts geronimo in {{/}} (file system root)
ActiveMQ will create {{/var/activemq}}
ActiveMQ does not use {{GERONIMO_HOME/var/activemq}} as you would be expecting

Geronimo will fail to start if it is being started by a non-root user since 
ActiveMQ will not have permissions to create {{/var/activemq}}

How do we address this?
My recommendation is to change ActiveMQ to use org.apache.geronimo.server.dir 
as the base path and not PWD.
                
> Geronimo home.dir is being used when server.dir should be used instead for 
> SnapshotConfigXMLBuilder, ActiveMQ, and Karaf
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GERONIMO-6281
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-6281
>             Project: Geronimo
>          Issue Type: Sub-task
>      Security Level: public(Regular issues) 
>          Components: ActiveMQ, javaee6
>    Affects Versions: 3.0-beta-1
>         Environment: Linux x86, Red Hat Enterprise Linux Server release 5.4 
> (Tikanga); Java JDK1.6.0_25
>            Reporter: Russell E Glaue
>            Assignee: Russell E Glaue
>            Priority: Minor
>              Labels: geronimo
>         Attachments: geronimo-6281-activemq-config-substitutions.patch, 
> geronimo-6281-activemq.patch, geronimo-6281-karaf.patch, 
> geronimo-6281-snapshot.patch, geronimo-6281-trunk-karaf.patch
>
>
> This issue is related to GERONIMO-6270 , GERONIMO-6175 , GERONIMO-6174 , 
> GERONIMO-5987 , and is being used to specifically track modifications related 
> to correctly using the following properties:
> # org.apache.geronimo.home.dir (GERONIMO_HOME)
> # org.apache.geronimo.server.dir (GERONIMO_SERVER - new shell variable 
> introduced in GERONIMO-6275)
> # karaf.base
> # karaf.home
> Primary issue to be resolved: The org.apache.geronimo.home.dir property 
> (GERONIMO_HOME) is being referenced when the org.apache.geronimo.server.dir 
> property (GERONIMO_SERVER) should be instead.
> I have identified three places in Geronimo errors are occurring due to 
> improper use of the above java properties:
> # SnapshotConfigXMLBuilder - originally reported in GERONIMO-6270
> # ActiveMQ - is reported in a comment of GERONIMO-5987 , and is being 
> reported here as requested.
> # Karaf - is additionally reported in GERONIMO-6174 .
> Note the three issues in startup:
> # Karaf initialization script etc/shell.init.script
> -- Error in initialization script: /opt/geronimo3/etc/shell.init.script (No 
> such file or directory)
> -- Reason:
> --- This is because karaf.home/etc/shell.init.script is being accessed when 
> instead it should be karaf.base/etc/shell.init.script
> -- Solution:
> --- The {karaf.base} property should be the same value as the 
> {org.apache.geronimo.server.dir} property
> -- Affected Code:
> --- 
> framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/server/RunClientMojo.java
> --- 
> framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/server/StartServerMojo.java
> --- 
> trunk/framework/configs/karaf-framework/src/main/distribution/text/etc/system.properties
> --- 
> trunk/framework/features/framework/src/main/distribution/text/etc/system.properties
> --- 
> trunk/framework/features/client/src/main/filtered-resources/resources/instances/client/etc/system.properties
> --- 
> trunk/framework/features/client/src/main/filtered-resources/resources/instances/client/etc/org.ops4j.pax.url.mvn.cfg
> --- 
> trunk/framework/modules/geronimo-shell-base/src/main/java/org/apache/geronimo/shell/geronimo/StartServerCommand.java
> --- 
> trunk/framework/modules/geronimo-shell-base/src/main/java/org/apache/geronimo/shell/geronimo/StartClientCommand.java
> --- 
> trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/serverinfo/BasicServerInfo.java
> --- 
> trunk/framework/modules/geronimo-main/src/main/java/org/apache/geronimo/main/FrameworkLauncher.java
> -- These code files are affected, but in relation to specifying the repository
> --- 
> trunk/framework/configs/karaf-framework/src/main/distribution/text/etc/org.ops4j.pax.url.mvn.cfg
> --- 
> trunk/framework/features/framework/src/main/distribution/text/etc/org.ops4j.pax.url.mvn.cfg
> # SnapshotConfigXMLBuilder var/monitoring/ directory
> -- (A) ERROR [SnapshotConfigXMLBuilder] Could not make the directory 
> /opt/geronimo3/var/monitoring/
> -- (B) ERROR [SnapshotConfigXMLBuilder] 
> /opt/geronimo3/var/monitoring/snapshot-config.xml (Not a directory)
> -- Reason:
> --- This is because SnapshotConfigXMLBuilder is looking for 
> $PWD/var/monitoring
> -- Solution:
> --- SnapshotConfigXMLBuilder should instead be using a full path to 
> var/monitoring, i.e. org.apache.geronimo.server.dir/var/monitoring
> -- Affected code:
> --- 
> trunk/plugins/monitoring/agent-ejb/src/main/java/org/apache/geronimo/monitoring/ejb/snapshot/SnapshotProcessor.java
> --- 
> trunk/plugins/monitoring/agent-jar/src/main/java/org/apache/geronimo/monitoring/snapshot/SnapshotConfigXMLBuilder.java
> # ActiveMQ var/activemq/ directory and Lock File
> -- WARN  [AMQPersistenceAdapter] Waiting to Lock the Store var/activemq
> -- Reason:
> --- This is because the ActiveMQ will create and use a var directory relative 
> to the path in which Geronimo was started (Note this may not be the actual 
> GERONIMO_HOME or GERONIMO_SERVER directory).
> --- If two Geronimo instances are started from the same directory, they will 
> share the same var directory, thus they will both want to use the same 
> ActiveMQ lock file. This will conflict in the usage of other files in 
> var/activemq too.
> -- Solution:
> --- ActiveMQ should instead be using a full path to var/activemq, i.e. 
> org.apache.geronimo.server.dir/var/activemq
> -- Affected code:
> --- 
> trunk/plugins/activemq/activemq-portlets/src/main/java/org/apache/geronimo/console/jmsmanager/server/JMSBrokerPortlet.java
> Setup for reproducing the errors:
> Follow the example for running multiple instances within the Geronimo Wiki, 
> here:
> # 
> https://cwiki.apache.org/confluence/display/GMOxDOC30/Running+multiple+Geronimo+instances
> # Then remove the GERONIMO_HOME/var and GERONIMO_HOME/etc directories
> # Create an empty file $PWD/var/monitoring to prevent 
> SnapshotConfigXMLBuilder from creating $PWD/var/monitoring when it discovers 
> it does not exist
> The errors can be reproduced setting up Geronimo as directed and using the 
> start procedure below, resulting with the startup output given. The patch in 
> GERONIMO-6275 was applied which allows the easier start procedure of Geronimo 
> instances. However, the patch is not necessary to reproduce the errors. Use 
> the start scripts in the above mentioned wiki page for "running multiple 
> geronimo instances" as an alternative. The snapshot 
> geronimo-tomcat7-javaee6-3.0-SNAPSHOT-20111220 was used for testing.
> Example showing both the issue with Karaf and SnapshotConfigXMLBuilder
> {noformat:borderStyle=solid}
> [ger@server /opt/geronimo3]# /bin/rm -r var
> [ger@server /opt/geronimo3]# mkdir var; touch var/monitoring
> [ger@server /opt/geronimo3]# env JAVA_HOME=/usr/jdk1.6.0 
> GERONIMO_SERVER=/opt/geronimo3/gserv1 /opt/geronimo3/bin/geronimo run
> Using GERONIMO_HOME:   /opt/geronimo3
> Using GERONIMO_SERVER: /opt/geronimo3/gserv1
> Using GERONIMO_TMPDIR: /opt/geronimo3/gserv1/var/temp
> Using JRE_HOME:        /usr/jdk1.6.0/jre
>                                                           
>      ______                       _                       
>     / ____/___  _________  ____  (_)____ ___  ____        
>    / / __ / _ \/ ___/ __ \/ __ \/ // __ `__ \/ __ \  
>   / /_/ //  __/ /  / /_/ / / / / // / / / / / /_/ /       
>   \____/ \___/_/   \____/_/ /_/_//_/ /_/ /_/\____/    
>   Apache Geronimo (3.0-SNAPSHOT)
> Hit '<tab>' for a list of available commands
> and '[cmd] --help' for help on a specific command.
> Hit '<ctrl-d>' or 'osgi:shutdown' to shutdown Geronimo.
> Error in initialization script: /opt/geronimo3/etc/shell.init.script (No such 
> file or directory)
> geronimo> Booting Geronimo Kernel (in Java 1.6.0_25)...
> Starting Geronimo Application Server v3.0-SNAPSHOT
> [*****************************           ]  73%  35s  Loading agent-car-jmx   
>                                 2012-02-17 16:30:59,710 ERROR 
> [SnapshotConfigXMLBuilder] Could not make the directory 
> /opt/geronimo3/var/monitoring/
> 2012-02-17 16:30:59,711 ERROR [SnapshotConfigXMLBuilder] 
> /opt/geronimo3/var/monitoring/snapshot-config.xml (Not a directory)
> [****************************************] 100%  45s Startup complete         
>                                 
>   Listening on Ports:
>     1150 0.0.0.0 CORBA Naming Service
>     1199 0.0.0.0 RMI Naming
>     1627 0.0.0.0 Derby Connector
>     2101 0.0.0.0 OpenEJB SSL ORB Adapter
>     4301 0.0.0.0 OpenEJB Daemon
>     6982 0.0.0.0 OpenEJB ORB Adapter
>     8109 0.0.0.0 Tomcat Connector AJP TomcatAJPConnector
>     8180 0.0.0.0 Tomcat Connector HTTP BIO TomcatWebConnector
>     8543 0.0.0.0 Tomcat Connector HTTPS BIO TomcatWebSSLConnector
>    10099 0.0.0.0 JMX Remoting Connector
>    61716 0.0.0.0 ActiveMQ Transport Connector
>   Started Application Modules:
>     EAR: org.apache.geronimo.plugins/console-tomcat/3.0-SNAPSHOT/car
>     JAR: org.apache.geronimo.configs/mejb/3.0-SNAPSHOT/car
>     RAR: org.apache.geronimo.configs/activemq-ra/3.0-SNAPSHOT/car
>     RAR: org.apache.geronimo.configs/system-database/3.0-SNAPSHOT/car
>     RAR: org.apache.geronimo.plugins.monitoring/agent-ds/3.0-SNAPSHOT/car
>     RAR: org.apache.geronimo.plugins.monitoring/mconsole-ds/3.0-SNAPSHOT/car
>     RAR: org.apache.geronimo.plugins/uddi-db/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.configs/remote-deploy-tomcat/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.configs/uddi-tomcat/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.configs/welcome-tomcat/3.0-SNAPSHOT/car
>     WAR: 
> org.apache.geronimo.plugins.monitoring/mconsole-tomcat/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.plugins/activemq-console-tomcat/3.0-SNAPSHOT/car
>     WAR: 
> org.apache.geronimo.plugins/debugviews-console-tomcat/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.plugins/openejb-console-tomcat/3.0-SNAPSHOT/car
>     WAR: 
> org.apache.geronimo.plugins/plancreator-console-tomcat/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.plugins/plugin-console-tomcat/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.plugins/sysdb-console-tomcat/3.0-SNAPSHOT/car
>   Web Applications:
>     /
>     /activemq
>     /console
>     /console-base
>     /debug-views
>     /juddi
>     /monitoring
>     /openejb-server
>     /plan-creator
>     /plugin
>     /remote-deploy
>     /system-database
> Geronimo Application Server started
> {noformat}
> Example showing ActiveMQ creating var directory relative to the path Geronimo 
> was started.
> Obviously if a second Geronimo instance was started, there would be a 
> conflict with the ActiveMQ lock file.
> {noformat:borderStyle=solid}
> [ger@server /opt]# pwd
> /opt
> [ger@server /opt]# ls -l var
> ls: var: No such file or directory
> [ger@server /opt]# env JAVA_HOME=/usr/jdk1.6.0 
> GERONIMO_SERVER=/opt/geronimo3/gserv1 /opt/geronimo3/bin/geronimo run
> Using GERONIMO_HOME:   /opt/geronimo3
> Using GERONIMO_SERVER: /opt/geronimo3/gserv1
> Using GERONIMO_TMPDIR: /opt/geronimo3/gserv1/var/temp
> Using JRE_HOME:        /usr/jdk1.6.0/jre
>                                                           
>      ______                       _                       
>     / ____/___  _________  ____  (_)____ ___  ____        
>    / / __ / _ \/ ___/ __ \/ __ \/ // __ `__ \/ __ \  
>   / /_/ //  __/ /  / /_/ / / / / // / / / / / /_/ /       
>   \____/ \___/_/   \____/_/ /_/_//_/ /_/ /_/\____/    
>   Apache Geronimo (3.0-SNAPSHOT)
> Hit '<tab>' for a list of available commands
> and '[cmd] --help' for help on a specific command.
> Hit '<ctrl-d>' or 'osgi:shutdown' to shutdown Geronimo.
> geronimo> Booting Geronimo Kernel (in Java 1.6.0_25)...
> Starting Geronimo Application Server v3.0-SNAPSHOT
> [****************                        ]  42%  11s  Loading openjpa2        
>                                 2012-02-17 16:03:45,759 WARN  [aries] Managed 
> persistence context support is no longer available for use with the Aries 
> Blueprint container
> [****************************************] 100%  47s Startup complete         
>                                 
>   Listening on Ports:
>     1150 0.0.0.0 CORBA Naming Service
>     1199 0.0.0.0 RMI Naming
>     1627 0.0.0.0 Derby Connector
>     2101 0.0.0.0 OpenEJB SSL ORB Adapter
>     4301 0.0.0.0 OpenEJB Daemon
>     6982 0.0.0.0 OpenEJB ORB Adapter
>     8109 0.0.0.0 Tomcat Connector AJP TomcatAJPConnector
>     8180 0.0.0.0 Tomcat Connector HTTP BIO TomcatWebConnector
>     8543 0.0.0.0 Tomcat Connector HTTPS BIO TomcatWebSSLConnector
>    10099 0.0.0.0 JMX Remoting Connector
>    61716 0.0.0.0 ActiveMQ Transport Connector
>   Started Application Modules:
>     EAR: org.apache.geronimo.plugins/console-tomcat/3.0-SNAPSHOT/car
>     JAR: org.apache.geronimo.configs/mejb/3.0-SNAPSHOT/car
>     RAR: org.apache.geronimo.configs/activemq-ra/3.0-SNAPSHOT/car
>     RAR: org.apache.geronimo.configs/system-database/3.0-SNAPSHOT/car
>     RAR: org.apache.geronimo.plugins.monitoring/agent-ds/3.0-SNAPSHOT/car
>     RAR: org.apache.geronimo.plugins.monitoring/mconsole-ds/3.0-SNAPSHOT/car
>     RAR: org.apache.geronimo.plugins/uddi-db/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.configs/remote-deploy-tomcat/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.configs/uddi-tomcat/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.configs/welcome-tomcat/3.0-SNAPSHOT/car
>     WAR: 
> org.apache.geronimo.plugins.monitoring/mconsole-tomcat/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.plugins/activemq-console-tomcat/3.0-SNAPSHOT/car
>     WAR: 
> org.apache.geronimo.plugins/debugviews-console-tomcat/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.plugins/openejb-console-tomcat/3.0-SNAPSHOT/car
>     WAR: 
> org.apache.geronimo.plugins/plancreator-console-tomcat/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.plugins/plugin-console-tomcat/3.0-SNAPSHOT/car
>     WAR: org.apache.geronimo.plugins/sysdb-console-tomcat/3.0-SNAPSHOT/car
>   Web Applications:
>     /
>     /activemq
>     /console
>     /console-base
>     /debug-views
>     /juddi
>     /monitoring
>     /openejb-server
>     /plan-creator
>     /plugin
>     /remote-deploy
>     /system-database
> Geronimo Application Server started
> ^D
> 2012-02-17 16:16:26,021 WARN  [aries] Managed persistence context support is 
> no longer available for use with the Aries Blueprint container
> 2012-02-17 16:16:26,022 WARN  [context] The 
> TransactionSynchronizationRegistry used to manage persistence contexts is no 
> longer available. Managed persistence contexts will no longer be able to 
> integrate with JTA transactions, and will behave as if no there is no 
> transaction context at all times until a new 
> TransactionSynchronizationRegistry is available. Applications using managed 
> persistence contexts may not work correctly until a new JTA Transaction 
> services implementation is available.
> [ger@server /opt]# ls -l
> total 4
> drwxr-xr-x 17 root root 4096 Feb 17 14:17 geronimo3
> drwxr-xr-x 3  root root 4096 Feb 17 16:04 var
> [ger@server /opt]# tree /opt/var
> /opt/var
> `-- activemq
>     |-- journal
>     |   |-- data-1
>     |   `-- data-control
>     |-- kr-store
>     |   |-- data
>     |   |   |-- index-container-roots
>     |   |   `-- lock
>     |   `-- state
>     |       |-- data-kaha-1
>     |       |-- data-store-state-1
>     |       |-- hash-index-store-state_state
>     |       |-- index-kaha
>     |       |-- index-store-state
>     |       |-- index-transactions-state
>     |       `-- lock
>     `-- lock
> 5 directories, 12 files
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to