大佬教程收集整理的这篇文章主要介绍了在 Wildfly v.21(与 v.22 相同)第二个集群节点启动时,具有 NON_XA 事务的复制缓存无法同步缓存数据,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在 Wildlfy v.18 (Infinispan 9.4.16) 上完美运行,但不适用于 v.21 或 v.22 (Infinispan 11.04)
标准 Wildfly v.22(与 v.21 相同)配置,使用 standalone-full-ha.xml 作为两个节点的集群运行。
缓存配置为:
<cache-container name="opencell">
<transport lock-timeout="60000"/>
<Replicated-cache name="opencell-cft-cache" statistics-enabled="true">
<transaction mode="NON_XA"/>
</Replicated-cache>
</cache-container>
缓存是这样访问的:
@resource(lookup = "java:jboss/infinispan/cache/opencell/opencell-cft-cache")
private Cache<CacheKeyStr,Map<String,CustomFIEldTemplate>> cftsByApplIEsTo;
Java 版本:OpenJDK 64 位服务器 VM 18.9(构建 11+28,混合模式)
Infinispan 在启动第二个集群节点时无法同步缓存,因为缺少事务。
将事务更改为 NONE,第二个集群节点启动时没有错误。
16:13:46,141 ERROR [org.infinispan.interceptors.impl.InvocationContexTinterceptor] (thread-18,ejb,opencell-node2) ISPN000136: Error execuTing command PutkeyvalueCommand on Cache 'opencell-cft-cache',wriTing keys [/JobInstance_GenericWorkflowJob]: org.infinispan.commons.CacheException: javax.transaction.InvalIDtransactionException: WFTXN0002: transaction is not a supported instance: transactionImpl{xID=XID{formatID=2,globaltransactionID=0000000000000001,branchQualifIEr=0000000000000001},status=ACTIVE}
at org.infinispan@11.0.4.Final//org.infinispan.transaction.impl.transactiontable.enList(transactiontable.java:227)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.TxInterceptor.enList(TxInterceptor.java:423)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.TxInterceptor.handleWriteCommand(TxInterceptor.java:387)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.TxInterceptor.visitPutkeyvalueCommand(TxInterceptor.java:227)
at org.infinispan@11.0.4.Final//org.infinispan.commands.write.PutkeyvalueCommand.acceptVisitor(PutkeyvalueCommand.java:63)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.baseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.transactionSynchronizerInterceptor.visitCommand(transactionSynchronizerInterceptor.java:41)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.baseAsyncInterceptor.invokeNextAndHandle(BaseAsyncInterceptor.java:190)
at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateTransferInterceptor.handleTxWriteCommand(StateTransferInterceptor.java:259)
at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:249)
at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateTransferInterceptor.visitPutkeyvalueCommand(StateTransferInterceptor.java:96)
at org.infinispan@11.0.4.Final//org.infinispan.commands.write.PutkeyvalueCommand.acceptVisitor(PutkeyvalueCommand.java:63)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.baseAsyncInterceptor.invokeNextAndFinally(BaseAsyncInterceptor.java:155)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.CacheMgmTinterceptor.updateStoreStatistics(CacheMgmTinterceptor.java:249)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.CacheMgmTinterceptor.visitPutkeyvalueCommand(CacheMgmTinterceptor.java:210)
at org.infinispan@11.0.4.Final//org.infinispan.commands.write.PutkeyvalueCommand.acceptVisitor(PutkeyvalueCommand.java:63)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.baseAsyncInterceptor.invokeNextAndExceptionally(BaseAsyncInterceptor.java:128)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.InvocationContexTinterceptor.visitCommand(InvocationContexTinterceptor.java:90)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.baseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:61)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.DDAsyncInterceptor.visitPutkeyvalueCommand(DDAsyncInterceptor.java:59)
at org.infinispan@11.0.4.Final//org.infinispan.commands.write.PutkeyvalueCommand.acceptVisitor(PutkeyvalueCommand.java:63)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.DDAsyncInterceptor.visitCommand(DDAsyncInterceptor.java:49)
at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.AsyncInterceptorChainImpl.invokeAsync(AsyncInterceptorChainImpl.java:226)
at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateConsumerImpl.invokePut(StateConsumerImpl.java:739)
at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateConsumerImpl.doApplyState(StateConsumerImpl.java:676)
at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateConsumerImpl.applyChunk(StateConsumerImpl.java:644)
at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateConsumerImpl.applyStateIteration(StateConsumerImpl.java:618)
at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateConsumerImpl.applyState(StateConsumerImpl.java:597)
at org.infinispan@11.0.4.Final//org.infinispan.commands.statetransfer.StateResponseCommand.invokeAsync(StateResponseCommand.java:80)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.inboundhandler.basePerCacheInboundInvocationHandler.invokeCommand(BasePerCacheInboundInvocationHandler.java:115)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.inboundhandler.baseBlockingRunnable.invoke(BaseBlockingRunnable.java:100)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.inboundhandler.baseBlockingRunnable.lambda$runAsync$0(BaseBlockingRunnable.java:91)
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
at java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883)
at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2251)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.inboundhandler.baseBlockingRunnable.runAsync(BaseBlockingRunnable.java:74)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.inboundhandler.baseBlockingRunnable.run(BaseBlockingRunnable.java:41)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.inboundhandler.basePerCacheInboundInvocationHandler.handleRunnable(BasePerCacheInboundInvocationHandler.java:163)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.inboundhandler.TxPerCacheInboundInvocationHandler.handle(TxPerCacheInboundInvocationHandler.java:89)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.inboundhandler.GlobalinboundInvocationHandler.handleCacheRpcCommand(GlobalinboundInvocationHandler.java:167)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.inboundhandler.GlobalinboundInvocationHandler.handleFromCluster(GlobalinboundInvocationHandler.java:113)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.transport.jgroups.jgroupsTransport.processrequest(jgroupsTransport.java:1378)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.transport.jgroups.jgroupsTransport.process@R_674_8798@ge(jgroupsTransport.java:1302)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.transport.jgroups.jgroupsTransport.access$300(jgroupsTransport.java:131)
at org.infinispan@11.0.4.Final//org.infinispan.remoTing.transport.jgroups.jgroupsTransport$ChAnnelCallBACkS.Up(jgroupsTransport.java:1445)
at org.jgroups@4.2.5.Final//org.jgroups.JChAnnel.up(JChAnnel.java:784)
at org.jgroups@4.2.5.Final//org.jgroups.fork.ForkProtocolStack.up(ForkProtocolStack.java:135)
at org.jgroups@4.2.5.Final//org.jgroups.stack.Protocol.up(Protocol.java:306)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.FORK.up(FORK.java:142)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.FRAG3.up(FRAG3.java:160)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.FlowControl.up(FlowControl.java:351)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.FlowControl.up(FlowControl.java:359)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.pbcast.GMS.Up(GMs.java:868)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.pbcast.Stable.up(Stable.java:243)
at org.jgroups@4.2.5.Final//org.jgroups.protocolS.UNICAST3.deliver@R_674_8798@ge(UNICAST3.java:1049)
at org.jgroups@4.2.5.Final//org.jgroups.protocolS.UNICAST3.add@R_674_8798@ge(UNICAST3.java:@R_696_11327@)
at org.jgroups@4.2.5.Final//org.jgroups.protocolS.UNICAST3.handleDataReceived(UNICAST3.java:753)
at org.jgroups@4.2.5.Final//org.jgroups.protocolS.UNICAST3.up(UNICAST3.java:405)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:592)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:132)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.FailureDetection.up(FailureDetection.java:186)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:254)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.MERGE3.up(MERGE3.java:281)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.discovery.up(discovery.java:300)
at org.jgroups@4.2.5.Final//org.jgroups.protocols.Tp.pass@R_674_8798@geUp(TP.java:1385)
at org.jgroups@4.2.5.Final//org.jgroupS.Util.submitToThreadPool$Single@R_674_8798@geHandler.run(submitToThreadPool.java:87)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.jboss.as.clustering.common@21.0.2.Final//org.jboss.as.clustering.context.ContextReferenceExecutor.execute(ContextReferenceExecutor.java:49)
at org.jboss.as.clustering.common@21.0.2.Final//org.jboss.as.clustering.context.ContextualExecutor$1.run(ContextualExecutor.java:70)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: javax.transaction.InvalIDtransactionException: WFTXN0002: transaction is not a supported instance: transactionImpl{xID=XID{formatID=2,status=ACTIVE}
at org.wildfly.transaction.clIEnt@1.1.13.Final//org.wildfly.transaction.clIEnt.ContexttransactionManager.resume(ContexttransactionManager.java:148)
at org.infinispan@11.0.4.Final//org.infinispan.transaction.impl.transactiontable.enList(transactiontable.java:219)
... 71 more
以上是大佬教程为你收集整理的在 Wildfly v.21(与 v.22 相同)第二个集群节点启动时,具有 NON_XA 事务的复制缓存无法同步缓存数据全部内容,希望文章能够帮你解决在 Wildfly v.21(与 v.22 相同)第二个集群节点启动时,具有 NON_XA 事务的复制缓存无法同步缓存数据所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。