首页 > 解决方案 > org.infinispan.commons.CacheException:未知命令 id 121

问题描述

我正在尝试使用 infinispan 设置分布式 L2C。我使用以下配置运行了 infinispan:

<cache-container name="default" statistics="true">
      <transport cluster="${infinispan.cluster.name}" stack="${infinispan.cluster.stack:tcp}" node-name="${infinispan.node.name:}"/>
      <replicated-cache name="replicated" mode="ASYNC"/>
</cache-container>

我的休眠和 infinispan 版本是:休眠的 5.3.16.Final 和 infinispan-hibernate-cache-v53 的 10.1.6.Final

L2C 工作正常,但是当我更新实体时,infinispan-server 中出现以下错误

10:27:30,734 ERROR (jgroups-6,localhost-4115) [org.infinispan.CLUSTER] ISPN000474: Error processing request 0@localhost-39755 org.infinispan.commons.CacheException: Unknown command id 121!
    at org.infinispan.commands.RemoteCommandsFactory.fromStream(RemoteCommandsFactory.java:384)
    at org.infinispan.marshall.exts.ReplicableCommandExternalizer.fromStream(ReplicableCommandExternalizer.java:110)
    at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.java:133)
    at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.java:69)
    at org.infinispan.marshall.core.GlobalMarshaller.readWithExternalizer(GlobalMarshaller.java:728)
    at org.infinispan.marshall.core.GlobalMarshaller.readNonNullableObject(GlobalMarshaller.java:709)
    at org.infinispan.marshall.core.GlobalMarshaller.readNullableObject(GlobalMarshaller.java:358)
    at org.infinispan.marshall.core.GlobalMarshaller.objectFromObjectInput(GlobalMarshaller.java:192)
    at org.infinispan.marshall.core.GlobalMarshaller.objectFromByteBuffer(GlobalMarshaller.java:221)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processRequest(JGroupsTransport.java:1395)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1335)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport.access$300(JGroupsTransport.java:132)
    at org.infinispan.remoting.transport.jgroups.JGroupsTransport$ChannelCallbacks.up(JGroupsTransport.java:1487)
    at org.jgroups.JChannel.up(JChannel.java:775)
    at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:900)
    at org.jgroups.protocols.FRAG3.up(FRAG3.java:171)
    at org.jgroups.protocols.FlowControl.up(FlowControl.java:354)
    at org.jgroups.protocols.FlowControl.up(FlowControl.java:346)
    at org.jgroups.protocols.pbcast.GMS.up(GMS.java:859)
    at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:243)
    at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:392)
    at org.jgroups.protocols.pbcast.NAKACK2.deliver(NAKACK2.java:931)
    at org.jgroups.protocols.pbcast.NAKACK2.handleMessage(NAKACK2.java:821)
    at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:602)
    at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:132)
    at org.jgroups.protocols.FD_ALL.up(FD_ALL.java:202)
    at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:254)
    at org.jgroups.protocols.MERGE3.up(MERGE3.java:281)
    at org.jgroups.protocols.Discovery.up(Discovery.java:300)
    at org.jgroups.protocols.TP.passMessageUp(TP.java:1367)
    at 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 java.base/java.lang.Thread.run(Thread.java:834)

我还为我的实体使用了 READ_WRITE 缓存并发策略。知道发生了什么吗?我的设置中是否存在错误配置?

标签: hibernateinfinispansecond-level-cache

解决方案


似乎您的 infinispan 服务器无法反序列化命令,因为他对此一无所知。COMMAND_ID = org.infinispan.hibernate.cache.commons.util.CacheCommandIds 中的 121 个位置。所以我认为您需要将 infinispan-hibernate-cache-v53 jar 添加到您的 infinispan 服务器。


推荐阅读