Open System Services Programmer's Guide
SERVERCLASS_DIALOG Jacket Routines
The Pathsend SERVERCLASS_DIALOG jacket routines are used to:
• Establish a dialog with a server instance in a Pathway server class
• Send and receive messages within the dialog
• Abort or end the dialog
The Context-Sensitive Pathway requester can be written using the thread-aware
SERVERCLASS_DIALOG jacket routines to communicate with a server instance in the Pathway
server class. The Pathway requester initiates the dialog using
PUT_SERVERCLASS_DIALOG_BEGIN_() routine and sends the first message of the dialog. This
thread-aware jacket routine returns the dialog ID that is used in subsequent operations to
communicate with the Pathway server. The Pathway requester can invoke multiple sends using
PUT_SERVERCLASS_DIALOG_SEND_() within the dialog to send data to the server for processing.
If the requester encounters an error while sending the data, the requester can abort the dialog
using the PUT_SERVERCLASS_DIALOG_ABORT_() routine.
The Pathway requester can use multiple PUT_SERVERCLASS_DIALOG_SEND_() calls to have all
requests serviced by the same server and all operations performed in a single context.
If the requester encounters Pathsend errors during the server class operation, the requester can call
PUT_SERVERCLASS_SEND_INFO_() to obtain information about the Pathsend error and file-system
error.
Either the requester or the server can abort the dialog, but only the server can end it. The server
ends the dialog by returning file-system error 0 (FEOK). The requester then calls
PUT_SERVERCLASS_DIALOG_END_() to clean up resources after the server has ended the
dialog. To abort the dialog, the requester calls PUT_SERVERCLASS_DIALOG_ABORT_().
The SERVERCLASS_DIALOG_ jacket routines are included in the PUT Model library, which can be
bound to an application requiring the routines:
c89 -o program program.o -lzputdll
TMF Transaction Jacket Routines
The following Transaction Management Facility (TMF) transaction jacket routines invoke the TMF
calls and manage the multiple concurrent transactions rooted in a process:
PUT_ABORTTRANSACTION()
PUT_BEGINTRANSACTION()
PUT_ENDTRANSACTION()
PUT_RESUMETRANSACTION()
The syntax and semantics of these function calls are the same as those of the similarly named TMF
calls.
When using the TMF transaction jacket routines:
• The transaction_tag parameter of the PUT_BEGINTRANSACTION() function is required.
• Each thread can have at most one current transaction. The system RESUMETRANSACTION
procedure is automatically called during thread dispatch to maintain the correct transaction
context.
• Each transaction is initially associated with only the thread that created it by calling the
PUT_BEGINTRANSACTION() function.
• Another thread can be associated with a specific transaction by calling the
PUT_RESUMETRANSACTION() function and specifying the transaction_tag value returned
by the initial PUT_BEGINTRANSACTION() function call.
• If a thread is created, it does not inherit its parent's transaction; the created thread's transaction
context is nil.
Jacket Routines (Nonblocking Versions of SERVERCLASS_ and TMF System Calls) 419