IBM Support

Why does MCF set a timeout of 100ms on some queries?

Troubleshooting


Problem

Why does MCF set a timeout of 100ms on some queries?

Symptom

Under SQL Server, with MCF versions 8.0 and before, why do some SQLs have a timeout of 100ms set?

Error Message

SET TIMEOUT 100

Resolving The Problem

Certain areas of the code select a record for locking with a nowait enabled; that is, attempt to lock the record, and if unable to, then don't error, but move on to something else and come back to processing the original later. This is especially used with queue-based updates and multi-threading, where multiple transactions may attempt operations on the same object (case in point: a feed of order line changes coming in, where sequential records may be for the same order). Locking takes place at the order header level and one may want to postpone on the order line change and execute another operation. During this time, the database may have released the original lock.
In Oracle, there is an explicit NOWAIT syntax option to implement this feature. In earlier versions of MS SQL Server, this option did not exist. The code hard-codes an individual timeout wait to be 100ms, since 0 is not valid. This very short timeout functions the same as a NOWAIT. There should be no associated functional or performance issues associated with this.

[{"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

NFX9876

Product Synonym

[<p><b>]Severity[</b><p>];Normal

Document Information

Modified date:
25 June 2018

UID

swg21558366