According to the spec 17.3.3, you are not supposed to use Connection.commit() : The Bean Provider uses the UserTransaction interface to demarcate transactions. All updates to the resource managers between the UserTransaction.begin() and UserTransaction.commit() methods are performed in a transaction. While an instance is in a transaction, the instance must not attempt to use the resource-manager specific transaction demarcation API (e.g. it must not invoke the commit() or rollback() method on the java.sql.Connection interface or on the javax.jms.Session interface).