[jboss-user] [Clustering] - jboss clustering-fault tolerance errors

ankit.thakkar do-not-reply at jboss.com
Fri Nov 20 08:03:17 EST 2009


Dear All, 

We have configured Jboss Clustering + Session Replication. But we are facing certain issues as below. 

Expected Scenario, 
User1 connects to node1 -> Login Successful -> User1 is working for Functionality X -> node1 down 
As node1 is down, node2 should take care for connected User1 from Functionality X. 

Actual Scenario/Query, 
When we shut down node1, Application logs out from Functionality X, then connects to node2 with Login Page of Application. 


Please find below configuration we used for your reference, 
Mod_JK 


JBOSS_HOME/server/all/deploy/jboss-web.deployer/server.xml 

 
 

server/all/deploy/jboss-web.deployer/META-INF/jboss-service.xml : UseJK = true 


Exception coming in logger . 

 2009-11-17 13:05:50,369 INFO [org.jboss.web.tomcat.service.session.CacheListener] Possible concurrency problem: Replicated version id 1 matches in-memory version for session zs0jyaG4z-4sgTaEOIEvuA** 
2009-11-17 13:05:50,641 DEBUG [org.jboss.cache.interceptors.TxInterceptor] local transaction exists - registering global tx if not present for Thread[ajp-172.26.137.20-8009-1,5,jboss] 
2009-11-17 13:05:50,674 DEBUG [org.jboss.cache.interceptors.TxInterceptor] Running commit phase. One phase? false 
2009-11-17 13:05:50,674 DEBUG [org.jboss.cache.interceptors.TxInterceptor] Finished local commit/rollback method for GlobalTransaction:<172.26.137.20:56688>:1 
2009-11-17 13:05:50,674 DEBUG [org.jboss.cache.interceptors.TxInterceptor] Finished commit phase 
2009-11-17 13:05:50,674 DEBUG [org.jboss.web.tomcat.service.session.JBossCacheManager] loadSession(): id= zs0jyaG4z-4sgTaEOIEvuA**, session=SessionBasedClusteredSession[id: zs0jyaG4z-4sgTaEOIEvuA**.node2 lastAccessedTime: 1258463150496 version: 2 lastOutdated: 0] 
2009-11-17 13:05:50,674 DEBUG [org.jboss.web.tomcat.service.session.JvmRouteValve] checkJvmRoute(): check if need to re-route based on JvmRoute. Session id: zs0jyaG4z-4sgTaEOIEvuA**.node2 jvmRoute: node1 
2009-11-17 13:05:50,675 DEBUG [org.jboss.web.tomcat.service.session.JvmRouteValve] handleJvmRoute(): We have detected a failover with different jvmRoute. old one: node2 new one: node1. Will reset the session id. 
2009-11-17 13:05:50,675 DEBUG [org.jboss.web.tomcat.service.session.JvmRouteValve] resetSessionId(): changed catalina session to= [zs0jyaG4z-4sgTaEOIEvuA**.node1] old one= [zs0jyaG4z-4sgTaEOIEvuA**.node2] 
2009-11-17 13:05:50,675 DEBUG [org.jboss.web.tomcat.service.session.JBossCacheManager] Setting cookie with session id:zs0jyaG4z-4sgTaEOIEvuA**.node1 & name:JSESSIONID 












2009-11-17 13:44:29,185 DEBUG [org.jboss.web.tomcat.service.session.JvmRouteValve] checkJvmRoute(): check if need to re-route based on JvmRoute. Session id: Jp0uZF+NeeE4NdgdGeemcw**.node1 jvmRoute: node1 
2009-11-17 13:44:29,206 ERROR [org.jboss.web.tomcat.service.session.JBossCacheService] externalizeSession(): exception occurred externalizing session SessionBasedClusteredSession[id: Jp0uZF+NeeE4NdgdGeemcw**.node1 lastAccessedTime: 1258465468376 version: 49 lastOutdated: 0] 
java.io.NotSerializableException: com.icesoft.faces.component.datapaginator.DataPaginator 
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081) 
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) 
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) 
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) 
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) 
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) 
at java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.java:1380) 
at sun.reflect.GeneratedMethodAccessor316.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:585) 
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917) 
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339) 
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) 
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) 
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) 
at org.jboss.web.tomcat.service.session.SessionBasedClusteredSession.writeExternal(SessionBasedClusteredSession.java:175) 
at org.jboss.web.tomcat.service.session.JBossCacheService.externalizeSession(JBossCacheService.java:1033) 
at org.jboss.web.tomcat.service.session.JBossCacheService.putSession(JBossCacheService.java:322) 
at org.jboss.web.tomcat.service.session.JBossCacheClusteredSession.processSessionRepl(JBossCacheClusteredSession.java:123) 
at org.jboss.web.tomcat.service.session.JBossCacheManager.processSessionRepl(JBossCacheManager.java:1127) 
at org.jboss.web.tomcat.service.session.JBossCacheManager.storeSession(JBossCacheManager.java:682) 
at org.jboss.web.tomcat.service.session.InstantSnapshotManager.snapshot(InstantSnapshotManager.java:49) 
at org.jboss.web.tomcat.service.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:108) 
at org.jboss.web.tomcat.service.session.JvmRouteValve.invoke(JvmRouteValve.java:84) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432) 
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437) 
at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 
at java.lang.Thread.run(Thread.java:595) 





when session replication is happening, is it necessary to serialize all objects which have been stored in Session ?  


Thanks , 


View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4266749#4266749

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4266749



More information about the jboss-user mailing list