Java infinispan与实例级别的Jta

Java infinispan与实例级别的Jta,java,caching,jta,spring-transactions,infinispan,Java,Caching,Jta,Spring Transactions,Infinispan,有没有一种方法可以让我获取infinispan的单例实例,从而从实例级别(而不是缓存级别)获取XA资源,并登记到正在进行的JTA事务中 ConfigurationBuilder builder = new ConfigurationBuilder(); builder.transaction().transactionMode(TransactionMode.TRANSACTIONAL); builder.jmxStatis

有没有一种方法可以让我获取infinispan的单例实例,从而从实例级别(而不是缓存级别)获取XA资源,并登记到正在进行的JTA事务中

ConfigurationBuilder builder = new ConfigurationBuilder();
                  builder.transaction().transactionMode(TransactionMode.TRANSACTIONAL);
                  builder.jmxStatistics().enable();
                  //builder.jmxStatistics()
                  // Construct a local cache manager using the configuration we have defined
                  DefaultCacheManager cacheManager = new DefaultCacheManager(builder.build());
尝试了以上,这是假设在jta,自动

还是我必须使用

GenericTransactionLookup.init()。。。!?

有人请帮助我理解它在英菲尼斯潘

创建缓存不会向事务管理器注册任何内容。在主题之外,代码只创建缓存管理器,默认缓存仅在调用
getCache()
时启动,配置中的任何其他缓存也是如此

每次调用缓存操作时,事务缓存都会注册一个新的
XAResource
实例,并检测到正在运行的JTA事务。如果它检测到一个
TransactionManager
(通过
GenericTransactionManagerLookup
)但没有正在运行的事务,它将首先创建一个JTA事务,运行该操作,并提交JTA事务。(读取操作除外。)


您无法从Infinispan获取
XAResource
,以手动登记JTA事务。您可以使用
cache.getAdvancedCache().getXAResource()
获取
XAResource
,但您只能将其用于恢复。

创建缓存不会向事务管理器注册任何内容。在主题之外,代码只创建缓存管理器,默认缓存仅在调用
getCache()
时启动,配置中的任何其他缓存也是如此

每次调用缓存操作时,事务缓存都会注册一个新的
XAResource
实例,并检测到正在运行的JTA事务。如果它检测到一个
TransactionManager
(通过
GenericTransactionManagerLookup
)但没有正在运行的事务,它将首先创建一个JTA事务,运行该操作,并提交JTA事务。(读取操作除外。)


您无法从Infinispan获取
XAResource
,以手动登记JTA事务。您可以使用
cache.getAdvancedCache().getXAResource()
获取
XAResource
,但您只能将其用于恢复。

这意味着,一旦配置,我无法决定哪些缓存必须在事务中,或者不必在事务中。。顺便问一下,如何检查它是否参与了交易。。。!?根据文件,它说,它检测到jta交易。。我真的无法从英菲尼斯潘那边找到任何日志。有时缓存无法识别获取空jta的jta。。!!您可以避免在现有事务中登记缓存,但是您必须在之前和之后调用
TransactionManager.suspend()
。您可以为
org.infinispan.transaction
启用跟踪日志记录以获取更多信息。我无法看到事务缓存的任何跟踪。。,有用户界面吗?回滚后,我可以在何处跟踪数据?这意味着,一旦配置,我无法决定哪些缓存必须在事务中,或者不必在事务中。。顺便问一下,如何检查它是否参与了交易。。。!?根据文件,它说,它检测到jta交易。。我真的无法从英菲尼斯潘那边找到任何日志。有时缓存无法识别获取空jta的jta。。!!您可以避免在现有事务中登记缓存,但是您必须在之前和之后调用
TransactionManager.suspend()
。您可以为
org.infinispan.transaction
启用跟踪日志记录以获取更多信息。我无法看到事务缓存的任何跟踪。。,有用户界面吗?回滚后,在哪里可以跟踪数据?