We have a customer using SQL server 2017, connecting via the "ODBC driver 17 for sql server", from Uniface 9.7, using either MSS U5.1 or 5.2 (we've tried both).
Occasionally (one in a thousand?), when proc issues a retrieve against a view in the database, the system seems to reach the read trigger, stop and never return.
The entity is defined as no updates in both the model and the component, and there's been no opportunity to update any fields, as this is the first read in the retrieve.
Moreover, the locked service (userver process), seems to be capable of locking something else up, as other services will begin to queue behind this process, and only become free when the offending service is killed.
We have the lock timeouts set to infiinte, to prevent missed writes on the database, but this code should neither lock nor check for locks on the read....
When it's functioning properly, the retrieve and subsequent loop takes sub 2 seconds to run, so I can't check for locking behaviour at this point, because my reactions aren't fast enough. 🙂
I think that when it's stopped, the sql script we use to check locks in the system is also locked up.... 😔, but as it doesn't happen often, so it's not repeatable, and it holds up production code while it's in play, we don't have long each time it happens to try diagnostics.
I suppose that's what I'm looking for, anyone with a deeper understanding of either the uniface MSS driver behaviour, or SQL server management, to give me a clue what diagnostic I could try to see if I can bottom the problem.
This customer is not the only one on this version of SQL server, or this version of uniface and drivers, but they are the only one reporting the problem.
Sorry for the ramble, but I've tried to include everything I could think of.
Iain