IBM Support

Why are there a high number of rollbacks for an IBM Sterling Order Management schema?  

Question & Answer


Question

Why are there a high rollback % number for an IBM Sterling Order Management schema?

Answer

IBM Sterling Order Management showing a rollback % greater than 50%, is expected, and does not really mean that 1 out of 2 transactions is failing, and being rolled back. It should not have any functional/performance implication on the application.

Database report show two different figures: User Commits, which is the number of times that Commit is called from user processes, and User Rollbacks, which is the corresponding number of calls to Rollback. The reported rollback percentage is simply = rollback / (rollback + commit)

The IBM Sterling Order Management uses db connection pooling as part of its processing. When an API is called, the code:
- gets a connection from the pool
- begins a transaction
- performs one or more updates to the database
- ends the transaction with either a commit or rollback, as needed, based on business logic
- releases the connection back to the pool
When a connection is released, to automatically perform a rollback. It was done so as to release the locks held by the current transaction at a central place, without having to find out whether transaction failed or succeeded. In case of failure, rollback with do the necessary and for successful transactions, it will cause no change.
Because of this, the normal sequence will be:
- begin transaction
- commit
- end transaction
- rollback
This means database simplified stats will show a minimum of 50% rollback percentage, even if every pooled transaction is successfully committed.
There are some additional database stats numbers that back this up. Take AWR report of Oracle for example, two numbers reported are:
- db block changes
- rollback changes: undo records applied
If you look at this two numbers, you should see that for every undo record applied, there is a much higher number of db block changes made. This shows that there are many more updates being committed, as compared to the number of real rollbacks happening.
For DB2, rollback data can be obtained by running db2collect script. Here is a reference https://www.ibm.com/support/pages/node/6486387

[{"Product":{"code":"SS6PEW","label":"IBM Sterling Order Management"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

FAQ2905

Document Information

Modified date:
30 May 2024

UID

swg21518197