The reason code indicated whether a deadlock or timeout occurred.
Refer to message DSNT500I under "DSNT... Messages" in topic 3.15 for an explanation of 'resource-type' and 'resource-name'.
Refer to Table 3 in Appendix B, "Appendix B. Problem Determination" in topic APPENDIX1.2 for an explanation of resource type codes.
Joined: 23 Nov 2006 Posts: 19270 Location: Inside the Matrix
You most likely have 2 processes that are in conflict with each other. This is caused because the processes do not lock rows in the same order.
Process1 reads a row from tableA for update. Process2 reads a row from tableB for update. Next, process1 tries to read the same row that is held by process2 - it has to wait for the lock to be released. While process1 is waiting, process2 tries to read the row locked by process1.
Whoa, now they are both waiting on each other - a condition known as "deadly embrace", "fatal embrace", or deadlock. The request that "completes" the deadlock is ended with an error condition.
If both processes always locked tableA before tableB, this would not occur. This is best considered/done at design time - not after the code has made it to production use.