Niranjan Deshpande wrote:Need some more explanation... 
Well, think about session beans. When client invokes a method in a session beans, a transaction is propagated to the session bean from the client. So when CMT used, we can use transaction attributes to specify that how to handle that client transaction, in the bean method.
Now in MDB, we say there are 'no clients' for MDB. Bean methods are listeners, and they listen to the messages. Client may send messages to the message queue, and MDB listen to the messages from the queue. Therefore there are no direct clients for message driven beans. Hence, no transaction is propagated from anywhere to the MDB. As far as many of those transaction attributes says about how to handle the 'client transaction', all of them are meaningless here. Only thing what we can do on the MDB method is, either invoking the method with a transaction or, without a transaction, and that's only. So, REQUIRED type here can be used to create a new transaction (always) and invoke the method with that transaction. The opposite type, NOT_SUPPORTED here can used to invoke the method without any transaction.
All of the other attribute types are meaningless here. Hope this helps.