gtps2m3aACF/SNA Data Communications Reference

Recoverable and Non-Recoverable Messages

Recoverable input messages may be defined as saved messages. The sender of a message saves the message until a response is received. This practice enables the sender to retransmit the message should a malfunction occur. Non-recoverable messages are not saved; a malfunction results in the loss of the message.

TPF requests definite response when it sends a message defined as recoverable; "exception response" when it sends a message defined as non-recoverable. TPF saves recoverable messages until a positive response is received.

Single-Segment Messages

Single-segment messages are messages that take only one I/O transmission. TPF-initiated single-segment messages are sent to all logical unit types except for: 1) messages sent to 3270 SDLC terminals attached to a 3271 control unit, and 2) batch logical units. In the following single-segment illustration, arrows indicate the direction of data transmission.

LU             TPF
 
 
Input ------ 1 ------>
 
    <------- 1 ------      (Recoverable reply)
Response
      ----+RSP(1)---->
 
 
Input
     ------- 2 ------>
     <------ 2 ------      (Non-Recoverable Reply)
      (-RSP or none)

Chained and Segmented Messages

Chained messages are messages connected via forward and/or backward pointers. Functional associations may or may not exist between chained messages. For example, output messages to the same device are often chained together pending delivery. Here, the only association is the device to which the messages are sent. Most often, however, chaining is used to mean segmenting. A segmented message is one that exceeds the buffer-size limitation of a particular link. Thus, the message is broken into segments. Segments may be viewed as chained messages that have a functional association. Each chained message is identified with either a first-in-chain, middle-in-chain, or last-in-chain indicator. TPF assembles a chained and/or segmented message before presenting it to an application. The example below illustrates a segmented (chained) message transmission:

     LU                TPF           Comments
 
Input Message
 
Segment 1  ---------->              First-in-chain
 
Segment 2  ---------->              Middle-in-chain
 
Segment 3  ---------->              Last-in-chain
 
           <----------   Reply

TPF output messages are:

An SNA technique called "session pacing" controls the flow of messages throughout a network by limiting the introduction of new traffic to the rate at which it can be accepted. TPF supports both adaptive pacing and non-adaptive (fixed) pacing. Pacing window size is passed to TPF by VTAM in CDCINIT and SESINIT. TPF performs adaptive pacing on all PU 2.1 sessions and fixed pacing on all PU 5 sessions. AX.25/NEF sessions, however, are not paced.

TPF sends a number of message segments and waits for a pacing response from the NCP. The pacing response from the NCP resets the window size which allows TPF to send more segments. TPF responds to NCP's pacing requests by sending out pacing responses. These pacing responses allow the NCP to send TPF more segments.

LU                    TPF
 
 
      <-------------  Segment 1
 
      <-------------  Segment 2       (Request pacing response)
 
Cluster controller
pacing response
      ------------->
 
      <------------- Segment 3        (Last-in-chain)
 
LU sends
response
      ----+RSP----->

In this example, the output message is recoverable. Thus, a definite response (+RSP) is requested for the last segment.

TPF processing for a chained output message, received in error, is as follows:

LU                    TPF            Comments
 
 
   <----------------- Segment 1
   <----------------- Segment 2      (Request pacing response)
 
Pacing Response
   ----------------->
   <----------------- Segment 3
   <----------------- Segment 4
 
 
LU sends negative
response
   ------ -RSP ----->                (Sequence number error)
   <----------------- Clear
                      Command
   <----------------- STSN           (TPF resynchronizes sequence
                      Command         numbers)
 
 
LU responds with
   ------ +RSP ----->                (Text of the response contains
                                      the sequence number of the last
                                      successfully received message)
 
   <---------------- SDT command
   <---------------- Segment 1       (Message is resent beginning
   <---------------- Segment 2        with the first segment)
 
Pacing response
   ---------------->
   <---------------- Segment 3
   <---------------- Segment 4
 
   ------ +RSP ---->                 (Last message was successfully
                                      received)

Here, a segment is received with an invalid SNA sequence number. The logical unit returns a negative response. TPF then initiates a message recovery/resynchronization dialogue. This determines the last completed message. TPF then transmits the message a second time. For a non-recoverable message received in error, TPF resynchronizes the sequence numbers but does not resend the message.

Large output messages to logical units attached to 3271 control units require special processing. The 3271 cannot process chained or segmented messages. Processing of single block messages is unchanged. After the application issues the ROUTC macro, the output message transmission (OMT) program reblocks the message and issues a SOUTC macro. See TPF General Macros for more information about the ROUTC macro. See TPF System Macros for more information about the SOUTC macro.