The OSI TP functions are divided into so called functional units (FU). Depending on the requirements placed on communication with a partner application, individual functions can be selected for the communication. openUTM supports the following functional units:
Dialogue
The functional unit Dialogue is required whenever you communicate via the OSI TP protocol. It contains functions for the establishment and disconnection of dialogs and as well as for sending error messages.
You use the KDCS call APRO to establish dialogs. In the APRO call you select the OSI TP function combinations which are used for the dialog. Dialogs are normally terminated with a PEND FI call. Dialogs are abnormally terminated by the PEND ER or CTRL AB call. MPUT EM triggers the protocol element TP-U-ERROR, CTRL AB or PEND ER the protocol element TP-ABORT.
Polarized Control
You use the functional unit Polarized Control to manage the send authorization for a dialog. Each dialog is assigned a send authorization which only one of the communication partners can possess at any one time.
In UTM services, send authorization for a dialog changes at the end of the processing step when a message is sent to the dialog partner: openUTM creates the protocol element TP-GRANT-CONTROL implicitly.
Handshake
The handshake functions can be used by the communication partners to coordinate the processing of a dialog at application level. This function makes it possible to request processing confirmations and send positive or negative confirmations. No inter-application transaction management is linked to this function.
You can create a handshake request by calling MPUT HM. Handshake requests from the partner application are displayed by calling MGET. When the KDCS interface is used the messages are not sent until the send authorization is transferred. For this reason openUTM only creates the OSI TP protocol element TP-HANDSHAKE-AND-GRANT-CONTROL, and not TP-HANDSHAKE.
UTM implicitly sends a positive confirmation of a handshake request before the next message to the partner from which the request has been received. However, the confirmation is sent at the next end of transaction at the latest.
You use MPUT EM to send a negative confirmation of a handshake request.
The requesting service can read the result of a handshake request with an MGET call.
Commit and Chained Transactions
The Commit functional unit provides the functions necessary to create distributed transactions. These are, in particular, functions to commit or roll back distributed transactions. If you use these functions you must always select the functional unit Chained Transactions. If processing is to be performed with global transaction management, then only distributed transactions are processed for this dialog.
The MPUT, CTRL and PEND/PGWT calls are used in connection with these function groups.
The operation modifiers of the PEND/PGWT calls, in combination with the target of the MPUT messages created during the last processing step, determine whether a TP-PREPARE is sent and, if this is the case, whether it is sent with DATA-PERMITTED=TRUE or FALSE. However, you can also use the CTRL PR call to create a TP-PREPARE.
The OSI TP protocol elements TP-DEFER(GRANT-CONTROL) and TP-DEFER(END-DIALOGUE) are triggered in the same way. The latter can also be created on its own using the CTRL PE call.
You use the PEND call with the appropriate operation modifiers or the PGWT CM call to request an end of transaction. openUTM negotiates the protocol for the processing of the two-phase commit without the participation of the application program unit. A distributed transaction can be rolled back using PEND RS or PGWT RB. PGWT RB must be used if the previous transaction was terminated with PGWT CM.
openUTM handles the protocol for rolling back the distributed transaction without the participation of the application program unit.
Following an MGET call, heuristic decisions by communication partners are shown in the transaction status.
Recovery
The Recovery functional unit provides the services which are necessary for resychronization of the interrupted transaction after a communication failure. This functional unit ensures global data consistency in such cases. However, OSI TP does not permit the continuation of an interrupted connection (dialog restart).
UTM uses the services of the Recovery functional unit internally. They cannot be directly accessed by the application program.