Kbase 17356: Progress ESQL libraries are not thread safe.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  4/27/1999 |
|
Progress ESQL libraries are not thread safe.
Progress ESQL libraries have never been thread safe, in either small
or large client configurations.
The issue is that when you are calling functions from different
threads, they are all called within the same common context.
Imagine a call that opens a record set, and processes it. This call
might be dependent on static data or global data. When two calls are
made 'simultaneously' to this function, data might be compromised due
to the fact that two separate execution pointers are running through
the same function, updating the same variables.
Another problem might lie in the database connection. When two
threads simultaneously call a select statement, these calls might be
sent out to the database at the same time. It is possible that the
libraries are simply not able to deal with this kind of situation.
This can lead to data corruption, incorrect stattic data, and a
compromised data state. Obviously not a desired situation.
In order to work around this problem with threads, use synchronization
objects like mutexes or semaphores. They will allow you to have
threads wait in line for access to the ESQL functions.
Progress Software Technical Support Note # 17356