Kbase P95758: Error (7183) running a multi-threaded Open Client Application
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  16/10/2008 |
|
Status: Verified
FACT(s) (Environment):
Progress 9.x
OpenEdge 10.x
SYMPTOM(s):
Error (7183) running a multi-threaded Open Client application
Invalid metadata column (at position <column position>). (7183)
Using multiple AppObjects (proxy objects) in a multi-threaded environment
Temp-table is being passed to the Open Client Program as an output parameter
CAUSE:
When using multi-threaded application, each thread is creating a new AppObject and therefore a new connection to the Progress AppServer. These independent objects and particularly the underlying Open 4GL Runtime code that supports them are not thread safe.
FIX:
Use only one AppObject in a multi-threaded application.
The AppObject serializes all of the requests (assuming RunTimeProperties.setWaitIfBusy() was called) and does not allow a new "run" request while in the middle of an existing "run" request or while the state of the AppObject is streaming (i.e., receiving result set data).