Infinispan - проблема маршалинга кластера кэша 2-го уровня в спящем режиме
Мы пытаемся настроить infinispan как кэш 2-го уровня для Hibernate в Jboss EAP 7.1 и запустить 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.business.standard.StandardCode из [Модуль "org.hibernate.infinispan" из локального загрузчика модулей @64d2d351 (искатель: искатель локального модуля @1b68b9a4 (корни: C:\jboss-eap-7.1\NodeA\modules,C:\jboss-eap-7.1\NodeA\ модули \ система \ слои \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.performLoadClassUnchecked (ConcurrentClass.java.jpg).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.RemhalClass.java: org.jboss.marshalling.river. 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.doReadNewObject (RiverUnmarshaller95) orgarshaller..doReadObject(RiverUnmarshaller.java:272) по адресу org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:205) по адресу org.jboss.marshalling.AbstractObjectInput.bject.bject.commons.marshall.MarshallUtil.unmarshallArray(MarshallUtil.java:159) в org.infinispan.commands.write.InvalidateCommand.readFrom(InvalidateCommand.java:109) в org.hibernate.cache.infinispan.valutil.java:47) в org.infinispan.marshall.exts.ReplicableCommandExternalizer.readCommandParameters(ReplicableCommandExternalizer.java:113) в org.infinispan.marshall.exts.ReplicableCommandExternalizer.readObject(ReplicableCommandExternalizer.java:89) в org.infinispan.marshall.exts.ReplicableFreadCommandObject(репликабельный.marshall.core.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:479) в org.infinispan.marshall.core.ExternalizerTable.readObject(ExternalizerTable.java:236) в org.infinispan.marshall.corehalject.JBoreadObject. (JBossMarshaller.java:149) на org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:350) на org.jboss.marshalling.river.RiverUnmarshaller.doReadOmarshaller.java: RiverUnmarshaller.doReadObject.java: marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41) в org.infinispan.commands.remote.SingleRpcCommand.readFrom(SingleRpcCommand.java:46) в org.infinispan.marshall.exts.ReplicableCommandExternalizer.readCommandParameters или ReplicableCommandExternalizer.readCommandParameters..marshall.exts.CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.java:173) по адресу org.infinispan.marshall.exts.CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.readObject) (CacheRpcCommandExternalizer.java..java: 479) в org.infinispan.marshall.core.ExternalizerTable.readObject(ExternalizerTable.java:236) в org.infinispan.marshall.core.JBossMarshaller$ExternalizerTableProxy.readObject(JBossMarshaller.java:149) в org.149) marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:350) на org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:205) на org.jboss.marshalling.AbstractObjectInput.bjectmarshalling.AbstractObjectInput.bjectmava.input.jpg.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(CommandAware3RpcavaDispatcher.handle (CommandAware3roup). блоки.RequestCorrelator.handleRequest(RequestCorrelator.java:455) в org.jgroups.blocks.RequestCorrelator.dispatch(RequestCorrelator.java:406) в org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelatorgroups.java:35:35).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)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. протоколы.TP.passMessageUp (TP.java:1658) в org.jgroups.protocols.TP$SingleMessageHandler.run(TP.java:1876)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. протоколы.TP.passMessageUp (TP.java:1658) в org.jgroups.protocols.TP$SingleMessageHandler.run(TP.java:1876)jgroups.protocols.TP $ SingleMessageHandler.run (TP.java:1876)jgroups.protocols.TP $ SingleMessageHandler.run (TP.java:1876)
Спасибо, Santhosh S