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

Forrest Xia commented on GERONIMO-6175:
---------------------------------------

I compared the multiple instance feature with the one geronimo 2.1.x release in 
that discussion.

To answer your questions:
* With all the patches provided and applied under the GERONIMO-6270 umbrella, 
how close are we now?
After our changes these days made under 6270 umbrella, I think we achieved the 
goal of re-enabling the feature in Geronimo 3.0-beta branch. You can try to 
build a new 3.0-beta branch to see if it works as you think.
* What do we have left to enable a safe run-time of multiple instances with a 
shared repository?
Found an issue in geronimo-6285, other potential impact to be discovered...
* And is it possible in G30, as indicated in the G20 docs, for each instance to 
have its own primary repository and no shared repository?
It could be a new feature, but let's think what difference from multiple 
installation before doing it.

Thanks for your contribution again!

                
> 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

        

Reply via email to