ASA Programming Guide
Embedded SQL Programming
The SQL Communication Area (SQLCA)
Using multiple SQLCAs
You can use the multiple SQLCA support in any of the supported embedded SQL environments, but it is only required in reentrant code.
The following list details the environments where multiple SQLCAs must be used:
Multi-threaded applications If more than one thread uses the same SQLCA, a context option can cause more than one thread to be using the SQLCA at the same time. Each thread must have its own SQLCA. This can also happen when you have a DLL that uses embedded SQL and is called by more than one thread in your application.
Dynamic link libraries and shared libraries A DLL has only one data segment. While the database server is processing a request from one application, it may yield to another application that makes a request to the database server. If your DLL uses the global SQLCA, both applications are using it at the same time. Each Windows application must have its own SQLCA.
A DLL with one data segment A DLL can be created with only one data segment or one data segment for each application. If your DLL has only one data segment, you cannot use the global SQLCA for the same reason that a DLL cannot use the global SQLCA. Each application must have its own SQLCA.