given a transaction cache with recovery enabled new ConfigurationBuilder().clustering() .cacheMode(CacheMode.REPL_SYNC).transaction() .transactionMode(TransactionMode.TRANSACTIONAL).recovery().enable().jmxStatistics().enable() When using jcosnole to showInDoubtTransactions , an InvocationTargetException is thrown
The Recovery MBean uses different checks than the RecoveryManager itself. RecoveryManagerFactory checks whether recovery is enabled with: boolean recoveryEnabled = configuration.transaction().recovery().enabled() && !configuration.transaction().useSynchronization(); But InternalCacheFactory has a *different* check to enable the recovery MBean: if (configuration.transaction().transactionMode().isTransactional() && configuration.transaction().recovery().enabled()) So with this config, the MBean is enabled, but the RecoveryManager isn't, causing NullPointerExceptions (which just show up as InvocationTargetException in JConsole) when it's used.
Also, it should log a WARN (or maybe even ERROR) if recovery().enabled(), but the other useSynchronization() or isTransactional() checks don't pass so it doesn't really get enabled.
this issue also happens at the latest version
is there a viable workaround for 6.2 ?
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.