IBM Support

Tips to handle the DeadLock Situations.

Question & Answer


Question

How to handle(find,resolve) the deadLock?

Cause

DeadLock Created on records

Answer

Here are some tips to find, resolve the deadlock situations in Sterling Fullfilment Suite.
1) Oracle should produce a file called deadlock.out, which contains a running log of when deadlocks were detected, what Oracle threads/SQLs were involved, etc. This will help you in case if you face any problem while using these API's.

2) When you have a chance to rebuild/redeploy, it's advisable to enable some extended deadlock logging within the application. This involves two changes:

a) Add the property yfs.app.identifyconnection=Y to your yfs.properties file upto 7.11 version.
Add yfs.yfs.app.identifyconnection=Y in customer_overrides.properties in version 8.x and 9.x.
b) Add the parameter -DDLOCK_LOG_DIR=<dir_name> to the Java command line used to start up the App server(s)

Without these parameters: Oracle will log what SQLs are involved in each deadlock, and who the victim(s) are, but doesn't have any knowledge of where in the code the SQLs are coming from.

With these parameters:
- When the system connects to Oracle, it adds a couple of identifiers to the connection string which goes into Oracle's session info
- When a deadlock occurs, Sterling will create a separate log file (in DLOCK_LOG_DIR) which has both deadlock SQLs, as well as associated session info

[{"Product":{"code":"SS6PEW","label":"IBM Sterling Order Management"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Performance","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"All Editions","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Document Information

Modified date:
10 May 2022

UID

swg21600486