I am using pojocache2.1. All caching operations are being called from session bean methods ( with transactions ). I dont want caching operation to be in this transaction ( caching operations are independent of business methods ). Locks are being held by trasaction and more over if caching operation fails then my business methods are being rolled back.

The overhead of creating a transaction via a tm (at least using ours) is small. POJO Cache always uses transactions, since a single field update or attach involved multiple core cache operations. You can either let the container tm manage it, or use the dummy tm, which is an overly simple tm designed for batching/testing. If you remove the attribute the default applies, which is to detect the current comtainer TM, so removing it will not change anything in this case.

The default of this option is JBossTransactionManagerLookup, which only looks for the JBoss TM. You must have had it set to GenericTransactionManagerLookup before. If the TM lookup fails, POJO Cache will use the Dummy TM, so thats why you get the same behavior.