Kbase P125158: Error 7132 with rtc: -20031 for SQL servers in the database log file
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  6/9/2009 |
|
Status: Verified
SYMPTOM(s):
Error 7132 with rtc: -20031 for SQL servers in the database log file
dsmCursorCreate called for invalid user. rtc: -20031. (7132)
dsmObjectUnlock called for invalid user. rtc: -20031. (7132)
dsmCursorDelete called for invalid user. rtc: -20031. (7132)
called for invalid user. rtc: . (7132)
FACT(s) (Environment):
All Supported Operating Systems
Progress 9.x
OpenEdge 10.0x
OpenEdge 10.1A
CAUSE:
The -20031 ( DSM_INVALID_USER ) error code is returned from the rocket engine when a dsm (rocket) call is made for a user which is now invalid (for which the broker has terminated).
When a client connection is otherwise idle, the client connection processing thread wakes up every 5 seconds and checks to see whether the broker has invalidated the connection. If so, the thread should start to clean up and exit. However, if the thread is otherwise busy processing work for the connection, this does not happen. This can happen for instance when the thread is involved in a very long sort or other activity that does not call dsm. Whenever such non dsm activity does complete, a call to dsm will fail with a return code from dsm of -20031 ( DSM_INVALID_USER ), and this will be reported in the log file.
If the code called dsmCursorCreate, got back the DSM_INVALID_USER code and then tried to clean up with subsequent calls to dsm which also failed because the user had been invalidated by the broker.
This problem arose because the client thread was very busy and Progress has no mechanism in place in this version to interrupt its activity to cause it to cleanup.
FIX:
Upgrade to OpenEdge 10.1B or later.