RSC/MP Programming Manual

Application Design
Restrictions
Restrictions
Some elements of the RSC/MP library are not safe to use in a multithreaded
application:
The default options (selected by using RSC_DEFAULT_OPTIONS as an options
handle) are shared between all threads, regardless of thread registration. Any
thread using these options is affected by any change made from any other thread.
To avoid this condition, have each thread create and load its own options.
The ERROR_FILE option is global to all threads; separate threads cannot use
different error files.
Using TMF to Ensure Data Integrity
The Transaction Management Facility (TMF) helps to ensure data integrity. When
designing an application, consider these factors:
The type of data that is in the database and how to maintain the integrity of the
data.
If an error is encountered, whether the transaction should be ended (committed) or
aborted (rolled back).
Whether transactions are controlled explicitly or automatically.
Whether there are single or multiple transactions running, using waited or nowaited
I/O.
For further information about ensuring data integrity in an application, see Monitoring
Transaction Calls on page 6-6.
Waited and Nowaited I/O
RSC/MP allows waited or nowaited I/O when initiated through the RscWrite or
RscWriteRead function calls. Using waited I/O forces the application to wait until the
I/O operation completes before returning control to the application. Using nowaited I/O
allows the application to initiate the I/O and return control to the application
immediately; the application can then check periodically using the RscIoCheck function
to determine if the I/O has completed.
Nowaited I/O is slightly more complicated, requiring two API calls, while waited I/O
requires only one API call. Your choice of waited or nowaited I/O depends on the
needs of your application.
If an application requires multiple, outstanding, nowaited RscWriteRead function calls
to the same Guardian process server, the server replies to the WriteRead function calls
in the order they were received. Because the server must respond to the first call
before it responds to subsequent calls, this situation can result in poor performance of
the application.
HP NonStop Remote Server Call (RSC/MP) Programming Manual 522360-006
5- 3