1 Reply Latest reply on Aug 20, 2012 8:00 AM by Galder Zamarreño

    Joining two clusters (transactional) with HotRod

    Michał Ćmil Newbie



      I have a following cluster configuration:

      Replication Cluster A

      Node A.1 (standard node, no cache store)

      Node A.2 (HotRodServer with JDBC CacheStore)


      Replication Cluster B

      Node B.1 (standard node, no cache store)

      Node B.2 (node with a remote cache store, connected to the server with on Node A.2)


      I'm trying to connect both clusters using HotRod (so every change in one cluster will be replicated to the other one). When using transactional caches, I'm getting the following exception on any attempt to write something to the cache:

      ISPN000112: exception while committing javax.transaction.xa.XAException

      They are also timeout exceptions all over the cluster.  Whats interesting is that it only happens when HotRod is online, if i disable the remote cache store - a write to the cache is not throwing any exceptions).


      I can't also fetch the state using a remote cache store (an exception "CacheLoaderException("RemoteCacheStore can only run in shared mode! This method shouldn't be called in shared mode") is thrown) - is this functionality no longer supported?


      I'm trying to achieve some kind of transparency in using HotRod (i'm only interested in communicating A.1 and B.1, but I can't form a cluster between them) . Is this configuration even possible, or I'm trying to do an impossible thing?


      EDIT: Additional exceptions on the HotRodServer (A.2):

      org.infinispan.util.concurrent.TimeoutException: Unable to acquire lock after [10 seconds] on key [ByteArrayKey{data=ByteArray{size=14, hashCode=388c74, array=0x0301fe0339000000..}}]


      org.infinispan.CacheException: Type of data read is unknown. Id=-2147482548 is not amongst known reader indexes.