The easiest alternative to changing the MDB to BMT would be to create a simple stateless session bean with a business method that performs the logging. If you set that method's tx attribute to TX_REQUIRES_NEW, its work will be performed in a separate transaction that is unaffected by the rollback of the message consuming transaction.
[Message sent by forum member 'ksak' (ksak)]
http://forums.java.net/jive/thread.jspa?messageID=301604