Have an application where MDB's are introduced to implement asynchronous processing. The MDB in-turn is used to call other existing classes which handle the backend interactions. These classes use JDBC transactions - have commit, rollback statements.
This forces me to use Bean Managed Transactions for the MDB. Is there any disadvantage of using BMT over CMT - if so, what needs to be done to address it? Is there any alternative ?
Using BMT will force you to take care of the transaction commits/rollbacks etc... (as you can see in the JDBC code that you are mentioning). Other than that i dont see any drawback of using BMT.
Just a question, is there any logic involved in the MDB other than invoking the classes which do JDBC work? If there's no logic involved in the MDB other than this, i dont see a need to have a transaction on this MDB since all the transaction handling will be done by the classes doing JDBC.