[JBoss JIRA] Created: (EJBTHREE-1346) Disabling @Clustered via jboss.xml not being respected
by Brian Stansberry (JIRA)
Disabling @Clustered via jboss.xml not being respected
------------------------------------------------------
Key: EJBTHREE-1346
URL: http://jira.jboss.com/jira/browse/EJBTHREE-1346
Project: EJB 3.0
Issue Type: Bug
Components: Clustering
Reporter: Brian Stansberry
Assigned To: Brian Stansberry
Fix For: AS 5.0.0.CR1
An @Clustered bean with <clustered>false</clustered> in its jboss.xml is still using the clustered proxy factory:
2008-05-08 12:56:44,768 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] (RMI TCP Connection(27)-127.0.0.1) Error installing to Start: name=jboss.j2ee:ear=clusteredsession-test.jar,jar=clusteredsession-test.jar,name=NonClusteredStateful,service=EJB3 state=Create
java.lang.IllegalStateException: Partition BogusPartition not found
at org.jboss.ha.framework.server.HAPartitionLocator.getHAPartition(HAPartitionLocator.java:125)
at org.jboss.ejb3.proxy.factory.stateful.StatefulClusterProxyFactory.start(StatefulClusterProxyFactory.java:144)
at org.jboss.ejb3.session.ProxyDeployer.start(ProxyDeployer.java:95)
at org.jboss.ejb3.session.SessionContainer.start(SessionContainer.java:188)
at org.jboss.ejb3.stateful.StatefulContainer.start(StatefulContainer.java:249)
--
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
15 years, 9 months
[JBoss JIRA] Created: (EJBTHREE-1540) Test handling of SFSB with @Clustered but no @Remote
by Brian Stansberry (JIRA)
Test handling of SFSB with @Clustered but no @Remote
----------------------------------------------------
Key: EJBTHREE-1540
URL: https://jira.jboss.org/jira/browse/EJBTHREE-1540
Project: EJB 3.0
Issue Type: Task
Components: Clustering
Reporter: Brian Stansberry
Effect should be that the bean state is replicated around the cluster but there is no clustered proxy (i.e. no load balancing / failover in the bean proxy). The lack of a remote interface precludes a clustered proxy.
This is quite a useful config if the bean client is something like a clustered webapp; the proxy is stored in the web session, which is replicated. Loadbalancing/failover are managed at the web tier level. If the web session fails over, the proxy should be able to interact with the local bean container, and the replication of the bean state means the needed state is available.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 9 months
[JBoss JIRA] Created: (EJBTHREE-1547) ProxyFactory remains usable during SFSB container shutdown
by Brian Stansberry (JIRA)
ProxyFactory remains usable during SFSB container shutdown
----------------------------------------------------------
Key: EJBTHREE-1547
URL: https://jira.jboss.org/jira/browse/EJBTHREE-1547
Project: EJB 3.0
Issue Type: Bug
Components: core
Affects Versions: 1.0.0-Beta5
Reporter: Brian Stansberry
During a testing session with a service that was using 4 threads to continually create SFSBs, I attempted to undeploy the bean. Got log failures like the following:
18:56:20,638 ERROR [RegionManager] failed inactivating /sfsb/jar=andymiller-test.jar,name=SimpleAnnotationStatefulBean,service=EJB3
org.jboss.cache.CacheException: Region /sfsb/jar=andymiller-test.jar,name=SimpleAnnotationStatefulBean,service=EJB3 is already being activated/deactivated
at org.jboss.cache.RegionManager.inactivateRegion(RegionManager.java:573)
at org.jboss.cache.RegionManager.activateRegion(RegionManager.java:508)
at org.jboss.cache.RegionManager.activate(RegionManager.java:376)
at org.jboss.cache.RegionManager.activate(RegionManager.java:339)
at org.jboss.cache.RegionImpl.activate(RegionImpl.java:82)
at org.jboss.ejb3.cache.tree.StatefulTreeCache.start(StatefulTreeCache.java:358)
at org.jboss.ejb3.stateful.StatefulContainer.createAndStartCache(StatefulContainer.java:302)
at org.jboss.ejb3.stateful.StatefulContainer.getCache(StatefulContainer.java:340)
at org.jboss.ejb3.stateful.StatefulContainer.createSession(StatefulContainer.java:488)
at org.jboss.ejb3.session.SessionContainer.createSession(SessionContainer.java:550)
at org.jboss.ejb3.proxy.factory.session.stateful.StatefulSessionProxyFactoryBase.getNewSessionId(StatefulSessionProxyFactoryBase.java:296)
at org.jboss.ejb3.proxy.factory.session.stateful.StatefulSessionProxyFactoryBase.createProxyBusiness(StatefulSessionProxyFactoryBase.java:160)
at org.jboss.ejb3.proxy.objectfactory.session.SessionProxyObjectFactory.createProxy(SessionProxyObjectFactory.java:133)
at org.jboss.ejb3.proxy.clustered.objectfactory.session.stateful.StatefulSessionClusteredProxyObjectFactory.getProxy(StatefulSessionClusteredProxyObjectFactory.java:66)
at org.jboss.ejb3.proxy.objectfactory.ProxyObjectFactory.getObjectInstance(ProxyObjectFactory.java:153)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1426)
at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1443)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:797)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:661)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at org.jboss.ejb3.test.clusteredsession.SimpleAnnotationStatefulBeanUser$BeanCreator.run(SimpleAnnotationStatefulBeanUser.java:85)
at java.lang.Thread.run(Thread.java:595)
The
at org.jboss.ejb3.cache.tree.StatefulTreeCache.start(StatefulTreeCache.java:358)
at org.jboss.ejb3.stateful.StatefulContainer.createAndStartCache(StatefulContainer.java:302)
logging shows container's 'cache' field has been nulled, so the request thread is trying to create and start a new cache. This then leads to conflicts at the JBC level, where the HDScanner thread is doing work to undeploy the old cache.
Couple thoughts:
1) Is letting a request thread create/start the cache a good idea? Shouldn't this be limited to the start() sequence, with an ISE thrown if a request thread finds there is no cache?
2) Should we be adding something like the org.jboss.ejb3.BlockContainerShutdownInterceptor into this call stack to ensure we don't get race conditions like this?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 9 months