NotSupportedException with ClusteredSingleSignOn
siano Jul 7, 2005 9:08 AMHi,
I have enabled Web-Clustering with JBoss 4.0.2. To make failover possible, I have enabled the ClusteredSingleSignOn valve in tomcat's server.xml. Replication and failover work fine, however, if a Web session times out, I get the following two exceptions.
2005-07-07 14:41:42,205 386341 DEBUG [org.jboss.web.tomcat.tc5.session.ClusteredSession] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) The session has expired with id: M3DVmgijZllrW3WcAhEebg** is it local? true 2005-07-07 14:41:42,207 386343 ERROR [org.jboss.web.tomcat.tc5.sso.TreeCacheSSOClusterManager] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) caught exception removing session M3DVmgijZllrW3WcAhEebg** from SSO id 5CBD6CB721B5B15D03337ADE50830971 javax.transaction.NotSupportedException: Transaction already active, cannot nest transactions. at org.jboss.tm.TxManager.begin(TxManager.java:169) at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.begin(ServerVMClientUserTransaction.java:110) at org.jboss.web.tomcat.tc5.sso.TreeCacheSSOClusterManager.removeSession(TreeCacheSSOClusterManager.java:509) at org.jboss.web.tomcat.tc5.sso.ClusteredSingleSignOn.removeSession(ClusteredSingleSignOn.java:669) at org.jboss.web.tomcat.tc5.sso.ClusteredSingleSignOn.sessionEvent(ClusteredSingleSignOn.java:303) at org.apache.catalina.session.StandardSession.fireSessionEvent(StandardSession.java:1547) at org.jboss.web.tomcat.tc5.session.ClusteredSession.expire(ClusteredSession.java:393) at org.jboss.web.tomcat.tc5.session.ClusteredSession.expire(ClusteredSession.java:327) at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:567) at org.jboss.web.tomcat.tc5.session.JBossCacheManager.processExpires(JBossCacheManager.java:552) at org.jboss.web.tomcat.tc5.session.JBossManager.backgroundProcess(JBossManager.java:644) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1283) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1568) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1557) at java.lang.Thread.run(Thread.java:534) 2005-07-07 14:41:42,211 386347 DEBUG [org.jboss.web.tomcat.tc5.session.JBossCacheManager] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) Removing session from local store with id: M3DVmgijZllrW3WcAhEebg** 2005-07-07 14:41:42,211 386347 DEBUG [org.jboss.web.tomcat.tc5.session.JBossCacheService] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) Remove session from my own distributed store only. Fqn: /JSESSION/ui/M3DVmgijZllrW3WcAhEebg** 2005-07-07 14:41:42,212 386348 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) java.lang.NullPointerException 2005-07-07 14:41:42,213 386349 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.jboss.web.tomcat.tc5.session.JBossCacheManager.endTransaction(JBossCacheManager.java:503) 2005-07-07 14:41:42,213 386349 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.jboss.web.tomcat.tc5.session.JBossCacheManager.processExpires(JBossCacheManager.java:573) 2005-07-07 14:41:42,213 386349 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.jboss.web.tomcat.tc5.session.JBossManager.backgroundProcess(JBossManager.java:644) 2005-07-07 14:41:42,214 386350 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1283) 2005-07-07 14:41:42,214 386350 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1568) 2005-07-07 14:41:42,214 386350 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577) 2005-07-07 14:41:42,214 386350 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577) 2005-07-07 14:41:42,214 386350 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1557) 2005-07-07 14:41:42,215 386351 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at java.lang.Thread.run(Thread.java:534) 2005-07-07 14:41:42,215 386351 ERROR [org.jboss.web.tomcat.tc5.session.JBossCacheManager] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) processExpires: failed with exception: org.jboss.util.NestedRuntimeException: TreeCacheAop.endTransaction(): ; - nested throwable: (java.lang.NullPointerException)2005-07-07 14:41:42,215 386351 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) org.jboss.util.NestedRuntimeException: TreeCacheAop.endTransaction(): ; - nested throwable: (java.lang.NullPointerException) 2005-07-07 14:41:42,215 386351 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.jboss.web.tomcat.tc5.session.JBossCacheManager.endTransaction(JBossCacheManager.java:512) 2005-07-07 14:41:42,215 386351 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.jboss.web.tomcat.tc5.session.JBossCacheManager.processExpires(JBossCacheManager.java:573) 2005-07-07 14:41:42,216 386352 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.jboss.web.tomcat.tc5.session.JBossManager.backgroundProcess(JBossManager.java:644) 2005-07-07 14:41:42,216 386352 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1283) 2005-07-07 14:41:42,216 386352 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1568) 2005-07-07 14:41:42,216 386352 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577) 2005-07-07 14:41:42,216 386352 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577) 2005-07-07 14:41:42,216 386352 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1557) 2005-07-07 14:41:42,217 386353 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at java.lang.Thread.run(Thread.java:534) 2005-07-07 14:41:42,217 386353 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) Caused by: java.lang.NullPointerException 2005-07-07 14:41:42,217 386353 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) at org.jboss.web.tomcat.tc5.session.JBossCacheManager.endTransaction(JBossCacheManager.java:503) 2005-07-07 14:41:42,217 386353 INFO [STDOUT] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]:) ... 8 more
In consequence the Web-Session-Id is not removed from the SSO-Session and SSO-Session is not removed from the cache.
If I remove the ClusteredSingleSignOn valve from the configuration, the error goes away (but on session-failover to the other cluster node does not work.)
Has anybody ever encountered something similar?
Yours
Stephan Siano