gtps2m1fACF/SNA Data Communications Reference

Message Flow

The TPF/APPC support code buffers all data messages sent as a result of the TPF/APPC SEND_DATA verb. The FMH5 built as a result of an ALLOCATE request is also buffered. The messages remain in the buffer until 1 of the following occurs:

When the buffer is flushed, the TPF/APPC support code issues the TPF ROUTC macro with the extended routing control parameter list (RCPL) to forward the contents of the buffer. The buffer size is set to the maximum request unit (RU) size of the session.

All inbound messages that are to be handled by the TPF/APPC support code arrive and are processed by the base TPF SNA support. The base TPF SNA support, recognizing that the remote LU sending the message is defined (using OSTG) as an LU 6.2 resource, passes the message to LU 6.2 OPZERO program CS2A. (CS2A is in control program CSECT CCSNAE.)

The LU 6.2 OPZERO program passes control to the communications source program (COA4), which then passes control to the message editor. To use TPF/APPC support, the remote LU sending the message must be in session with an LU defined by the SIP MSGRTA statement that specifies the input message processor program (CHDD) as the message editor.

Inbound Message Queuing

As stated earlier, the TPF/APPC support package receives incoming messages from the communications source program in AM0SG format. The message may be in 381-byte, 1055-byte, or 4KB blocks. CHDD reblocks the incoming messages into 4K half-session to presentation services records (HPRs). These blocks are chained together so that individual logical records are identified and presented to presentation services. Logical records are identified by the logical record length (LL) included as the first 2 bytes of a record. The maximum logical record length supported by TPF/APPC is 32 767 (32KB). If a logical record is too large to fit in 1 4K block, it is segmented into multiple 4K pool files. These pool files are chained using the TPF forward chain field in the standard record header. The end of the chain is indicated by a value of zero in the forward chain field. Each logical record contains a pointer in its primary HPR to the next logical record.

Note:
If an FMH7 record is received, a new logical record is created for the FMH7, even if the previous logical record is incomplete.

Once the message is blocked into HPR records, CHDD either queues the message or passes it directly to the transaction program. The message is passed directly to the transaction program (that is, there is no queuing) if the following conditions are true:

When the message is queued, the HPR records are filed in short-term pools.

The conversation control block contains the file address of the first and last HPRs on the inbound queue. Figure 58 shows the HPRs as queued on the inbound queue.

Figure 58. Inbound Queue