[JBoss JIRA] Created: (EJBTHREE-790) Include partition name in cluster name of caches
by Ortwin Glück (JIRA)
Include partition name in cluster name of caches
------------------------------------------------
Key: EJBTHREE-790
URL: http://jira.jboss.com/jira/browse/EJBTHREE-790
Project: EJB 3.0
Issue Type: Bug
Components: Clustering
Affects Versions: EJB 3.0 RC8 - FD
Reporter: Ortwin Glück
For ejb3-entity-cache-service.xml and ejb3-clustered-sfsbcache-service.xml the ClusterName should include the partition name. Here is why:
We have 3 test instances and the two production cluster nodes within the same subnet (VLAN). The test instances have unique partition names (TEST1, TEST2, TEST3) and the production nodes share a common partition name (PROD). In the default configuration all five nodes would form a cluster for the entity and SFSB clusters. This would severely disrupt data consistency! We have solved this by including the partition name in the cluster name in the cache MBeans:
<attribute name="ClusterName">EJB3-entity-cache-${jboss.partition.name:DefaultPartition}</attribute>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
18 years, 2 months
[JBoss JIRA] Created: (EJBTHREE-1367) InfinitePool makes SFSB passivation meaningless
by Brian Stansberry (JIRA)
InfinitePool makes SFSB passivation meaningless
-----------------------------------------------
Key: EJBTHREE-1367
URL: http://jira.jboss.com/jira/browse/EJBTHREE-1367
Project: EJB 3.0
Issue Type: Bug
Components: core
Affects Versions: AS 5.0.0.Beta4, AS 4.2.2.GA, AS 4.2.1.GA, AS 4.2.0 GA
Reporter: Brian Stansberry
Assigned To: Brian Stansberry
Priority: Critical
Fix For: AS 5.0.0.CR1
InfinitePool maintains a list of all objects that have been created and not yet removed. For SFSBs this essentially functions as a second cache and makes passivation pointless, since passivating from the SFSB cache doesn't remove the ref in the InfinitePool.
IIRC, the intent in 5.x is to get rid of the use of pools for SFSBs, but this is broken in 4.x as well.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
18 years, 2 months
[JBoss JIRA] Created: (EJBTHREE-1366) Stop SFSB cache after the pool
by Brian Stansberry (JIRA)
Stop SFSB cache after the pool
------------------------------
Key: EJBTHREE-1366
URL: http://jira.jboss.com/jira/browse/EJBTHREE-1366
Project: EJB 3.0
Issue Type: Sub-task
Components: cache
Affects Versions: AS 5.0.0.Beta4
Reporter: Brian Stansberry
Assigned To: Brian Stansberry
Fix For: AS 5.0.0.CR1
One part of the parent issue is the SFSB cache is stopped before other elements of the container. This leads to undeployment problems like the following:
2008-05-15 13:42:35,711 WARN [org.jboss.kernel.plugins.dependency.StartStopLifecycleAction] (RMI TCP Connection(6)-127.0.0.1) Error during stop for jboss.j2ee:ear=clusteredsession-nested.jar,jar=clusteredsession-nested.jar,name=testDeepNestedStateful,service=EJB3
java.lang.RuntimeException: exception thrown while removing SFSB
at org.jboss.ejb3.stateful.StatefulBeanContext.remove(StatefulBeanContext.java:668)
at org.jboss.ejb3.stateful.ProxiedStatefulBeanContext.remove(ProxiedStatefulBeanContext.java:277)
at org.jboss.ejb3.pool.AbstractPool.remove(AbstractPool.java:145)
at org.jboss.ejb3.InfinitePool.destroy(InfinitePool.java:44)
at org.jboss.ejb3.pool.ThreadlocalPool.destroy(ThreadlocalPool.java:71)
at org.jboss.ejb3.EJBContainer.stop(EJBContainer.java:877)
at org.jboss.ejb3.session.SessionContainer.stop(SessionContainer.java:229)
at org.jboss.ejb3.stateful.StatefulContainer.stop(StatefulContainer.java:262)
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:585)
at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:56)
at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:110)
at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:240)
at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:45)
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:108)
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:69)
at org.jboss.kernel.plugins.dependency.LifecycleAction.uninstallActionInternal(LifecycleAction.java:249)
at org.jboss.kernel.plugins.dependency.InstallsAwareAction.uninstallAction(InstallsAwareAction.java:157)
at org.jboss.kernel.plugins.dependency.InstallsAwareAction.uninstallAction(InstallsAwareAction.java:42)
at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleUninstallAction(SimpleControllerContextAction.java:79)
at org.jboss.dependency.plugins.action.AccessControllerContextAction.uninstall(AccessControllerContextAction.java:131)
at org.jboss.dependency.plugins.AbstractControllerContextActions.uninstall(AbstractControllerContextActions.java:58)
at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1408)
at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1066)
at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:988)
at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:515)
at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:471)
at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.undeploy(BeanMetaDataDeployer.java:99)
at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.undeploy(BeanMetaDataDeployer.java:46)
at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalUndeploy(AbstractSimpleRealDeployer.java:69)
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.undeploy(AbstractRealDeployer.java:112)
at org.jboss.deployers.plugins.deployers.DeployerWrapper.undeploy(DeployerWrapper.java:197)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1189)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1182)
at org.jboss.deployers.plugins.deployers.DeployersImpl.uninstall(DeployersImpl.java:1144)
at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1408)
at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1066)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:679)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:456)
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:510)
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:541)
at org.jboss.deployment.MainDeployer.undeploy(MainDeployer.java:638)
.....
Caused by: java.lang.NullPointerException
at org.jboss.ejb3.cache.tree.StatefulTreeCache.remove(StatefulTreeCache.java:241)
at org.jboss.ejb3.stateful.StatefulBeanContext.removeContains(StatefulBeanContext.java:337)
at org.jboss.ejb3.stateful.StatefulBeanContext.remove(StatefulBeanContext.java:652)
... 96 more
Basically, the cache is stopped so it's nulled out some fields, but the the container stops its pool, which calls remove() on beans, thus invoking on the cache.
Note that fixing this doesn't completely fix the parent issue; still need to prevent shutdown of the container while still handling requests and ensure that requests that come in while shutdown is happening get an exception that triggers failover in a clustered proxy.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
18 years, 2 months