How do you connect?
Do you use a connection out of JBoss connection pool?
If you use plain JDBC, JDBC-connection-parameter and connection handling within the MDB, the DB access will be commited directly after the SQL-statement.
This is without respect whether the MDB call is successful or not (and might not what you want).
If you have to use plain JDBC, use a DataSource and set the MDB CMT to REQUIRED.
In this case the action is only commited if the MDB return without an exception.