Resulting actions in transaction management

shows the actions that occur as a result of different combinations of these configuration properties: Allocate, StopCondition, and TransactionMode.

Table 6-1: State, event, result table for transaction management

Configuration property states and conditions

Event

Resulting Activities

TransactionMode = short Allocate = request StopCondition = error or warning

If StopCondition is encountered

Rolls back transaction at StopCondition. Does not continue in request and ends the connection.

If end of request with no StopCondition

Commits transaction and ends the connection.

If begin transaction is encountered in request

Commits transaction. Switches to temporary long transaction mode and turns on begin transaction.

If commit or rollback is encountered

Issues the commit or rollback.

If cursor declare or dynamic prepare is encountered

Commits transaction. Switches to long transaction mode.

TransactionMode = short Allocate = request StopCondition = none

If error or warning is encountered

Does not roll back. Continues in request and keeps the connection until end of request.

If end of request

Commits transaction and ends the connection.

If begin transaction is encountered in request

Commits transaction. Switches to temporary long transaction mode and turns on begin transaction.

If commit or rollback is encountered

Issues the commit or rollback.

If cursor declare or dynamic prepare is encountered

Commits transaction. Switches to long transaction mode.

TransactionMode = short Allocate = connect StopCondition = error or warning

If StopCondition is encountered

Rolls back transaction at StopCondition. Does not continue in request but keeps the connection.

If end of request with no StopCondition

Commits transaction and keeps the connection.

If begin transaction is encountered in request

Commits transaction. Switches to temporary long transaction mode and turns on begin transaction.

If commit or rollback is encountered

Issues the commit or rollback.

If cursor declare or dynamic prepare is encountered

Commits transaction. Switches to long transaction mode.

TransactionMode = short Allocate = connect StopCondition = none

If error or warning is encountered

Does not roll back. Continues in request and keeps the connection.

If end of request with no StopCondition

Commits transaction and keeps the connection.

If begin transaction is encountered in request

Commits transaction. Switches to temporary long transaction mode and turns on begin transaction.

If commit or rollback is encountered

Issues the commit or rollback.

If cursor declare or dynamic prepare is encountered

Commits transaction. Switches to long transaction mode.

TransactionMode = long or temporary long Allocate = request or connect StopCondition = error or warning

If StopCondition is encountered

Does not roll back transaction at StopCondition. Does not continue in request but keeps the connection.

If end of request with no StopCondition

Keeps the connection.

If end of request with commit or rollback

Ends the connection.

If begin transaction is encountered in request

If not in begin transaction block, sets begin transaction. If in begin transaction block, ignores it and issues message.

If commit or rollback is encountered

Issues the commit or rollback. If in begin transaction block, ends begin transaction.

If cursor declare or dynamic prepare is encountered

Executes statement.

Same, plus cursor and dynamic statements all freed and in temporary long mode

If commit or rollback is encountered

Issues the commit or rollback. Ends begin transaction and reverts to previous transaction mode.

Same, plus cursor and dynamic statements active and in temporary long mode

If free of a cursor or dynamic, means that all cursors and dynamics are now freed

Executes free. If not in begin transaction block, reverts to previous transaction mode.

TransactionMode = long or temporary long Allocate = request or connect StopCondition = none

If StopCondition is encountered

Does not roll back transaction at StopCondition. Continues in request and keeps the connection.

If end of request with no StopCondition

Keeps the connection.

If end of request with commit or rollback

Ends the connection.

If begin transaction is encountered in request

If not in begin transaction block, sets begin transaction. If in begin transaction block, then ignores and issues message.

TransactionMode = long or temporary long Allocate = request or connect StopCondition = none

If commit or rollback is encountered

Issues the commit or rollback. If in begin transaction block, ends begin transaction.

If cursor declare or dynamic prepare is encountered

Executes statement.

Same, plus cursor and dynamic statements all freed and in temporary long mode

If commit or rollback is encountered

Issues the commit or rollback. Ends begin transaction. Reverts to previous transaction mode.

Same, plus cursor and dynamic statements active and in temporary long mode

If Free of a cursor or dynamic, all cursors and dynamics are now freed

Executes free. If not in begin transaction block, reverts to previous transaction mode.