Program Communications in the SNA Environment

Your program converses with other SNA network resources through #TREQ statements, in conjunction with the user I/O control block (UIOCB). CA IDMS/DC supports only basic-mode access to other SNA devices; line-mode and mapping-mode are not currently supported.
idmscu19
Your program converses with other SNA network resources through #TREQ statements, in conjunction with the user I/O control block (UIOCB). CA IDMS/DC supports only basic-mode access to other SNA devices; line-mode and mapping-mode are not currently supported.
#TREQ Command
You use the
#TREQ command
to:
  • Establish LU-LU sessions
  • Initiate conversations between logical units
  • Exchange data and error information between logical units
  • Terminate conversations and sessions
Syntax and syntax rules for the #TREQ statement are discussed in #TREQ.
User Control Block
The user I/O control block (UIOCB) contains LU-LU session information:
  • Session attributes
  • Conversation attributes
  • Information about the data being sent and received
  • Error information
Establishing Sessions
Sessions in the CA IDMS/DC environment can be established in three ways:
  • CA IDMS/DC can automatically establish the session at system startup.
  • A remote LU can establish the session.
  • Your program can establish a session using the #TREQ ALLOC statement, as described in the Allocating a Session section.
When you issue a #TREQ ALLOC statement to allocate a conversation, before CA IDMS/DC can select a session for you, you must establish the UIOCB and initialize UIOCB fields with session attributes, such as which LU you want to talk to.
You also use the UIOCB to establish conversation attributes, for example, the maximum sync level that you will need (LU6.2 only).
After the conversation has begun, you use the UIOCB to obtain information about the conversation. For example, session and conversation information in the UIOCB is updated following #TREQ ALLOC or #TREQ UIOCB statements, and return codes, sense codes, data-information fields, and VTAM-information fields are updated following read requests.
Sample User Control Block
The following figure illustrates a sample user I/O control block (UIOCB).
For the layout of the UIOCB, refer to the DSECT Reference section.
UIOCB     DS     OF ************************************************************************ **                                                                    ** **     UIOCB      USER I/O COMMUNICATIONS BLOCK                       ** **                                                                    ** **                 ## - LU6.2 ONLY                                    ** **                 $$ - FOR FUTURE USE                                ** ************************************************************************   UIOLTEA   DS   A                    ADDR OF LOGICAL TERMINAL ELEMENT                                     (CONVERSATION IDENTIFIER)   ****  SESSION ATTRIBUTES ********* UIOBIND  DS   A                    ADDRESS OF BIND PARAMETERS UIOLLU   DS   CL8                  LOCAL LU NAME (OWN_LU_NAME) UIORLU   DS   CL8                  REMOTE LU NAME (PARTNER_LU_NAME) UIOMODE  DS   CL8                  MODEENT NAME (MODE_NAME) UIOSYNC  DS   X             ##     SYNC_LEVEL UIOSYNCN EQU  X'00'                SYNC_LEVEL = NONE UIOSYNCC EQU  X'01'                SYNC_LEVEL = CONFIRM UIOSYNCS EQU  X'02'                SYNC_LEVEL = SYNCPOINT UIOCONV  DS   X             ##     CONVERSATION TYPE UIOCONVB EQU  X'00'                CONVERSATION TYPE = BASIC UIOCONVM EQU  X'01'                CONVERSATION TYPE = MAPPED UIOMAPN  DS   CL24          $$     LU6.2 MAP NAME UIOTASK  DS   CL8                  REMOTE TASK TO BE ALLOCATED (TPN) UIOUSER  DS   CL8           ##     USER ID TO BE PASSED WITH ALLOCATE UIOPASS  DS   CL8           ##     PASSWORD TO BE SENT WITH ALLOCATE UIOPROFL DS   CL8           ##     PROFILE ID TO BE SENT W/ ALLOCATE UIOINRU  DS   H                    MAX RU SIZE ON INPUT UIOUTRU  DS   H                    MAX RU SIZE ON OUTPUT UIORSV   DS   4H                   RESERVED **** WHAT RECEIVED *************** UIODAT   #FLAG X'80'               DATA UIOERR   #FLAG X'40'        ##     ERROR  (SEND_ERROR RECEIVED) UIOLST   #FLAG X'20'               DEALLOCATE   (SEND LAST RECEIVED) UIOCD    #FLAG X'10'               CHANGE DIRECTION  (TIME TO SEND) UIOCFM   #FLAG X'08'               CONFIRM  (CONFIRMATION REQUESTED) UIOSIG   #FLAG X'04'               SIGNAL  (REQUEST_TO_SEND RECEIVED) UIOSPT   #FLAG X'02'        $$     SYNCPOINT (TAKE_SYNCPOINT) UIOROL   #FLAG X'01'        $$     SYNCPOINT ROLLBACK REQUIRED UIOWREC  DS    X                   WHAT_RECEIVED ************************************************************************ UIOFMH   #FLAG X'80'               DATA CONTAINS FMH UIODTC   #FLAG X'40'               DATA_COMPLETE (OFF = INCOMPLETE) UIODATF  DS    X                   DATA TYPE FLAG ********* ERROR INFORMATION FIELDS ************************************* UIOURA   DS    0X UIOUCOM  DS    XL1                 CA IDMS/DC ERROR CODE UIOCOMPG EQU   0                   GOOD COMPLETION - I/O SUCCESSFUL UIOCOMPA EQU   8                   TERMINAL OPERATOR HIT ATTN OR BREAK DURING OUTPUT UIOCOMPL EQU   12                  LOGICAL ERRORS - INVALID COMMAND SEQUENCE UIOCOMPP EQU   16                  PERMANENT I/O ERROR COMMAND SEQUENCE UIOCOMPD EQU   20                  SESSION WAS DISCONNECTED OR INTERVENTION REQ. UIOCOMPO EQU   24                  SESSION IS OUT-OF-SERVICE UIOCOMPC EQU   28                  SESSION IS CLOSED (OPEN DIDN'T WORK) UIOCOMPI EQU   32                  INVALID TRB PARAMETER LIST UIOUCM2  DS    XL1                 SECONDARY DC ERR-CODE UIOLGNR  EQU   X'01'               ERR - LOGON ROUTINE UIOPROF  EQU   X'02'               ERR - PRIOR OPEN FAILURE UIORTEX  EQU   X'03'               ERR - RETRIES EXHAUSTED (MAX ERRS EXCEEDED) UIONEGR  EQU   X'04'               ERR - NEGATIVE RESP TO SEND DATA UIOSRPF  EQU   X'05'               ERR - SEND RESPONSE FAILED UIONUIO  EQU   X'06'               ERR - NO UIOCB ADDRESS AVAILABLE UIOUNKI  EQU   X'07'               ERR - UNKNOWN INPUT RECEIVED UIOBBFL  EQU   X'08'               ERR - BRACKET BID FAILURE UIOWQUR  EQU   X'09'               ERR - WAITING ON QUIESCE RELEASE UIOSTSN  EQU   X'0A'               ERR - MSG RESYNC FAILURE (ON SEND CHAIN) UIOSTSR  EQU   X'0B'               ERR - MSG RESYNC FAILURE REPETITIVELY UIOPLEC  EQU   X'0C'               ERR - PIPELINE EXCEEDED MAX EXCP RESPONSES UIOPLRD  EQU   X'0D'               ERR - PIPELINE READ RQST IS NOT SUPPORTED UIOUCD   EQU   X'0E'               ERR - UNIDENTIFIED NORMAL FLOW CMD RECEIVED UIORCAF  EQU   X'0F'               ERR - RESET TO CONT-ANY FAILED UIOLUSR  EQU   X'10'               ERR - UNKNOWN LUSTAT RECEIVED UIOCNNA  EQU   X'11'               ERR - CHAINED-INPUT NOT ALLOWED ON THIS PTE TYPE UIOUNXC  EQU   X'12'               ERR - UNEXPECTED COMMAND RECEIVED UIOCNCR  EQU   X'13'               ERR - CANCEL COMMAND RECEIVED UIOCHRC  EQU   X'14'               ERR - CHASE COMMAND RECEIVED UIORCVF  EQU   X'15'               ERR - RECEIVE  FAILED UIOFMHG  EQU   X'16'               ERR - FMH DEFAULT IN SYSGEN CAN'T BE USED UIOVMMT  EQU   X'17'               ERR - GENCB/MODCB FAILURE UIOSNDF  EQU   X'18'               ERR - SEND CMD FAILURE UIOWBMS  EQU   X'19'               ERR - WRITE BUFFER MISSING UIOFMHS  EQU   X'1A'               ERR - FMH OR FMH-OPTION SPECIFICATION ERROR UIOQECR  EQU   X'1B'               ERR - QEC RECV'D, USER CONTROLS OUTB CHAINING UIOPUNK  EQU   X'1C'               ERR - PTE TYPE UNKNOWN UIOLTNA  EQU   X'1D'               ERR - LAST OPTION DISALLOWED UIOPMXW  EQU   X'1E'               ERR - PIPELINE MAX NBR WRITES (1) EXCEEDED UIOOPNS  EQU   X'1F'               ERR - OPT/RQST NOT SUPPTD THIS PTE OR LU TYPE UIOWSZX  EQU   X'20'               ERR - WRT SIZ GTR PRUSZ, & CHAIN NOT ALLOWED UIOSLUF  EQU   X'21'               ERR - SEND LUS (IN LIEU NEG RESP) FAILED UIORBKF  EQU   X'22'               ERR - RESET BRACKET (SEND EB) FAILURE UIORQRA  EQU   X'23'               ERR - RQR ATTEMPTED UIORBNS  EQU   X'24'               ERR - READ BUFFER NOT SUPPORTED UIOUCNR  EQU   X'25'               ERR - OUTB USER CHANGING - NEG RESPONSE UIONEGC  EQU   X'26'               ERR - NEG RESP TO SEND COMMAND UIONRNR  EQU   X'27'               ERR - NEG RESP, SEND CHAIN, NO RECOVERY POSS UIOLURS  EQU   X'28'               ERR - LU RQST'D SHUTDOWN UIORCCE  EQU   X'29'               ERR - REQUEST CANCELLED, CONVERSTAION ENDED UIOSIGR  EQU   X'2A'               ERR - SIGNAL RECEIVED NOT RECOGNIZED UIOIGDS  EQU   X'2B'               ERR - INVALID LU6.2 GDS ID UIOSCRM  EQU   X'2C'               ERR - SEND CANCELLED, WE ARE IN RECV-MODE UIOZLMR  EQU   X'2D'               ERR - ZERO-LNG MSG RECEIVED UIONMRT  EQU   X'2E'               ERR - INVALID/MISSING REQUEST TYPE UIOALFR  EQU   X'2F'               ERR - ALLOCATE FAILED, SESSION BUSY, RETRY OK UIOALFN  EQU   X'30'               ERR - ALLOCATE FAILED, NO RETRY UIOALFS  EQU   X'31'               ERR - ALLOCATE FAILED, SYNCLEVEL NOT SUPPORTED UIOUNBD  EQU   X'32'               ERR - UNBIND RECEIVED UIOSNDE  EQU   X'33'               ERR - LU6.2 SEND ERROR RECEIVED UIOABND  EQU   X'34'               ERR - LU6.2 SEND ABEND RECEIVED UIOXLIM  EQU   X'35'               ERR - LIMIT ON INPUT EXCEEDED, READ FAILED UIOEBR   EQU   X'36'               END BRACKET RECEIVED - DEALLOCATE NORMAL UIOEM01  EQU   X'37'               RHDCD0FI -  ERROR ON 3270 READ               UIOEM02  EQU   X'38'               RHDCD0FI -  3270 DATA DOESN'T START WITH '*' UIOEM03  EQU   X'39'               RHDCD0FI -  3270 DATA HAS BAD SEQUENCE NUMBER UIOEM04  EQU   X'3A'               RHDCD0FI -  3270 DATA TOO SHORT              UIOEM05  EQU   X'3B'               RHDCD0FI -  BAD CHARACTER IN 3270 DATA       UIOEM06  EQU   X'3C'               RHDCD0FI -  3270 DATA INVALID LENGTH         UIOEM07  EQU   X'3D'               RHDCD0FI -  3270 DATA DOESN'T END WITH '*'                  SPACE        UIOURTC  DS    XLI                 VTAM RTNCD UIOUFDB  DS    XLI                 VTAM FDBK2 UIOUSEI  DS    XLI                 VTAM SENSE INFO UIOUSMI  DS    XLI                 VTAM SENSE MODIFIER UIOUUSI  DS    XL2                 VTAM USER SENSE INFO UIORSV1  DS    XL4                 RESERVED UIOUSIG  DS    XL4                 SIGNAL DATA - EXPD-FLOW-CMD UIOURAL EQU    *-UIOURA            LENGTH OF ERROR INFO FIELDS UIOTIMS  DS    CL8                 UNIQUE IDENTIFIER FOR BULK LTES UIORSV2  DS    XL27                RESERVED UIODWORK DS    XL1                 WORK BYTE RESERVED FOR CA IDMS/DC          DS    0F                  ENSURE BOUNDARY - RFH          UIOCDEFA DS    A                   Address of DNS CDEF data.      UIOSNONA DS    A                   Address of DNS signon data.   UIOCBL  EQU    *-UIOCB             LENGTH OF UIOCB