Once a session is committed, the SQL session remains connected to the back-end. The side effect of this is that when a new transaction is started, we're not enlisting the connection in the transaction and the connection stay in auto commit mode.
One way of solving is to
- disassociate the connection from the SQL session at commit time
- enforce the session state checking by comparing the current transaction mode with the associating state