BOster
Legendary Poster
As you know there is a global setting that causes JDE to re-issue queries with the WITH (NOLOCK) qualifier if the original query doesn't return after X number of seconds, the theory being if records are locked for what ever reason this will allow a dirty read and the query can execute. We just did an upgrade from 9.0 where we had this enabled to 9.2 where we had to disable it because we found a bug on the JAS server (maybe ES as well, just found it on the JAS server) that, in some cases, generates mal-formed SQL when it re-issued the query with the NOLOCK qualifier. I always hated that global setting so was glad to disable it.
Well, we are experiencing some performance issues in some code that was the same in 9.0 and 9.2 and it is really starting to look like there may be some TP type blocking going on preventing a SQL query from executing on the ES.
So:
1. Is it possible, via JDEBASE API or otherwise to execute an individual SQL query and explicitly specify that it execute with the NOLOCK qualifier?
2. Is it possible to enable the NOLOCK global setting on the ES but still have it disabled on the JAS?
3. Any other way to get more granular with the NOLOCK qualifier other than just a global setting outside of something like a SQL view, etc.?
Well, we are experiencing some performance issues in some code that was the same in 9.0 and 9.2 and it is really starting to look like there may be some TP type blocking going on preventing a SQL query from executing on the ES.
So:
1. Is it possible, via JDEBASE API or otherwise to execute an individual SQL query and explicitly specify that it execute with the NOLOCK qualifier?
2. Is it possible to enable the NOLOCK global setting on the ES but still have it disabled on the JAS?
3. Any other way to get more granular with the NOLOCK qualifier other than just a global setting outside of something like a SQL view, etc.?