Caching 一致性中的事务缓存
我试图在一致性中设置事务缓存,但根据文档中的示例尝试创建连接时遇到以下问题:Caching 一致性中的事务缓存,caching,distributed-caching,oracle-coherence,Caching,Distributed Caching,Oracle Coherence,我试图在一致性中设置事务缓存,但根据文档中的示例尝试创建连接时遇到以下问题: java.lang.IllegalStateException: Service "TransactionalCache" has been started with a non-compatible BackingMapManager: com.tangosol.coherence.transaction.internal.TxConfigurableCacheFactory$Manager@30d73d83
java.lang.IllegalStateException: Service "TransactionalCache" has been started with a non-compatible BackingMapManager: com.tangosol.coherence.transaction.internal.TxConfigurableCacheFactory$Manager@30d73d83
at com.tangosol.net.ExtensibleConfigurableCacheFactory.validateBackingMapManager(ExtensibleConfigurableCacheFactory.java:806)
at com.tangosol.net.ExtensibleConfigurableCacheFactory.ensureService(ExtensibleConfigurableCacheFactory.java:585)
at com.tangosol.net.ExtensibleConfigurableCacheFactory.ensureService(ExtensibleConfigurableCacheFactory.java:317)
at com.tangosol.coherence.transaction.internal.ConfigHelper.getTransactionalService(ConfigHelper.java:136)
at com.tangosol.coherence.transaction.internal.ConfigHelper.ensureTransactionalService(ConfigHelper.java:328)
at com.tangosol.coherence.transaction.DefaultConnectionFactory.createConnection(DefaultConnectionFactory.java:41)
这是我的缓存配置:
<caching-scheme-mapping>
<cache-mapping>
<cache-name>testCache</cache-name>
<scheme-name>testScheme</scheme-name>
</cache-mapping>
</caching-scheme-mapping>
<caching-schemes>
<transactional-scheme>
<scheme-name>testScheme</scheme-name>
<!--<service-name>TransactionalCache</service-name>-->
<partition-count>2039</partition-count>
<backup-count>1</backup-count>
<autostart>true</autostart>
</transactional-scheme>
</caching-schemes>
EDIT2:除此之外,还有一件奇怪的事情:当我试图释放我从CacheFactory.getCache使用CacheFactory.releaseCache获得的原始非tx缓存时,我遇到了以下异常:
java.lang.IllegalArgumentException: The cache testCache was created using a different factory; that same factory should be used to release the cache.
at com.tangosol.net.ExtensibleConfigurableCacheFactory.releaseCache(ExtensibleConfigurableCacheFactory.java:1013)
at com.tangosol.net.ExtensibleConfigurableCacheFactory.releaseCache(ExtensibleConfigurableCacheFactory.java:288)
at com.tangosol.net.CacheFactory.releaseCache(CacheFactory.java:486)
at org.radargun.service.Coherence3Service.releaseCache(Coherence3Service.java:118)
at org.radargun.service.Coherence3Service.stop(Coherence3Service.java:129)
at org.radargun.stages.lifecycle.LifecycleHelper.stop(LifecycleHelper.java:133)
at org.radargun.stages.ScenarioCleanupStage.executeOnSlave(ScenarioCleanupStage.java:36)
at org.radargun.Slave.run(Slave.java:97)
at org.radargun.Slave.main(Slave.java:157)
我很确定您在使用NamedCache获取TransactionalCache实例时遇到了这段代码片段—您还可以看看使用com.tangosol.coherence.transaction.DefaultConnectionFactory类而不是使用CacheFactory类吗。
java.lang.IllegalArgumentException: The cache testCache was created using a different factory; that same factory should be used to release the cache.
at com.tangosol.net.ExtensibleConfigurableCacheFactory.releaseCache(ExtensibleConfigurableCacheFactory.java:1013)
at com.tangosol.net.ExtensibleConfigurableCacheFactory.releaseCache(ExtensibleConfigurableCacheFactory.java:288)
at com.tangosol.net.CacheFactory.releaseCache(CacheFactory.java:486)
at org.radargun.service.Coherence3Service.releaseCache(Coherence3Service.java:118)
at org.radargun.service.Coherence3Service.stop(Coherence3Service.java:129)
at org.radargun.stages.lifecycle.LifecycleHelper.stop(LifecycleHelper.java:133)
at org.radargun.stages.ScenarioCleanupStage.executeOnSlave(ScenarioCleanupStage.java:36)
at org.radargun.Slave.run(Slave.java:97)
at org.radargun.Slave.main(Slave.java:157)