We are using Infinispan 5.1.5 under RadHat Linux. We have developed a server application which includes an embedded Infinispan instance. In our network there will be multiple servers and the Infinispan instances will be linked together in a cluster. The cluster will comprise a mix of replicated and distributed caches. The nature of our server application requires typical transactional behaviour and I believe that these have been correctly (and simply) programmed in Java code. However, I am very uncertain as to the requirements for the transactional infrastructure in this scenario...
My first assumption is that because our application is reliant on clustered Infinispan caches then the transactions must also by definition be distributed transactions.
I have identified that there are two related transaction products provided by JBoss: the JTA distribution and the JTS distribution. The JTA distribution includes an embeddable transaction manager (TM) and also a standalone recovery manager (RM). This has been my first port of call, but I have now read a note at the end of the Administration Guide which states that this is only for local transactions and if distributed transactions are required that it is necessary to use JTS (which is based on CORBA).
So I am now thinking that I have to switch to JTS, requiring two additional processes to be running on each of our server nodes: the TM and the RM. And I presume that the JTA libraries should be removed as they are redundant? Also note in the infinispan.xml file for our server I have configured the transaction section of the default cache with the JBossStandaloneJTAManagerLookup.
Some expert advice on this matter would be greatly appreciated.
PS I have previously struggled with the installation of the JTS services under Linux for which I belive the installer is faulty.
You don't need JTS. Configuring JBossStandaloneJTAManagerLookup should work. If you want transactions to encompass multiple ops, you'll have to get hold of the transaction manager.