Hi, I'm trying to set up the seam booking example in a cluster. I have two jboss-4.0.5-ga instances installed (with ejb3-clustered support) and an Apache in front of them.
I have made the following changes to the booking application. 1) It now uses a MySQL database which is shared by the two JBoss servers. 2) added distributable tag to web.xml to enable HTTP session replication 3) added @Clustered annotation to SFSB enable replication I then test the application in the following way: 1) I hit http://localhost/seam-booking/ 2) I find a hotel and starts booking it 3) before confirming the booking I close down the jboss instance serving my request. 4) I confirm my booking At this point the following stack trace is thrown at me: 15:39:45,578 WARN [SessionFactoryObjectFactory] Not found: 8a808083104f5a8f01104f5a91200000 | 15:39:45,593 INFO [Exceptions] no exceptions.xml file found | 15:39:45,593 ERROR [Exceptions] redirecting to debug page | java.lang.RuntimeException: java.io.IOException | at org.jboss.ejb3.stateful.StatefulBeanContext.extractBeanAndInterceptors(StatefulBeanContex | | t.java:367) | at org.jboss.ejb3.stateful.StatefulBeanContext.getInstance(StatefulBeanContext.java:309) | at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.ja | | va:77) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.remoting.ReplicantsManagerInterceptor.invoke(ReplicantsManagerIntercept | | or.java:51) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.jav | | a:77) | at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationIntercepto | | r.java:102) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:1 | | 06) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:203) | at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98) | at $Proxy153.confirm(Unknown Source) | at org.jboss.seam.example.booking.HotelBooking$$FastClassByCGLIB$$c83b792d.invoke(<generated>) | at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) | at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:45) | at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:73) | at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:55) | at org.jboss.seam.interceptors.RemoveInterceptor.removeIfNecessary(RemoveInterceptor.java:39 | | ) | 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.seam.util.Reflections.invoke(Reflections.java:18) | at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169) | at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64) | at org.jboss.seam.interceptors.ExceptionInterceptor.handleExceptions(ExceptionInterceptor.ja | | va:38) | 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.seam.util.Reflections.invoke(Reflections.java:18) | at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169) | at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64) | at org.jboss.seam.intercept.RootInterceptor.createSeamInvocationContext(RootInterceptor.java | | :144) | at org.jboss.seam.intercept.RootInterceptor.invokeInContexts(RootInterceptor.java:129) | at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:102) | at org.jboss.seam.intercept.ClientSideInterceptor.interceptInvocation(ClientSideInterceptor. | | java:82) | at org.jboss.seam.intercept.ClientSideInterceptor.intercept(ClientSideInterceptor.java:51) | at org.jboss.seam.example.booking.HotelBooking$$EnhancerByCGLIB$$c93c490c.confirm(<generated>) | 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 com.sun.el.parser.AstValue.invoke(AstValue.java:151) | at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283) | at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) | at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69) | at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:6 | | 3) | at javax.faces.component.UICommand.broadcast(UICommand.java:106) | at org.ajax4jsf.framework.ajax.AjaxViewRoot.processEvents(AjaxViewRoot.java:274) | at org.ajax4jsf.framework.ajax.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:250) | at org.ajax4jsf.framework.ajax.AjaxViewRoot.processApplication(AjaxViewRoot.java:405) | at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:343) | at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86) | at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j | | ava:252) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | | | at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:46) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j | | ava:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | | | at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:32) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j | | ava:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | | | at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:75) | at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:213) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j | | ava:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | | | at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j | | ava:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | | | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) | at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.ja | | va:175) | at org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java: | | 87) | at org.jboss.web.tomcat.tc5.session.JvmRouteValve.invoke(JvmRouteValve.java:84) | at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) | at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) | | | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) | at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199) | at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282) | at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767) | at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697) | at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889) | at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) | at java.lang.Thread.run(Thread.java:595) | Caused by: java.io.IOException | at org.jboss.serial.persister.RegularObjectPersister.readSlotWithMethod(RegularObjectPersist | | er.java:107) | at org.jboss.serial.persister.RegularObjectPersister.defaultRead(RegularObjectPersister.java | | :269) | at org.jboss.serial.persister.RegularObjectPersister.readData(RegularObjectPersister.java:24 | | 1) | at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.readObjectDescriptionFromStreami | | ng(ObjectDescriptorFactory.java:412) | at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.objectFromDescription(ObjectDesc | | riptorFactory.java:82) | at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectInput.readObject(DataCo | | ntainer.java:643) | at org.jboss.serial.persister.ArrayPersister.readObjectArray(ArrayPersister.java:196) | at org.jboss.serial.persister.ArrayPersister.readData(ArrayPersister.java:172) | at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.readObjectDescriptionFromStreami | | ng(ObjectDescriptorFactory.java:412) | at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.objectFromDescription(ObjectDesc | | riptorFactory.java:82) | at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectInput.readObject(DataCo | | ntainer.java:643) | at org.jboss.serial.io.JBossObjectInputStream.readObjectOverride(JBossObjectInputStream.java | | :163) | at java.io.ObjectInputStream.readObject(ObjectInputStream.java:343) | at org.jboss.serial.io.MarshalledObject.get(MarshalledObject.java:68) | at org.jboss.ejb3.stateful.StatefulBeanContext.extractBeanAndInterceptors(StatefulBeanContex | | t.java:342) | ... 91 more | Caused by: java.lang.reflect.InvocationTargetException | at sun.reflect.GeneratedMethodAccessor103.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.jboss.serial.persister.RegularObjectPersister.readSlotWithMethod(RegularObjectPersist | | er.java:103) | ... 105 more | Caused by: java.io.IOException | at org.jboss.serial.persister.RegularObjectPersister.readSlotWithMethod(RegularObjectPersist | | er.java:107) | at org.jboss.serial.persister.RegularObjectPersister.defaultRead(RegularObjectPersister.java | | :269) | at org.jboss.serial.persister.RegularObjectPersister.readData(RegularObjectPersister.java:24 | | 1) | at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.readObjectDescriptionFromStreami | | ng(ObjectDescriptorFactory.java:412) | at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.objectFromDescription(ObjectDesc | | riptorFactory.java:82) | at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectInput.readObject(DataCo | | ntainer.java:643) | at org.jboss.serial.persister.RegularObjectPersister.readSlotWithFields(RegularObjectPersist | | er.java:353) | at org.jboss.serial.persister.RegularObjectPersister.defaultRead(RegularObjectPersister.java | | :273) | at org.jboss.serial.persister.RegularObjectPersister.readData(RegularObjectPersister.java:24 | | 1) | at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.readObjectDescriptionFromStreami | | ng(ObjectDescriptorFactory.java:412) | at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.objectFromDescription(ObjectDesc | | riptorFactory.java:82) | at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectInput.readObject(DataCo | | ntainer.java:643) | at org.jboss.serial.persister.ObjectInputStreamProxy.readObjectOverride(ObjectInputStreamPro | | xy.java:68) | at java.io.ObjectInputStream.readObject(ObjectInputStream.java:343) | at java.util.HashMap.readObject(HashMap.java:1013) | ... 109 more | Caused by: java.lang.reflect.InvocationTargetException | 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.serial.persister.RegularObjectPersister.readSlotWithMethod(RegularObjectPersist | | er.java:103) | ... 123 more | Caused by: java.io.InvalidObjectException: could not resolve session factory during session deserial | | ization [uuid=8a808083104f5a8f01104f5a91200000, name=null] | at org.hibernate.impl.SessionFactoryImpl.deserialize(SessionFactoryImpl.java:1056) | at org.hibernate.impl.SessionImpl.readObject(SessionImpl.java:1877) | ... 128 more | 15:39:46,265 ERROR [STDERR] 2007-01-23 15:39:46 com.sun.facelets.compiler.TagLibraryConfig loadImpli | | cit | INFO: Added Library from: jar:file:/C:/Programmer/jboss-4.0.5.GA-cluster/server/node1/./tmp/deploy/t | | mp29336jboss-seam-booking.ear-contents/jboss-seam-booking-ex | p.war/WEB-INF/lib/jsf-facelets.jar!/META-INF/jsf-ui.taglib.xml | 15:39:46,265 ERROR [STDERR] 2007-01-23 15:39:46 com.sun.facelets.compiler.TagLibraryConfig loadImpli | | cit | INFO: Added Library from: jar:file:/C:/Programmer/jboss-4.0.5.GA-cluster/server/node1/./tmp/deploy/t | | mp29336jboss-seam-booking.ear-contents/jboss-seam-booking-ex | p.war/WEB-INF/lib/jsf-facelets.jar!/META-INF/jsf-html.taglib.xml | 15:39:46,281 ERROR [STDERR] 2007-01-23 15:39:46 com.sun.facelets.compiler.TagLibraryConfig loadImpli | | cit | INFO: Added Library from: jar:file:/C:/Programmer/jboss-4.0.5.GA-cluster/server/node1/./tmp/deploy/t | | mp29336jboss-seam-booking.ear-contents/jboss-seam-booking-ex | p.war/WEB-INF/lib/ajax4jsf.jar!/META-INF/a4j.taglib.xml | 15:39:46,296 ERROR [STDERR] 2007-01-23 15:39:46 com.sun.facelets.compiler.TagLibraryConfig loadImpli | | cit | INFO: Added Library from: jar:file:/C:/Programmer/jboss-4.0.5.GA-cluster/server/node1/./tmp/deploy/t | | mp29336jboss-seam-booking.ear-contents/jboss-seam-booking-ex | p.war/WEB-INF/lib/jsf-facelets.jar!/META-INF/jstl-fn.taglib.xml | 15:39:46,328 ERROR [STDERR] 2007-01-23 15:39:46 com.sun.facelets.compiler.TagLibraryConfig loadImpli | | cit | INFO: Added Library from: jar:file:/C:/Programmer/jboss-4.0.5.GA-cluster/server/node1/./tmp/deploy/t | | mp29336jboss-seam-booking.ear-contents/jboss-seam-booking-ex | p.war/WEB-INF/lib/jsf-facelets.jar!/META-INF/jsf-core.taglib.xml | 15:39:46,328 ERROR [STDERR] 2007-01-23 15:39:46 com.sun.facelets.compiler.TagLibraryConfig loadImpli | | cit | INFO: Added Library from: jar:file:/C:/Programmer/jboss-4.0.5.GA-cluster/server/node1/./tmp/deploy/t | | mp29336jboss-seam-booking.ear-contents/jboss-seam-booking-ex | p.war/WEB-INF/lib/jsf-facelets.jar!/META-INF/jstl-core.taglib.xml | 15:39:46,343 ERROR [STDERR] 2007-01-23 15:39:46 com.sun.facelets.compiler.TagLibraryConfig loadImpli | | cit | INFO: Added Library from: jar:file:/C:/Programmer/jboss-4.0.5.GA-cluster/server/node1/./tmp/deploy/t | | mp29336jboss-seam-booking.ear-contents/jboss-seam-booking-ex | p.war/WEB-INF/lib/jboss-seam-ui.jar!/META-INF/seam.taglib.xml | 15:39:46,546 INFO [MyfacesConfig] No context init parameter 'org.apache.myfaces.PRETTY_HTML' found, | | using default value true | 15:39:46,546 INFO [MyfacesConfig] No context init parameter 'org.apache.myfaces.ALLOW_JAVASCRIPT' f | | ound, using default value true | 15:39:46,546 INFO [MyfacesConfig] Tomahawk jar not available. Autoscrolling, DetectJavascript, AddR | | esourceClass and CheckExtensionsFilter are disabled now. | Before shutting down the server I check the tomcat cache and the SFSB cache through the JMX console and it looks consistent (through printDetails). Does anyone have an idea about what is going on? Am I missing some modifications that has to be done to the application before it is cluster-enabled? Can it be some extra Hibernate configuration? Note that I have asked this question in the Seam forum and the EJB3 forum. http://www.jboss.com/index.html?module=bb&op=viewtopic&t=99749 http://www.jboss.com/index.html?module=bb&op=viewtopic&t=99783 View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4005736#4005736 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4005736 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user