在 Wildfly v.21与 v.22 相同第二个集群节点启动时,具有 NON_XA 事务的复制缓存无法同步缓存数据

如何解决在 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.processMessage(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.deliverMessage(UNICAST3.java:1049)
    at org.jgroups@4.2.5.Final//org.jgroups.protocols.UNICAST3.addMessage(UNICAST3.java:772)
    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.passMessageUp(TP.java:1385)
    at org.jgroups@4.2.5.Final//org.jgroups.util.SubmitToThreadPool$SingleMessageHandler.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

解决方法

这是一个错误。已创建:https://issues.redhat.com/browse/ISPN-12798

感谢您的报告。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?