MDB's are the only way to tie the asynchronous receipt of a message together transactionally with the processing of that message. There's no other way (in or out of MDBs) to do that in Java. You're really comparing apples and oranges. Kyle
Ah yes, (lightbulb moment)...it's the <b>asynchronicity</b> of the MDB where the real power is at and the fact you can slap on CMT too. Session beans are adept for synchronous transactions.
A common pattern (well, technique) is to combine MDBs and SLSBs. You use an MDB to accept messages and call a session bean to perform the work. This way if you change your method of message delivery you don't have to move so much code around.
Could you hold this puppy for a sec? I need to adjust this tiny ad:
a bit of art, as a gift, that will fit in a stocking