ISPN000188:处理两阶段事务中的提交时出错:org.infinispan.marshall.NotSerializableException
ISPN000188: Error while processing a commit in a two-phase transaction: org.infinispan.marshall.NotSerializableException
在 JBoss 中部署我的应用程序后,我在 server.log
中收到以下错误,并且在尝试登录时发生此错误....
基本上 JBoss 说两阶段提交失败,而 inifinispan 试图编组对象....它引发异常NotSerializableException
...
因此,JBoss-Infinispan
表示 DummyTransaction.java:287
ISPN000111: afterCompletion() failed for SynchronizationAdapter
13:28:38,186 ERROR [org.infinispan.transaction.TransactionCoordinator] (http-/192.nnn.nnn.nn:8080-3) ISPN000188: Error while processing a commit in a two-phase transaction: org.infinispan.marshall.NotSerializableException: com.singtel.um.transaction.TransactionManager
Caused by: an exception which occurred:
in field transactionManager
in object java.util.HashMap@f1852ac6
in object org.jboss.as.clustering.SimpleMarshalledValue@f1852ac6
-> toString = {User=com.singtel.um.dto.UserDto@4c08e73b, Userid=1, Username=sysadmin, org.apache.struts.action.LOCALE=en_US, Response=com.singtel.um.dto.ResponsePageDto@72c5cec1, userManager=com.singtel.um.UserManager@418634d5}
in object org.infinispan.util.FastCopyHashMap@373deff8
-> toString = {0=11, 1=1444195716345, 2=org.jboss.as.clustering.web.DistributableSessionMetadata@40843124, 3={User=com.singtel.um.dto.UserDto@4c08e73b, Userid=1, Username=sysadmin, org.apache.struts.action.LOCALE=en_US, Response=com.singtel.um.dto.ResponsePageDto@72c5cec1, userManager=com.singtel.um.UserManager@418634d5}}
in object org.infinispan.atomic.AtomicHashMap@3345fa74
-> toString = AtomicHashMap
in object org.infinispan.container.entries.ImmortalCacheEntry@cca5812b
-> toString = ImmortalCacheEntry{key=ZVx0ehVWVUvmITSBGMT9pQmB, value=ImmortalCacheValue {value=AtomicHashMap}}
in object org.infinispan.loaders.bucket.Bucket@18891bc5
-> toString = Bucket{entries={ZVx0ehVWVUvmITSBGMT9pQmB=ImmortalCacheEntry{key=ZVx0ehVWVUvmITSBGMT9pQmB, value=ImmortalCacheValue {value=AtomicHashMap}}}, bucketId='1607025664'}
13:28:38,210 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) ERROR [http-/192.nnn.nnn.nn:8080-3] (TransactionCoordinator.java:213) - ISPN000188: Error while processing a commit in a two-phase transaction
13:28:38,213 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) org.infinispan.marshall.NotSerializableException: com.singtel.um.transaction.TransactionManager
13:28:38,216 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) Caused by: an exception which occurred:
13:28:38,218 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in field transactionManager
13:28:38,219 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in object java.util.HashMap@f1852ac6
13:28:38,221 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in object org.jboss.as.clustering.SimpleMarshalledValue@f1852ac6
13:28:38,224 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) -> toString = {User=com.singtel.um.dto.UserDto@4c08e73b, Userid=1, Username=sysadmin, org.apache.struts.action.LOCALE=en_US, Response=com.singtel.um.dto.ResponsePageDto@72c5cec1, userManager=com.singtel.um.UserManager@418634d5}
13:28:38,228 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in object org.infinispan.util.FastCopyHashMap@373deff8
13:28:38,231 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) -> toString = {0=11, 1=1444195716345, 2=org.jboss.as.clustering.web.DistributableSessionMetadata@40843124, 3={User=com.singtel.um.dto.UserDto@4c08e73b, Userid=1, Username=sysadmin, org.apache.struts.action.LOCALE=en_US, Response=com.singtel.um.dto.ResponsePageDto@72c5cec1, userManager=com.singtel.um.UserManager@418634d5}}
13:28:38,237 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in object org.infinispan.atomic.AtomicHashMap@3345fa74
13:28:38,239 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) -> toString = AtomicHashMap
13:28:38,241 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in object org.infinispan.container.entries.ImmortalCacheEntry@cca5812b
13:28:38,243 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) -> toString = ImmortalCacheEntry{key=ZVx0ehVWVUvmITSBGMT9pQmB, value=ImmortalCacheValue {value=AtomicHashMap}}
13:28:38,246 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in object org.infinispan.loaders.bucket.Bucket@18891bc5
13:28:38,249 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) -> toString = Bucket{entries={ZVx0ehVWVUvmITSBGMT9pQmB=ImmortalCacheEntry{key=ZVx0ehVWVUvmITSBGMT9pQmB, value=ImmortalCacheValue {value=AtomicHashMap}}}, bucketId='1607025664'}
13:28:38,253 ERROR [org.infinispan.transaction.tm.DummyTransaction] (http-/192.nnn.nnn.nn:8080-3) ISPN000111: afterCompletion() failed for SynchronizationAdapter{localTransaction=LocalTransaction{remoteLockedNodes=null, isMarkedForRollback=false, lockedKeys=null, backupKeyLocks=null, topologyId=-1, isFromStateTransfer=false} org.infinispan.transaction.synchronization.SyncLocalTransaction@42} org.infinispan.transaction.synchronization.SynchronizationAdapter@61: org.infinispan.CacheException: Could not commit.
at org.infinispan.transaction.synchronization.SynchronizationAdapter.afterCompletion(SynchronizationAdapter.java:83)
at org.infinispan.transaction.tm.DummyTransaction.notifyAfterCompletion(DummyTransaction.java:285)
at org.infinispan.transaction.tm.DummyTransaction.runCommitTx(DummyTransaction.java:334)
at org.infinispan.transaction.tm.DummyTransaction.commit(DummyTransaction.java:91)
at org.infinispan.transaction.tm.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:102)
at org.jboss.as.clustering.web.impl.TransactionBatchingManager.endBatch(TransactionBatchingManager.java:75)
at org.jboss.as.web.session.DistributableSessionManager.processSessionRepl(DistributableSessionManager.java:1574) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.session.DistributableSessionManager.storeSession(DistributableSessionManager.java:872) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.session.InstantSnapshotManager.snapshot(InstantSnapshotManager.java:47) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.session.ClusteredSessionValve.handleRequest(ClusteredSessionValve.java:142) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:99) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.session.JvmRouteValve.invoke(JvmRouteValve.java:92) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.session.LockingValve.invoke(LockingValve.java:64) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_80]
Caused by: javax.transaction.xa.XAException
at org.infinispan.transaction.TransactionCoordinator.handleCommitFailure(TransactionCoordinator.java:224)
at org.infinispan.transaction.TransactionCoordinator.commit(TransactionCoordinator.java:185)
at org.infinispan.transaction.synchronization.SynchronizationAdapter.afterCompletion(SynchronizationAdapter.java:81)
... 21 more
13:28:38,308 INFO [stdout] (http-/192.nnn.nnn.nn192.nnn.nnn.nn:8080-3) ERROR [http-/192.nnn.nnn.nn:8080-3] (DummyTransaction.java:287) - ISPN000111: afterCompletion() failed for SynchronizationAdapter{localTransaction=LocalTransaction{remoteLockedNodes=null, isMarkedForRollback=false, lockedKeys=null, backupKeyLocks=null, topologyId=-1, isFromStateTransfer=false} org.infinispan.transaction.synchronization.SyncLocalTransaction@42} org.infinispan.transaction.synchronization.SynchronizationAdapter@61
13:28:38,317 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) org.infinispan.CacheException: Could not commit.
请有人帮我解决这个问题。
您的其中一个 类(不确定名称是什么,但包含 com.singtel.um.dto.ResponsePageDto
、com.singtel.um.dto.UserDto
和 com.singtel.um.UserManager
)似乎有一个字段 transactionManager
,并且您的 TM 实现不可序列化。您应该使该字段成为瞬态。
不确定为什么 HashMap
在堆栈中,但是,除非有东西正在检测 Java 类。
理想情况下,您还应该使用 Externalizable
或 AdvancedExternalizer
来优化对象的序列化。参见 Infinispan User Guide
在 JBoss 中部署我的应用程序后,我在 server.log
中收到以下错误,并且在尝试登录时发生此错误....
基本上 JBoss 说两阶段提交失败,而 inifinispan 试图编组对象....它引发异常NotSerializableException
...
因此,JBoss-Infinispan
表示 DummyTransaction.java:287
ISPN000111: afterCompletion() failed for SynchronizationAdapter
13:28:38,186 ERROR [org.infinispan.transaction.TransactionCoordinator] (http-/192.nnn.nnn.nn:8080-3) ISPN000188: Error while processing a commit in a two-phase transaction: org.infinispan.marshall.NotSerializableException: com.singtel.um.transaction.TransactionManager
Caused by: an exception which occurred:
in field transactionManager
in object java.util.HashMap@f1852ac6
in object org.jboss.as.clustering.SimpleMarshalledValue@f1852ac6
-> toString = {User=com.singtel.um.dto.UserDto@4c08e73b, Userid=1, Username=sysadmin, org.apache.struts.action.LOCALE=en_US, Response=com.singtel.um.dto.ResponsePageDto@72c5cec1, userManager=com.singtel.um.UserManager@418634d5}
in object org.infinispan.util.FastCopyHashMap@373deff8
-> toString = {0=11, 1=1444195716345, 2=org.jboss.as.clustering.web.DistributableSessionMetadata@40843124, 3={User=com.singtel.um.dto.UserDto@4c08e73b, Userid=1, Username=sysadmin, org.apache.struts.action.LOCALE=en_US, Response=com.singtel.um.dto.ResponsePageDto@72c5cec1, userManager=com.singtel.um.UserManager@418634d5}}
in object org.infinispan.atomic.AtomicHashMap@3345fa74
-> toString = AtomicHashMap
in object org.infinispan.container.entries.ImmortalCacheEntry@cca5812b
-> toString = ImmortalCacheEntry{key=ZVx0ehVWVUvmITSBGMT9pQmB, value=ImmortalCacheValue {value=AtomicHashMap}}
in object org.infinispan.loaders.bucket.Bucket@18891bc5
-> toString = Bucket{entries={ZVx0ehVWVUvmITSBGMT9pQmB=ImmortalCacheEntry{key=ZVx0ehVWVUvmITSBGMT9pQmB, value=ImmortalCacheValue {value=AtomicHashMap}}}, bucketId='1607025664'}
13:28:38,210 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) ERROR [http-/192.nnn.nnn.nn:8080-3] (TransactionCoordinator.java:213) - ISPN000188: Error while processing a commit in a two-phase transaction
13:28:38,213 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) org.infinispan.marshall.NotSerializableException: com.singtel.um.transaction.TransactionManager
13:28:38,216 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) Caused by: an exception which occurred:
13:28:38,218 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in field transactionManager
13:28:38,219 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in object java.util.HashMap@f1852ac6
13:28:38,221 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in object org.jboss.as.clustering.SimpleMarshalledValue@f1852ac6
13:28:38,224 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) -> toString = {User=com.singtel.um.dto.UserDto@4c08e73b, Userid=1, Username=sysadmin, org.apache.struts.action.LOCALE=en_US, Response=com.singtel.um.dto.ResponsePageDto@72c5cec1, userManager=com.singtel.um.UserManager@418634d5}
13:28:38,228 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in object org.infinispan.util.FastCopyHashMap@373deff8
13:28:38,231 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) -> toString = {0=11, 1=1444195716345, 2=org.jboss.as.clustering.web.DistributableSessionMetadata@40843124, 3={User=com.singtel.um.dto.UserDto@4c08e73b, Userid=1, Username=sysadmin, org.apache.struts.action.LOCALE=en_US, Response=com.singtel.um.dto.ResponsePageDto@72c5cec1, userManager=com.singtel.um.UserManager@418634d5}}
13:28:38,237 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in object org.infinispan.atomic.AtomicHashMap@3345fa74
13:28:38,239 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) -> toString = AtomicHashMap
13:28:38,241 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in object org.infinispan.container.entries.ImmortalCacheEntry@cca5812b
13:28:38,243 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) -> toString = ImmortalCacheEntry{key=ZVx0ehVWVUvmITSBGMT9pQmB, value=ImmortalCacheValue {value=AtomicHashMap}}
13:28:38,246 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) in object org.infinispan.loaders.bucket.Bucket@18891bc5
13:28:38,249 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) -> toString = Bucket{entries={ZVx0ehVWVUvmITSBGMT9pQmB=ImmortalCacheEntry{key=ZVx0ehVWVUvmITSBGMT9pQmB, value=ImmortalCacheValue {value=AtomicHashMap}}}, bucketId='1607025664'}
13:28:38,253 ERROR [org.infinispan.transaction.tm.DummyTransaction] (http-/192.nnn.nnn.nn:8080-3) ISPN000111: afterCompletion() failed for SynchronizationAdapter{localTransaction=LocalTransaction{remoteLockedNodes=null, isMarkedForRollback=false, lockedKeys=null, backupKeyLocks=null, topologyId=-1, isFromStateTransfer=false} org.infinispan.transaction.synchronization.SyncLocalTransaction@42} org.infinispan.transaction.synchronization.SynchronizationAdapter@61: org.infinispan.CacheException: Could not commit.
at org.infinispan.transaction.synchronization.SynchronizationAdapter.afterCompletion(SynchronizationAdapter.java:83)
at org.infinispan.transaction.tm.DummyTransaction.notifyAfterCompletion(DummyTransaction.java:285)
at org.infinispan.transaction.tm.DummyTransaction.runCommitTx(DummyTransaction.java:334)
at org.infinispan.transaction.tm.DummyTransaction.commit(DummyTransaction.java:91)
at org.infinispan.transaction.tm.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:102)
at org.jboss.as.clustering.web.impl.TransactionBatchingManager.endBatch(TransactionBatchingManager.java:75)
at org.jboss.as.web.session.DistributableSessionManager.processSessionRepl(DistributableSessionManager.java:1574) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.session.DistributableSessionManager.storeSession(DistributableSessionManager.java:872) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.session.InstantSnapshotManager.snapshot(InstantSnapshotManager.java:47) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.session.ClusteredSessionValve.handleRequest(ClusteredSessionValve.java:142) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:99) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.session.JvmRouteValve.invoke(JvmRouteValve.java:92) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.session.LockingValve.invoke(LockingValve.java:64) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_80]
Caused by: javax.transaction.xa.XAException
at org.infinispan.transaction.TransactionCoordinator.handleCommitFailure(TransactionCoordinator.java:224)
at org.infinispan.transaction.TransactionCoordinator.commit(TransactionCoordinator.java:185)
at org.infinispan.transaction.synchronization.SynchronizationAdapter.afterCompletion(SynchronizationAdapter.java:81)
... 21 more
13:28:38,308 INFO [stdout] (http-/192.nnn.nnn.nn192.nnn.nnn.nn:8080-3) ERROR [http-/192.nnn.nnn.nn:8080-3] (DummyTransaction.java:287) - ISPN000111: afterCompletion() failed for SynchronizationAdapter{localTransaction=LocalTransaction{remoteLockedNodes=null, isMarkedForRollback=false, lockedKeys=null, backupKeyLocks=null, topologyId=-1, isFromStateTransfer=false} org.infinispan.transaction.synchronization.SyncLocalTransaction@42} org.infinispan.transaction.synchronization.SynchronizationAdapter@61
13:28:38,317 INFO [stdout] (http-/192.nnn.nnn.nn:8080-3) org.infinispan.CacheException: Could not commit.
请有人帮我解决这个问题。
您的其中一个 类(不确定名称是什么,但包含 com.singtel.um.dto.ResponsePageDto
、com.singtel.um.dto.UserDto
和 com.singtel.um.UserManager
)似乎有一个字段 transactionManager
,并且您的 TM 实现不可序列化。您应该使该字段成为瞬态。
不确定为什么 HashMap
在堆栈中,但是,除非有东西正在检测 Java 类。
理想情况下,您还应该使用 Externalizable
或 AdvancedExternalizer
来优化对象的序列化。参见 Infinispan User Guide