I don't think you can call EJBContext.setRollbackOnly() in BMT. You can only call it in CMT with the following Transaction Attributes: Required, Require_new, Manadatory. In BMT, You can use UserTransaction.setRollbackOnly(). Please correct me if I am wrong.