I did some prototyping in which I update two caches within the same transaction. For transaction demarcation I use only one of the cache manager, expecting it to manage the updates to both caches. In the end I get lots of errors for transactions that did not finish in time.
How do I handle transactions that update several caches from the same cache manager?
okay, I isolated the situation where I get timeouted transactions - as said one transaction spanning two caches and one of the keys is local , the other remote; additionally cache is distributed_sync with transaction configured syncCommitPhase="false"...
your use case is supposed to work fine. Could you please create a test case so that we can reproduce the problem? Feel free to create an issue in JIRA and attach your test there.
Are there significant benefits with the new singlenodelocking model if the transacton is started on the node owning the key?
Yes, you might avoid manay RPC, if your node is the only owner the you might avoid all RPCs.
What happens when this node goes down while the transacton is being commited?
Infinispan supports XA transactions, which includes support for recovery but it depends on your transaction manager. When using the JBoss TM for example, the transaction could be recovered or aborted from the transaction log.