Consultor Eletrônico



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).