Infinispan-Hibernate 2级缓存集群封送处理问题

时间:2020-04-08 06:14:24

标签: jboss infinispan hibernate-cache infinispan-9 infinispan-8

我们正在尝试将infinispan配置为Jboss EAP 7.1中的Hibernate二级缓存,并在群集的两个节点设置中运行jboss。

查找缓存元素是可行的,但是如果我们更新休眠实体,则由infinispan触发的更新缓存步骤将在两个节点上都失败,并且我们尝试更新的那个实体的封送处理错误(由类未找到异常引起)。

这是配置:

在hibernate-cfg.xml中 org.hibernate.cache.infinispan.InfinispanRegionFactory

在sample-entity-hbm.xml中

 <class name="com.business.standard.StandardCode" table="csc011">

 <cache usage="read-write"/>   

在jboss standalone-ha.xml中

        <cache-container name="hibernate"  module="org.hibernate.infinispan">
            <transport channel="hibernate-channel" lock-timeout="60000"/>
            <local-cache name="local-query">
                <eviction strategy="LRU" max-entries="10000"/>
                <expiration max-idle="100000"/>
            </local-cache>
            <replicated-cache name="timestamps" mode="ASYNC"/>
            <invalidation-cache name="entity">
                <transaction mode="NON_XA"/>
                <eviction strategy="LRU" max-entries="10000"/>
                <expiration max-idle="100000"/>
            </invalidation-cache>               
        </cache-container>

错误:

15:02:45,974警告[org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher](OOB-20,XXX-53994)ISPN000220:从字节缓冲区取消编组远程命令时出现问题:java.lang.ClassNotFoundException:com来自本地模块加载器@ 64d2d351的[Module“ org.hibernate.infinispan”模块中的.business.standard.StandardCode(查找器:本地模块查找器@ 1b68b9a4(根目录:C:\ jboss-eap-7.1 \ NodeA \ modules,C:\ jboss -eap-7.1 \ NodeA \ modules \ system \ layers \ base.overlays \ layer-base-jboss-eap-7.1.5.CP,C:\ jboss-eap-7.1 \ NodeA \ modules \ system \ layers \ base, C:\ jboss-eap-7.1 \ DEV \ modules))] 在org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198) 在org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:412) 在org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:400) 在org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116) 在java.lang.Class.forName0(本地方法) 在java.lang.Class.forName(Class.java:348) 在org.jboss.marshalling.AbstractClassResolver.loadClass(AbstractClassResolver.java:123) 在org.jboss.marshalling.AbstractClassResolver.resolveClass(AbstractClassResolver.java:104) 在org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:1022) 在org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1355) 在org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272) 在org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:220) 在org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1853) 在org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1767) 在org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1395) 在org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272) 在org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:205) 在org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41) 在org.infinispan.commons.marshall.MarshallUtil.unmarshallArray(MarshallUtil.java:159) 在org.infinispan.commands.write.InvalidateCommand.readFrom(InvalidateCommand.java:109) 在org.hibernate.cache.infinispan.util.BeginInvalidationCommand.readFrom(BeginInvalidationCommand.java:47) 在org.infinispan.marshall.exts.ReplicableCommandExternalizer.readCommandParameters(ReplicableCommandExternalizer.java:113) 在org.infinispan.marshall.exts.ReplicableCommandExternalizer.readObject(ReplicableCommandExternalizer.java:89) 在org.infinispan.marshall.exts.ReplicableCommandExternalizer.readObject(ReplicableCommandExternalizer.java:41) 在org.infinispan.marshall.core.ExternalizerTable $ ExternalizerAdapter.readObject(ExternalizerTable.java:479) 在org.infinispan.marshall.core.ExternalizerTable.readObject(ExternalizerTable.java:236) 在org.infinispan.marshall.core.JBossMarshaller $ ExternalizerTableProxy.readObject(JBossMarshaller.java:149) 在org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:350) 在org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:205) 在org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41) 在org.infinispan.commands.remote.SingleRpcCommand.readFrom(SingleRpcCommand.java:46) 在org.infinispan.marshall.exts.ReplicableCommandExternalizer.readCommandParameters(ReplicableCommandExternalizer.java:113) 在org.infinispan.marshall.exts.CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.java:173) 在org.infinispan.marshall.exts.CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.java:68) 在org.infinispan.marshall.core.ExternalizerTable $ ExternalizerAdapter.readObject(ExternalizerTable.java:479) 在org.infinispan.marshall.core.ExternalizerTable.readObject(ExternalizerTable.java:236) 在org.infinispan.marshall.core.JBossMarshaller $ ExternalizerTableProxy.readObject(JBossMarshaller.java:149) 在org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:350) 在org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:205) 在org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41) 在org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller.objectFromObjectStream(AbstractJBossMarshaller.java:134) 在org.infinispan.marshall.core.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:101)处 在org.infinispan.commons.marshall.AbstractDelegatingMarshaller.objectFromByteBuffer(AbstractDelegatingMarshaller.java:80) 在org.infinispan.remoting.transport.jgroups.MarshallerAdapter.objectFromBuffer(MarshallerAdapter.java:28) 在org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:163) 在org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:455) 在org.jgroups.blocks.RequestCorrelator.dispatch(RequestCorrelator.java:406) 在org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:357) 在org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:245) 在org.jgroups.blocks.MessageDispatcher $ ProtocolAdapter.up(MessageDispatcher.java:664) 在org.jgroups.JChannel.up(JChannel.java:738) 在org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1030) 在org.jgroups.protocols.FRAG2.up(FRAG2.java:165) 在org.jgroups.protocols.FlowControl.up(FlowControl.java:390) 在org.jgroups.protocols.pbcast.GMS.up(GMS.java:1037) 在org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:234) 在org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1077) 在org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:792) 在org.jgroups.protocols.UNICAST3.up(UNICAST3.java:433) 在org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:649) 在org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:155) 在org.jgroups.protocols.FD_ALL.up(FD_ALL.java:200) 在org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:325) 在org.jgroups.protocols.MERGE3.up(MERGE3.java:292) 在org.jgroups.protocols.Discovery.up(Discovery.java:296) 在org.jgroups.protocols.MPING.up(MPING.java:178) 在org.jgroups.protocols.TP.passMessageUp(TP.java:1658) 在org.jgroups.protocols.TP $ SingleMessageHandler.run(TP.java:1876)

谢谢 桑索什(Santhosh S)

0 个答案:

没有答案