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?
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
Was this topic helpful?
Document Information
Modified date:
25 June 2018
UID
swg21558366