geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Russell E Glaue (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GERONIMO-6175) Environment variable org.apache.geronimo.repository.boot.path not used, Repository path does not observe named instances
Date Tue, 21 Feb 2012 17:04:34 GMT

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

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

The multiple repositories is for adding secondary repositories, and not for replacing the
boot repository.

It has been discussed on the mail list that multiple instances of Geronimo cannot safely share
the same repository because Geronimo is writing back to the repository for "global" artifacts.

If this is true, then one of two things should be done:
# Change Geronimo so that multiple instances can safely share a single "boot/global" repository
# Change the default location of the Geronimo "boot/global" repository from GERONIMO_HOME/repository
to GERONIMO_SERVER/repository


Can you verify that multiple Geronimo instances can safely share a common repository?

                
> Environment variable org.apache.geronimo.repository.boot.path not used, Repository path
does not observe named instances
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GERONIMO-6175
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-6175
>             Project: Geronimo
>          Issue Type: Sub-task
>      Security Level: public(Regular issues) 
>    Affects Versions: 3.0, 3.0-beta-1
>         Environment: Linux x86, Red Hat Enterprise Linux Server release 5.4 (Tikanga)
>            Reporter: Russell E Glaue
>            Priority: Minor
>              Labels: geronimo
>
> I only list this issue as minor, as the issue does not prevent running Geronimo, or more
than one copy of Geronimo on a single server. However, this issue does prevent the proper
utilization of multiple named server instances.
> Two issues:
> # On startup, Geronimo does not use the repository relative to the named server instance
directory.
> # We are unable to set the repository with the property org.apache.geronimo.repository.boot.path
to be relative to the named server instance directory.
> From what I could decipher, these are the (or some) of the primary classes defining the
repository
> - framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/ConfigurationUtil.java
> - plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/sun/tools/JAXWSToolsCLI.java
> - plugins/cxf/geronimo-cxf-tools/src/main/java/org/apache/geronimo/cxf/tools/JAXWSToolsCLI.java
> And the property "org.apache.geronimo.repository.boot.path" has a prepended "X" in each
of the three files.
> This tells me it was specifically disabled, and probably for some big issue.
> {noformat:borderStyle=solid}
> # framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/ConfigurationUtil.java
> ...
>         Collection repositories = null;
>         ArtifactResolver artifactResolver = null;
>         if (enableBootRepo) {
>             String repository = System.getProperty("Xorg.apache.geronimo.repository.boot.path",
"repository");
>             Maven2Repository bootRepository = new Maven2Repository(new File(getBootDirectory(),
repository));
>             repositories = Collections.singleton(bootRepository);
>             artifactResolver = new DefaultArtifactResolver(new DefaultArtifactManager(),
bootRepository);
>         } else {
>             // a bootstrap configuration can not have any dependencies
>             List dependencies = configurationData.getEnvironment().getDependencies();
>             if (!dependencies.isEmpty()) {
>                 configurationData.getEnvironment().setDependencies(Collections.EMPTY_SET);
>             }
>         }
> ...
> {noformat}
> To produce this issue, follow these steps:
> # Unpack the latest Geronimo javaee6 bundle as /opt/geronimo3
> # Create a Geronimo named instance directory as /opt/geronimo3/gserv1
> # Move the directories var, etc, and repository into /opt/geronimo3/gserv1
> # If patch GERONIMO-6275 in applied, start with this:
> -- env JAVA_HOME=/usr/jdk1.6.0 GERONIMO_SERVER=/opt/geronimo3/gserv1 /opt/geronimo3/bin/geronimo
run
> # Or. without the patch, Use this start script
> {noformat:borderStyle=solid}
> #!/bin/bash
> GHOME=/opt/geronimo3
> GVIRT=gserv1
> # Must change to the server directory in order to work around ActiveMQ lock
> # file conflict issue reported in GERONIMO-5987.
> cd ${GHOME}/${GVIRT}
> # Uncomment for the Workaround of issues in GERONIMO-6174
> export GERONIMO_TMPDIR=${GHOME}/${GVIRT}/var/temp
> GERONIMO_OPTS="${GERONIMO_OPTS} -Dkaraf.home=${GHOME}/${GVIRT}"
> #
> # Attempt to specify the correct root path to the repository for this
> # named server instance
> GERONIMO_OPTS="${GERONIMO_OPTS} -Dorg.apache.geronimo.repository.boot.path=${GHOME}/${GVIRT}/repository"
> #
> GERONIMO_OPTS="${GERONIMO_OPTS} -Dorg.apache.geronimo.server.name=${GVIRT}"
> export GERONIMO_OPTS
> ${GHOME}/bin/geronimo run
> {noformat}
> When starting the Geronimo named server instance with the above start script the following
error is experienced:
> {noformat:borderStyle=solid}
> [user@linux gserv1]# ./start.sh 
> Using GERONIMO_HOME:   /opt/geronimo3
> 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> 2011-09-26 15:01:25,752 ERROR [GBeanInstanceState] Error while starting;
GBean is now in the FAILED state: abstractName="org.apache.geronimo.framework/j2ee-system/3.0-SNAPSHOT/car?ServiceModule=org.apache.geronimo.framework/j2ee-system/3.0-SNAPSHOT/car,j2eeType=Repository,name=Repository"
> java.lang.IllegalStateException: Maven2Repository must have a root that's a valid readable
directory (not /opt/geronimo3/repository)
> 	at org.apache.geronimo.kernel.repository.AbstractRepository.<init>(AbstractRepository.java:51)
> 	at org.apache.geronimo.kernel.repository.Maven2Repository.<init>(Maven2Repository.java:32)
> 	at org.apache.geronimo.system.repository.Maven2Repository.<init>(Maven2Repository.java:36)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> 	at org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(ReflectionUtil.java:958)
> 	at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:276)
> 	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
> 	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:958)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:271)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:105)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:555)
> 	at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:110)
> 	at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:145)
> 	at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:119)
> 	at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:176)
> 	at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:45)
> 	at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:254)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:301)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:105)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:127)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:569)
> 	at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:386)
> 	at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:462)
> 	at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:216)
> 	at org.apache.geronimo.system.osgi.BootActivator.start(BootActivator.java:70)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
> 	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
> 	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:389)
> 	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1131)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
> 	at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.internalStart(EquinoxLauncher.java:271)
> 	at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.start(EquinoxLauncher.java:241)
> 	at org.eclipse.osgi.launch.Equinox.start(Equinox.java:258)
> 	at org.apache.geronimo.main.FrameworkLauncher.launchOSGiFramework(FrameworkLauncher.java:185)
> 	at org.apache.geronimo.main.FrameworkLauncher.launch(FrameworkLauncher.java:166)
> 	at org.apache.geronimo.main.Bootstrapper.execute(Bootstrapper.java:47)
> 	at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
> 	at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:32)
> 2011-09-26 15:01:25,868 WARN  [FeaturesServiceImpl] Unable to add features repository
mvn:org.apache.geronimo.features/openejb-feature/3.0-SNAPSHOT/xml/features at startup
> java.lang.RuntimeException: URL [mvn:org.apache.geronimo.features/openejb-feature/3.0-SNAPSHOT/xml/features]
could not be resolved.
> 	at org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:195)
> 	at org.apache.karaf.features.internal.FeatureValidationUtil.validate(FeatureValidationUtil.java:49)
> 	at org.apache.karaf.features.internal.FeaturesServiceImpl.validateRepository(FeaturesServiceImpl.java:199)
> 	at org.apache.karaf.features.internal.FeaturesServiceImpl.internalAddRepository(FeaturesServiceImpl.java:210)
> 	at org.apache.karaf.features.internal.FeaturesServiceImpl.loadState(FeaturesServiceImpl.java:1074)
> 	at org.apache.karaf.features.internal.FeaturesServiceImpl.start(FeaturesServiceImpl.java:914)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:226)
> 	at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:824)
> 	at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:636)
> 	at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:724)
> 	at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)
> 	at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)
> 	at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)
> 	at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:640)
> 	at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:331)
> 	at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:662)
> 2011-09-26 15:01:28,335 ERROR [GBeanInstanceState] Error while starting; GBean is now
in the FAILED state: abstractName="org.apache.geronimo.framework/j2ee-system/3.0-SNAPSHOT/car?ServiceModule=org.apache.geronimo.framework/j2ee-system/3.0-SNAPSHOT/car,j2eeType=Repository,name=Repository"
> java.lang.IllegalStateException: Maven2Repository must have a root that's a valid readable
directory (not /opt/geronimo3/repository)
> 	at org.apache.geronimo.kernel.repository.AbstractRepository.<init>(AbstractRepository.java:51)
> 	at org.apache.geronimo.kernel.repository.Maven2Repository.<init>(Maven2Repository.java:32)
> 	at org.apache.geronimo.system.repository.Maven2Repository.<init>(Maven2Repository.java:36)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> 	at org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(ReflectionUtil.java:958)
> 	at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:276)
> 	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
> 	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:958)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:271)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:105)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:127)
> 	at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:569)
> 	at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:386)
> 	at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:462)
> 	at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:216)
> 	at org.apache.geronimo.system.osgi.BootActivator.start(BootActivator.java:70)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
> 	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
> 	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:389)
> 	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1131)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
> 	at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.internalStart(EquinoxLauncher.java:271)
> 	at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.start(EquinoxLauncher.java:241)
> 	at org.eclipse.osgi.launch.Equinox.start(Equinox.java:258)
> 	at org.apache.geronimo.main.FrameworkLauncher.launchOSGiFramework(FrameworkLauncher.java:185)
> 	at org.apache.geronimo.main.FrameworkLauncher.launch(FrameworkLauncher.java:166)
> 	at org.apache.geronimo.main.Bootstrapper.execute(Bootstrapper.java:47)
> 	at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
> 	at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:32)
> Main not found
> {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

        

Mime
View raw message