4 Replies Latest reply on Oct 23, 2009 8:46 AM by gdfgd eqwe

    Clustering Seam Application + Drools Serialization errpr

    gdfgd eqwe Novice

      Hi!


      I would like to setup http session replication, but I always get Drools Serialization exception, when the either node is fail over, and another node is begin serving a request.


      If I remove drools settings from components.xml everything works fine, except the security.


      Please help me.


      my drools config is in components.xml:


      
      
              <security:rule-based-permission-resolver security-rules="#{securityRules}" />
           <drools:rule-base name="securityRules" >
               <drools:rule-files>
                   <value>/META-INF/rules/first.drl</value>             
                   <value>/META-INF/rules/second.drl</value>           
               </drools:rule-files>         
           </drools:rule-base>
      
      
      



      and the exception what I get when I stopped the request serving node .






      
      2009-10-13 14:57:18,277 ERROR [org.jboss.web.tomcat.service.session.distributedcache.impl.jbc.SessionBasedJBossCacheService] (ajp-192.168.1.140-8009-1) IOException occurred unmarshalling value 
      java.io.EOFException
           at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)
           at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)
           at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
           at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
           at org.drools.common.DroolsObjectInputStream.<init>(DroolsObjectInputStream.java:55)
           at org.drools.common.DroolsObjectInputStream.<init>(DroolsObjectInputStream.java:49)
           at org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:232)
           at org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:179)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
           at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at java.util.HashMap.readObject(HashMap.java:1030)
           at sun.reflect.GeneratedMethodAccessor304.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
           at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.jboss.ha.framework.server.SimpleCachableMarshalledValue.get(SimpleCachableMarshalledValue.java:94)
           at org.jboss.web.tomcat.service.session.distributedcache.impl.jbc.AbstractJBossCacheService.getUnMarshalledValue(AbstractJBossCacheService.java:660)
           at org.jboss.web.tomcat.service.session.distributedcache.impl.jbc.SessionBasedJBossCacheService.getSessionAttributes(SessionBasedJBossCacheService.java:114)
           at org.jboss.web.tomcat.service.session.distributedcache.impl.jbc.AbstractJBossCacheService.getDistributableSessionData(AbstractJBossCacheService.java:581)
           at org.jboss.web.tomcat.service.session.distributedcache.impl.jbc.AbstractJBossCacheService.getSessionData(AbstractJBossCacheService.java:364)
           at org.jboss.web.tomcat.service.session.JBossCacheManager.loadSession(JBossCacheManager.java:1832)
           at org.jboss.web.tomcat.service.session.JBossCacheManager.findSession(JBossCacheManager.java:489)
           at org.apache.catalina.connector.Request.doGetSession(Request.java:2320)
           at org.apache.catalina.connector.Request.getSessionInternal(Request.java:2239)
           at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:394)
           at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
           at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
           at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
           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:158)
           at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
           at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
           at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:436)
           at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:384)
           at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
           at java.lang.Thread.run(Thread.java:619)