7.7 Understanding Conversational Communication Events

The Oracle Tuxedo system recognizes five events in conversational communication. All five events can be posted for tprecv(); three can be posted for tpsend().

The following table lists the events, the functions for which they are returned, and a detailed description of each.

Table 7-3 Conversational Communication Events

Event Received By Description
TPEV_SENDONLY tprecv() Control of the connection has been passed; this process can now call tpsend().
TPEV_DISCONIMM tpsend (), tprecv(), tpreturn () The connection has been torn down and no further communication is possible. The tpdiscon()function posts this event in the originator of the connection, and sends it to all open connections when tpreturn() is called, as long as connections to subordinate services remain open. Connections are closed in a disorderly fashion. If a transaction exists, it is aborted.
TPEV_SVCERR tpsend () Received by the originator of the connection, usually indicating that the subordinate program issued a tpreturn() without having control of the connection.
tprecv() Received by the originator of the connection, indicating that the subordinate program issued a tpreturn() with TPSUCCESS or TPFAIL and a valid data buffer, but an error occurred that prevented the call from completing.
TPEV_SVCFAIL tpsend () Received by the originator of the connection, indicating that the subordinate program issued a tpreturn() without having control of the connection, and tpreturn() was called with TPFAIL or TPEXIT and no data.
tprecv() Received by the originator of the connection, indicating that the subordinate service finished unsuccessfully (tpreturn() was called with TPFAIL or TPEXIT).
TPEV_SVCSUCC tprecv() Received by the originator of the connection, indicating that the subordinate service finished successfully; that is, it called tpreturn() with TPSUCCESS.