13 Replies Latest reply on Feb 8, 2016 3:29 PM by arnab_ghosh

    Stateful SessionBean cache management in Wildfly 8.2.0

    arnab_ghosh

      Hi All,

       

      I have deployed an Enterprise application consisting of several Stateful SessionBeans. I want to keep the passivation of the beans disabled. My standalone-full.xml has below configuration:

       

      <session-bean>
        <stateful default-access-timeout="5000" cache-ref="simple" passivation-disabled-cache-ref="simple"/>
      </session-bean>
      <caches>
        <cache name="simple"/>
        <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/>
      </caches>
      <passivation-stores>
        <passivation-store name="infinispan" cache-container="ejb" max-size="10000"/>
      </passivation-stores>
      

       

      As you can see from the configuration I am using "simple" cache which don't have passivation configuration. Now I have the below question:

       

      1) Is the simple cache size configurable ?

      2) Is there a way to find out about more run time details of this cache behavior?

      3) Is this completely in memory ?

       

      I was not able to locate any documentation on this.

       

      Any details will be really helpful.

       

      Regards

      Arnab

        • 1. Re: Stateful SessionBean cache management in Wildfly 8.2.0
          arnab_ghosh

          After finding lack of documentation on Simple cache, now i switched to distributable cache. Now configurations look:

           

          <session-bean>
            <stateful default-access-timeout="5000" cache-ref="distributable"/>
          </session-bean>
          <caches>
            <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/>
          </caches>
          <passivation-stores>
            <passivation-store name="infinispan" cache-container="ejb" max-size="10000"/>
          </passivation-stores>
          
          
          <subsystem xmlns="urn:jboss:domain:infinispan:2.0">
            <cache-container name="ejb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan" aliases="sfsb" statistics-enabled="true">
            <local-cache name="passivation" batching="true" statistics-enabled="true" >
            <file-store passivation="true" purge="true" />
            <eviction strategy="LRU" max-entries="10000"/>
            <expiration max-idle="600000" lifespan="900000"/>
            </local-cache>
            <local-cache name="persistent" batching="true">
            <file-store passivation="false" purge="false"/>
            </local-cache>
            </cache-container>
          </subsystem>
          

           

          But now I have below questions:

          1) Suppose application (not being ideal), don't call close on the bean instance, when will this instance be removed ? Will it be driven by the "expiration" configuration on the cache container ?

           

          Any help in this matter will be really great.

           

          Regards

          Arnab

          • 2. Re: Stateful SessionBean cache management in Wildfly 8.2.0
            wdfink

            Yes, infinispan will remove the content from the cache after the lifespan/max-idle. You can set org.infinispan to trace to check.

            • 3. Re: Stateful SessionBean cache management in Wildfly 8.2.0
              arnab_ghosh

              Thanks for your reply. Understood. Can you please explain what the below does :

              1.   <file-store passivation="true"


              From infinispan sub-system i found the below description:

              
              passivation If true, data is only written to the cache store when it is evicted from memory, a phenomenon known as passivation. Next time the data is requested,
              it will be 'activated' which means that data will be brought back to memory and removed from the persistent store. If false, the cache store contains a copy
              of the cache contents in memory, so writes to cache result in cache store writes. This essentially gives you a 'write-through' configuration.
              
              
              

               

              Does this suggest that the cache-store (file-system in this case) will never be used unless passivation time arrives ? If yes, so that mean, all Bean instances will be in heap memory ?

              • 4. Re: Stateful SessionBean cache management in Wildfly 8.2.0
                wdfink

                The file-store (or even each store) is used to persist data from the cache.

                 

                If you set passivation=false, this mean your store contains all alive cache data. So a put()/remote() willupdate it to memory and file-store. If an entry is evicted/passivated it gets removed from memory.

                If you set passivation=true, this mean the store is only used for alive data which is passivated. So a put()/remove() will update the memory. If an entry is evicted/passivated it will be stored and removed from memory.

                If an evicted entry is requested it will be loaded from the store. If an entry is deleted it gets removed from memory AND store.

                 

                Does that explains it to you?

                • 5. Re: Stateful SessionBean cache management in Wildfly 8.2.0
                  arnab_ghosh

                  Thanks for the explanation. Now I understand. After switching to the "distributable" cache, I am seeing the below Exception:

                   

                  Caused by: org.infinispan.persistence.spi.PersistenceException: org.infinispan.commons.marshall.NotSerializableException: org.jboss.jca.core.connectionmanager.ccm.CachedConnectionManagerImpl

                          at org.infinispan.marshall.core.MarshalledEntryImpl.marshall(MarshalledEntryImpl.java:107)

                          at org.infinispan.marshall.core.MarshalledEntryImpl.getValueBytes(MarshalledEntryImpl.java:88)

                          at org.infinispan.persistence.file.SingleFileStore.write(SingleFileStore.java:275)

                          ... 104 more

                  Caused by: org.infinispan.commons.marshall.NotSerializableException: org.jboss.jca.core.connectionmanager.ccm.CachedConnectionManagerImpl

                  Caused by: an exception which occurred:

                          in field cachedConnectionManager

                          in field cm

                          in field queueConnectionFactory

                          in field value

                          in field instance

                          in object java.util.HashMap@dfbe1e37

                          in object org.jboss.as.clustering.marshalling.SimpleMarshalledValue@dfbe1e37

                          in object org.wildfly.clustering.ejb.infinispan.group.InfinispanBeanGroupEntry@1831a66d

                   

                  Please note I don't intend to use Stateful SessionBean passivation or clustering, I just want proper stateful SessionBean instance eviction. Currently we are seeing that the Heap is getting full with StatefulSessionBean objects.

                  Please advice.

                   

                  Also related to the Exception i found a JIRA: JBPAPP6-1762. Are they related ?

                   

                  pferraro can you please take a look ?

                  • 6. Re: Stateful SessionBean cache management in Wildfly 8.2.0
                    arnab_ghosh

                    The issue seems to happen if the Stateful Sessionsion Bean, has a resource injected QueueConnectionFactory. If I make QueueConnectionFactory transient or null it out in pre-passivate, how will resource be ready on postactivate ?

                    • 7. Re: Stateful SessionBean cache management in Wildfly 8.2.0
                      pferraro

                      Can you paste the code from the problematic SFSB?  We have a test that validates serializability of a QueueConnectionFactory here:

                      wildfly/StatefulFailoverTestCase.java at master · wildfly/wildfly · GitHub

                      wildfly/JMSResourceManagerConnectionFactoryIncrementorBean.java at master · wildfly/wildfly · GitHub

                      • 8. Re: Stateful SessionBean cache management in Wildfly 8.2.0
                        arnab_ghosh

                        Paul,

                         

                        I looked at the tests. I will attach the classes shortly. Another thing to mention we are on Wildfly 8.2.0.FInal.

                         

                        Here is the complete trace:

                         

                        2016-02-02 12:26:36,594 WARN  [org.infinispan.eviction.PassivationManagerImpl] (default task-27) ISPN000028: Unable to passivate entry under 73de1339-c526-4f55-9dcb-3c06dc6196cd

                        : org.infinispan.persistence.spi.PersistenceException: org.infinispan.persistence.spi.PersistenceException: org.infinispan.commons.marshall.NotSerializableException: org.jboss.j

                        ca.core.connectionmanager.ccm.CachedConnectionManagerImpl

                                at org.infinispan.persistence.file.SingleFileStore.write(SingleFileStore.java:317)

                                at org.infinispan.persistence.manager.PersistenceManagerImpl.writeToAllStores(PersistenceManagerImpl.java:457)

                                at org.infinispan.eviction.PassivationManagerImpl.passivate(PassivationManagerImpl.java:76)

                                at org.infinispan.container.DefaultDataContainer$DefaultEvictionListener.onEntryChosenForEviction(DefaultDataContainer.java:243)

                                at org.infinispan.container.DefaultDataContainer$DefaultEvictionListener.onEntryChosenForEviction(DefaultDataContainer.java:234)

                                at org.infinispan.util.concurrent.BoundedConcurrentHashMap$Segment.remove(BoundedConcurrentHashMap.java:1533)

                                at org.infinispan.util.concurrent.BoundedConcurrentHashMap$LRU.removeEldestEntry(BoundedConcurrentHashMap.java:528)

                                at java.util.LinkedHashMap.afterNodeInsertion(LinkedHashMap.java:299) [rt.jar:1.8.0_66]

                                at java.util.HashMap.putVal(HashMap.java:663) [rt.jar:1.8.0_66]

                                at java.util.HashMap.put(HashMap.java:611) [rt.jar:1.8.0_66]

                                at org.infinispan.util.concurrent.BoundedConcurrentHashMap$LRU.onEntryMiss(BoundedConcurrentHashMap.java:469)

                                at org.infinispan.util.concurrent.BoundedConcurrentHashMap$Segment.put(BoundedConcurrentHashMap.java:1427)

                                at org.infinispan.util.concurrent.BoundedConcurrentHashMap.put(BoundedConcurrentHashMap.java:2025)

                                at org.infinispan.container.DefaultDataContainer.put(DefaultDataContainer.java:170)

                                at org.infinispan.container.entries.ReadCommittedEntry.commit(ReadCommittedEntry.java:163)

                                at org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitCacheEntry(ClusteringDependentLogic.java:203)

                                at org.infinispan.interceptors.locking.ClusteringDependentLogic$LocalLogic.commitEntry(ClusteringDependentLogic.java:277)

                                at org.infinispan.interceptors.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:317)

                                at org.infinispan.interceptors.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:542)

                                at org.infinispan.interceptors.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:303)

                                at org.infinispan.interceptors.EntryWrappingInterceptor.visitPrepareCommand(EntryWrappingInterceptor.java:98)

                                at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)

                                at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)

                                at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.invokeNextAndCommitIf1Pc(AbstractTxLockingInterceptor.java:78)

                                at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.visitPrepareCommand(PessimisticLockingInterceptor.java:83)

                                at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)

                                at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)

                                at org.infinispan.interceptors.NotificationInterceptor.visitPrepareCommand(NotificationInterceptor.java:36)

                                at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)

                                at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)

                                at org.infinispan.interceptors.TxInterceptor.invokeNextInterceptorAndVerifyTransaction(TxInterceptor.java:114)

                                at org.infinispan.interceptors.TxInterceptor.visitPrepareCommand(TxInterceptor.java:101)

                                at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)

                                at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)

                                at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112)

                                at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:96)

                                at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)

                                at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)

                                at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:110)

                                at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:73)

                                at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:96)

                                at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)

                                at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)

                                at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:66)

                                at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:96)

                                at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)

                                at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:333)

                                at org.infinispan.transaction.TransactionCoordinator.commit(TransactionCoordinator.java:154)

                          at org.infinispan.transaction.synchronization.SynchronizationAdapter.afterCompletion(SynchronizationAdapter.java:58)

                                at org.infinispan.transaction.tm.DummyTransaction.notifyAfterCompletion(DummyTransaction.java:263)

                                at org.infinispan.transaction.tm.DummyTransaction.runCommitTx(DummyTransaction.java:312)

                                at org.infinispan.transaction.tm.DummyTransaction.commit(DummyTransaction.java:69)

                                at org.infinispan.transaction.tm.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:80)

                                at org.wildfly.clustering.ejb.infinispan.InfinispanBatcher$NewTransactionBatch.close(InfinispanBatcher.java:149)

                                at org.jboss.as.ejb3.cache.distributable.DistributableCache.create(DistributableCache.java:109) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]

                                at org.jboss.as.ejb3.component.stateful.StatefulComponentSessionIdGeneratingInterceptor.processInvocation(StatefulComponentSessionIdGeneratingInterceptor.java:57) [wildf

                        ly-ejb3-8.2.0.Final.jar:8.2.0.Final]

                                at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                                at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)

                                at org.jboss.as.ee.component.ViewService$DefaultViewInstanceFactory.createViewInstance(ViewService.java:292)

                                at org.jboss.as.ee.component.ViewService$View.createInstance(ViewService.java:177)

                                at org.jboss.as.ee.component.ViewService$View.createInstance(ViewService.java:173)

                                at org.jboss.as.ee.component.ViewManagedReferenceFactory.getReference(ViewManagedReferenceFactory.java:56)

                                at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:131)

                                at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:81)

                                at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:202)

                                at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:179)

                                at org.jboss.as.naming.InitialContext$DefaultInitialContext.lookup(InitialContext.java:235)

                                at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:188)

                                at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:184)

                                at javax.naming.InitialContext.lookup(InitialContext.java:417) [rt.jar:1.8.0_66]

                                at javax.naming.InitialContext.lookup(InitialContext.java:417) [rt.jar:1.8.0_66]

                                at com.sonymusic.aoma.service.AOMAServiceSessionBeanFactory.getLocalFacadeWildfly(AOMAServiceSessionBeanFactory.java:213) [aoma.service.ejb-interfaces.jar:]

                                at com.sonymusic.aoma.service.AOMAServiceSessionBeanFactory.getLocalFacade(AOMAServiceSessionBeanFactory.java:183) [aoma.service.ejb-interfaces.jar:]

                                at com.sonymusic.aoma.common.SecurityManager.gateMastersOnSecurityGroupAccess(SecurityManager.java:1015) [aoma.jar:]

                                at com.sonymusic.aoma.search.simple.actions.Master.MasterSearchSFVideoDetailDisplayAction.doAction(MasterSearchSFVideoDetailDisplayAction.java:147) [aoma.jar:]

                                at com.sonymusic.aoma.dispatcher.actions.SimpleDispatcherAction.executeAction(SimpleDispatcherAction.java:432) [aoma.jar:]

                                at com.sonymusic.aoma.AOMADispatcherServlet$DispatcherAction.execute(AOMADispatcherServlet.java:267) [aoma.jar:]

                                at com.sonymusic.aoma.AOMADispatcherServlet.service(AOMADispatcherServlet.java:80) [aoma.jar:]

                                at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]

                                at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

                                at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)

                                at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) [undertow-servlet-1.1.0.Final.jar:1.1.

                        0.Final]

                                at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.1.0.Final.jar:1.1.0

                        .Final]

                                at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63) [undertow-servlet-1.1.0.F

                        inal.jar:1.1.0.Final]

                                at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.1.0.Final.jar:1.1

                        .0.Final]

                                at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)

                        at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

                                at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)

                                at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) [undertow-servlet-1.1.0.Final.jar:1.1.

                        0.Final]

                                at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.1.0.Final.jar:1.1.0

                        .Final]

                                at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63) [undertow-servlet-1.1.0.F

                        inal.jar:1.1.0.Final]

                                at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.1.0.Final.jar:1.1

                        .0.Final]

                                at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)

                                at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_66]

                                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_66]

                                at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_66]

                        Caused by: org.infinispan.persistence.spi.PersistenceException: org.infinispan.commons.marshall.NotSerializableException: org.jboss.jca.core.connectionmanager.ccm.CachedConnecti

                        onManagerImpl

                                at org.infinispan.marshall.core.MarshalledEntryImpl.marshall(MarshalledEntryImpl.java:107)

                                at org.infinispan.marshall.core.MarshalledEntryImpl.getValueBytes(MarshalledEntryImpl.java:88)

                                at org.infinispan.persistence.file.SingleFileStore.write(SingleFileStore.java:275)

                                ... 104 more

                        Caused by: org.infinispan.commons.marshall.NotSerializableException: org.jboss.jca.core.connectionmanager.ccm.CachedConnectionManagerImpl

                        Caused by: an exception which occurred:

                                in field cachedConnectionManager

                                in field cm

                                in field queueConnectionFactory

                                in field value

                                in field instance

                                in object java.util.HashMap@2d25188f

                                in object org.jboss.as.clustering.marshalling.SimpleMarshalledValue@2d25188f

                                in object org.wildfly.clustering.ejb.infinispan.group.InfinispanBeanGroupEntry@33799314

                         

                         

                        2

                        • 9. Re: Stateful SessionBean cache management in Wildfly 8.2.0
                          arnab_ghosh

                          MasterFacade is the parent SessionBean whose serialization is failing. It inject two other SessionBeans which contains QueueConnectionFactory resource. Please let me know if you need more information.

                          The ConnectionFactory which we are looking up is configured as below:

                           

                                              <pooled-connection-factory name="pooled-remote-connection-factory">
                                                  <transaction mode="xa"/>
                                                  <connectors>
                                                      <connector-ref connector-name="netty-remote-queue-server-connector"/>
                                                  </connectors>
                                                  <entries>
                                                      <entry name="java:/RemoteJmsXA"/>
                                                  </entries>
                                              </pooled-connection-factory>
                          
                                              <netty-connector name="netty-remote-queue-server-connector" socket-binding="queue-server-socket"/>
                          
                                  <outbound-socket-binding name="queue-server-socket">
                                      <remote-destination host="queue.host-de" port="15455"/>
                                  </outbound-socket-binding>
                          
                          
                          
                          • 10. Re: Stateful SessionBean cache management in Wildfly 8.2.0
                            pferraro

                            Can you reproduce the issue on WildFly 10?  8.2.0 is quite an old release and this may have already been fixed.

                            • 11. Re: Stateful SessionBean cache management in Wildfly 8.2.0
                              arnab_ghosh

                              Paul,

                               

                              The issue is we are now live in Production environment with 8.2.0.Final, It will be very difficult to plan a immediate migration to a higher version. Please advice.

                               

                              Regards

                              Arnab

                              • 12. Re: Stateful SessionBean cache management in Wildfly 8.2.0
                                wdfink

                                But if you can reproduce it with WildFly10 it will be investigated and fixed. Maybe it is possible for you to backport the fix to your version.

                                There will be no update for WidFly 8.2, such bugfixes are only done in EAP version where you need to have a subscription, this can be worth if you have a production environment which requires SLA's

                                • 13. Re: Stateful SessionBean cache management in Wildfly 8.2.0
                                  arnab_ghosh

                                  I understand. I am working on getting my application deployed in Wildfly 10 and see if the issue is still happening. I will keep you posted.

                                  In meantime will mind taking a look at Timeout Exception when using EJB Infinispan cache