Previous Topic: SNA TerminologyNext Topic: Error Handling


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.

#TREQ Command

You use the #TREQ command to:

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:

Establishing Sessions

Sessions in the CA IDMS/DC environment can be established in three ways:

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 Guide.

UOICB     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
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
UIORSV2  DS  XL27                  RESERVED
UIODWORK DS  XL1                   WORK BYTE RESERVED FOR CA IDMS/DC
UIOCBL  EQU *-UIOCB     LENGTH OF UIOCB