3
我試圖在應用程序上使用infinispan作爲分佈式緩存。在tomcat上使用infinispan的分佈式緩存無法啓動
我使用它作爲使用spring和JPA的hibernate的二級緩存。
Infinispan的配置使用該Infinispan的-config.xml中
在分佈式集羣模式下工作<?xml version="1.0" encoding="UTF-8"?>
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:5.1 http://www.infinispan.org/schemas/infinispan-config-5.1.xsd"
xmlns="urn:infinispan:config:5.1">
<global>
<transport clusterName="sigmaCacheCluster">
<properties>
<property name="configurationFile" value="jgroups-tcp.xml" />
</properties>
</transport>
<globalJmxStatistics enabled="true" />
</global>
<default>
<jmxStatistics enabled="true" />
<clustering mode="replication" >
<stateRetrieval fetchInMemoryState="true" />
<sync/>
</clustering>
</default>
</infinispan>
依據使用的Infinispan使用中的demoApp相同的配置文件,它完美的作品,裏面的應用程序運行的時候怎麼過並在Tomcat(7)我得到流動錯誤(請注意,羣集起來的Infinispan發現其他節點):
[DEFAULT APPENDER - FROM WEB] 2013-06-13 11:53:58,248 - INFO org.infinispan.spring.AbstractEmbeddedCacheManagerFactory - Initializing SpringEmbeddedCacheManager instance ...
[DEFAULT APPENDER - FROM WEB] 2013-06-13 11:53:58,802 - INFO org.infinispan.configuration.parsing.Parser51 - ISPN000184: The stateRetrieval configuration element has been deprecated, we're assuming you meant stateTransfer. Please see XML schema for more information.
[DEFAULT APPENDER - FROM WEB] 2013-06-13 11:53:59,065 - INFO org.infinispan.spring.AbstractEmbeddedCacheManagerFactory - Successfully initialized SpringEmbeddedCacheManager instance [org.infinispan.spring.prov[email protected]]
[DEFAULT APPENDER - FROM WEB] 2013-06-13 11:53:59,732 - INFO org.infinispan.remoting.transport.jgroups.JGroupsTransport - ISPN000078: Starting JGroups Channel
[DEFAULT APPENDER - FROM WEB] 2013-06-13 11:54:03,263 - INFO org.jgroups.protocols.UFC - UFC is not needed (and can be removed) as we're running on a TCP transport
[DEFAULT APPENDER - FROM WEB] 2013-06-13 11:54:03,581 - INFO org.infinispan.remoting.transport.jgroups.JGroupsTransport - ISPN000094: Received new cluster view: [comp-Lap-28466|5] [comp-Lap-28466, comp-Lap-1139]
[DEFAULT APPENDER - FROM WEB] 2013-06-13 11:54:03,852 - INFO org.infinispan.remoting.transport.jgroups.JGroupsTransport - ISPN000079: Cache local address is comp-Lap-1139, physical addresses are [10.0.0.106:7801]
[DEFAULT APPENDER - FROM WEB] 2013-06-13 11:54:03,858 - INFO org.infinispan.factories.GlobalComponentRegistry - ISPN000128: Infinispan version: Infinispan 'Tactical Nuclear Penguin' 5.3.0.Beta1
[DEFAULT APPENDER - FROM WEB] 2013-06-13 11:54:04,448 - INFO org.infinispan.jmx.CacheJmxRegistration - ISPN000031: MBeans were successfully registered to the platform MBean server.
[DEFAULT APPENDER - FROM WEB] 2013-06-13 11:54:07,237 - ERROR org.jgroups.blocks.RequestCorrelator - failed unmarshalling buffer into return value
java.lang.ClassCastException: org.infinispan.commons.hash.MurmurHash3 cannot be cast to java.util.List
at org.infinispan.distribution.ch.ReplicatedConsistentHash$Externalizer.readObject(ReplicatedConsistentHash.java:145)
at org.infinispan.distribution.ch.ReplicatedConsistentHash$Externalizer.readObject(ReplicatedConsistentHash.java:135)
at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:406)
at org.infinispan.marshall.jboss.ExternalizerTable.readObject(ExternalizerTable.java:226)
at org.infinispan.marshall.jboss.JBossMarshaller$ExternalizerTableProxy.readObject(JBossMarshaller.java:164)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:351)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37)
at org.infinispan.topology.CacheTopology$Externalizer.readObject(CacheTopology.java:145)
at org.infinispan.topology.CacheTopology$Externalizer.readObject(CacheTopology.java:134)
at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:406)
at org.infinispan.marshall.jboss.ExternalizerTable.readObject(ExternalizerTable.java:226)
at org.infinispan.marshall.jboss.JBossMarshaller$ExternalizerTableProxy.readObject(JBossMarshaller.java:164)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:351)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37)
at org.infinispan.remoting.responses.SuccessfulResponse$Externalizer.readObject(SuccessfulResponse.java:101)
at org.infinispan.remoting.responses.SuccessfulResponse$Externalizer.readObject(SuccessfulResponse.java:86)
at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:406)
at org.infinispan.marshall.jboss.ExternalizerTable.readObject(ExternalizerTable.java:226)
at org.infinispan.marshall.jboss.JBossMarshaller$ExternalizerTableProxy.readObject(JBossMarshaller.java:164)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:351)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37)
at org.infinispan.marshall.jboss.AbstractJBossMarshaller.objectFromObjectStream(AbstractJBossMarshaller.java:163)
at org.infinispan.marshall.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:116)
at org.infinispan.marshall.AbstractDelegatingMarshaller.objectFromByteBuffer(AbstractDelegatingMarshaller.java:104)
at org.infinispan.remoting.transport.jgroups.MarshallerAdapter.objectFromBuffer(MarshallerAdapter.java:50)
at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:390)
at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:247)
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:665)
at org.jgroups.JChannel.up(JChannel.java:719)
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1008)
at org.jgroups.protocols.RSVP.up(RSVP.java:187)
at org.jgroups.protocols.FRAG2.up(FRAG2.java:178)
at org.jgroups.protocols.FlowControl.up(FlowControl.java:404)
at org.jgroups.protocols.FlowControl.up(FlowControl.java:386)
at org.jgroups.protocols.tom.TOA.up(TOA.java:122)
at org.jgroups.protocols.SEQUENCER.up(SEQUENCER.java:251)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:893)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:234)
at org.jgroups.protocols.UNICAST2.handleBatchReceived(UNICAST2.java:838)
at org.jgroups.protocols.UNICAST2.up(UNICAST2.java:481)
at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:675)
at org.jgroups.stack.Protocol.up(Protocol.java:406)
at org.jgroups.protocols.FD.up(FD.java:274)
at org.jgroups.stack.Protocol.up(Protocol.java:406)
at org.jgroups.protocols.MERGE2.up(MERGE2.java:223)
at org.jgroups.stack.Protocol.up(Protocol.java:406)
at org.jgroups.protocols.TP.passBatchUp(TP.java:1383)
at org.jgroups.protocols.TP$BatchHandler.run(TP.java:1519)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
我比樹天試圖解決燒得更,但一無所獲,我會感謝你的幫助
編輯:當刪除<clustering mode="replication">
一切工作正常。
這聽起來像是一個類路徑問題。你應該仔細檢查你的lib目錄中的所有jar版本,並確保它們在一起很好地工作。如果您的Tomcat應用程序正在與JBoss進行通信,請確保它們都具有相同的jar版本。有了這麼多的lib目錄,這樣的調試可能會非常痛苦。 :( –
謝謝,我已經回到最後一個穩定版本的spring到infinispan緩存提供程序,它看起來更好,仍然沒有集羣,但沒有更多的有線例外 – DuduO
怪異請注意,如果您緩存Hibernate 2LC和您自己的分佈式緩存對於你自己的代碼,這些需要有不同的配置文件,Hibernate 2LC對緩存設置和需要定義的指定緩存有一些嚴格的要求(見https://github.com/galderz/secondlc中的例子)。 ,我建議你嘗試使用最新的Infinispan 5.3.0.CR2版本... –