Transfer CFT 3.2.2 Users Guide About the communication area This section describes the file exit communication area structure and describes the fields of the communication structure. Field Explanation mtype Transfer stage The possible values are: 0 (ALLOC_TYP) before the file is allocated 1 (OPEN_TYP) before the file is opened 2 (TRANS_TYP) before the start of the transfer 3 (DATA_TYP) before a record is sent or after it is received 4 (CHECK_TYP) after a synchronization point 5 (RESTART_TYP) before repositioning 6 (DTEND_TYP) before the end of the file 7 (CLOSE_TYP) before the file is closed 8 (ENDTR_TYP) before the end of the transfer 9 (ABORT_TYP) after a transfer interruption masc Mask for selecting stages This field comprises 16 bytes; each byte can take the value 0 or 1 and is associated with a stage: Byte 0 => ALLOC_TYP Byte 1 => OPEN_TYP Byte 2 => TRANS_TYP Byte 3 => DATA_TYP Byte 4 => CHECK_TYP Byte 5 => RESTART_TYP Byte 6 => DTEND_TYP Byte 7 => CLOSE_TYP Byte 8 => ENDTR_TYP Byte 9 => ABORT_TYP Bytes 10 to 15 => Reserved Byte 0 always equals 1. If you set a byte to 1, it means that you want to take control during the associated stage The value of the field mtype indicates the rank of the byte associated with the stage access File access managements under the control of: Transfer CFT if set to 0 Transfer CFT takes charge of all operations; you can, however, change certain features of the file (name, size, format, etc.) at the allocation and opening stages The user if set to 1 You are responsible for all operations performed on the file: allocation, opening, read/write, closing, de-allocation retsync The return is: 0 : synchronous The user function processes the stage and returns control to the interface. 1: asynchronous The user function returns control to the interface before processing the stage (deferred processing). The transfer is suspended and the interface waits for an end of processing message from the user. As the user does not yet have the information or tools required to use the possibility of an asynchronous return, the return will always be synchronous ret1 Return code: 0 = processing ok 9 = refusal and end of transfer Other values are defined depending on the transfer stage. For more information, refer to the Using the Communication Structure . ret2 Error message. This message appears in the Transfer CFT catalog in the DIAGP field (protocol diagnosis). us_sem Reserved us_ctx Reserved idexit EXIT identifier exname User name that must correspond to the value of the exaref parameter of the exfini function. parmexit User exit parameter version Exit version either V24 or higher language Language used by the user program: C: C language O: COBOL reserv Size of the user working area that must correspond to the value of the RESERV parameter of the CFTEXIT command etrace Reserved waittask EXIT task authorized maximum inactivity time (in minutes) It must correspond to the value of the WAITTASK parameter of the CFTEXIT command. If set to 1441, the EXIT task is permanent. part Partner local identifier idf File logical identifier nidf File network identifier idt Transfer identifier direct Transfer direction: S: Send R: Receive mode Mode R: Requester S: Server relance The possible values are: 1: Restart 2: Do not restart prot Communication protocol prof PeSIT only Profile spart Partner sending the file rpart Partner receiving the file suser User sending the file ruser User receiving the file fpassw Password associated with the file sappl Application sending the file rappl Application receiving the file userid User identifier groupid Identifier of the group to which the user belongs exec Name of the end-of-transfer procedure fdate Date associated with the file ftime Time associated with the file fdisp File availability faction Action on the file state Transfer state parm Private parameter comment Comment fname File name fksize Key size fkloc Key position flrecl Record size fblksize Block size frecfm Record format frecfmx z/OS (MVS) only Record extended format fspace File allocation size ftype File type fcode Data code forg File organization facc Access method fsyst Operating system nfname File network name nfver Version nlrecl Record size nblksize Block size nrecfm Record format nrecfmx Extended record format (MVS) nspace File allocation size ntype File type ncode Data code norg File organization nsyst Operating system ncomp Data compression fcars Number of bytes written frecs Number of records written ecars Number of bytes before compression and after decompression nrecs Number of records sent rpos Value of last synchronization point notify Notification msg User message ldata Length of data sent idtu Local transfer counter identifier cMode SSL mode Client/Server cAuthPolicy SSL auth Anonymous/Simple/Double bCipher SSL cipher suite sParm SSL command free parameters sRemoteUserDn Remote User certificate Dn sRemoteIssuerDn Remote Issuer Dn sRemoteCaId Remote CA Alias sUserCId User Certificate Alias sCertFname File including Remote certificate sProf SSL profil Id. sRemoteSerial Serial Number ExitFree Free Area between all EXITs nspart Network first sender partner name nrpart Network last receiver partner name XferCycleId CycleId of trace occurences XferObjectcId Name of the XFB transfer trace class C Language structure If you want to keep an exit that was created in a version of Transfer CFT prior to V2.4, you can continue to use the format displayed below. The exitdT communication structure between the interface and the user program is defined as follows: typedef struct { union { struct { /* Structure for the C language */ /* ... */ } exC; struct { /* Structure for the COBOL language */ /* ... */ } exnC; } exU; } exitdT, *exitdTp; If you want to create an exit using the V2.4 format exitdnT communication structure between the interface and the user program is defined below: typedef struct { union { struct { /* Structure for the C language */ /* ... */ } exC; struct { /* Structure for the COBOL language */ /* ... */ } exnC; } exU; } exitdnT, *exitdnTp; The structures for the C and COBOL languages are described in exfus.h that is delivered with Transfer CFT . COBOL language structure If the user program is written in COBOL, you must comply with C-COBOL interfacing rules. The communication structure between the interface and the user program is defined in the exfus.cop file that is delivered with the Transfer CFT product. Related Links
About the communication area This section describes the file exit communication area structure and describes the fields of the communication structure. Field Explanation mtype Transfer stage The possible values are: 0 (ALLOC_TYP) before the file is allocated 1 (OPEN_TYP) before the file is opened 2 (TRANS_TYP) before the start of the transfer 3 (DATA_TYP) before a record is sent or after it is received 4 (CHECK_TYP) after a synchronization point 5 (RESTART_TYP) before repositioning 6 (DTEND_TYP) before the end of the file 7 (CLOSE_TYP) before the file is closed 8 (ENDTR_TYP) before the end of the transfer 9 (ABORT_TYP) after a transfer interruption masc Mask for selecting stages This field comprises 16 bytes; each byte can take the value 0 or 1 and is associated with a stage: Byte 0 => ALLOC_TYP Byte 1 => OPEN_TYP Byte 2 => TRANS_TYP Byte 3 => DATA_TYP Byte 4 => CHECK_TYP Byte 5 => RESTART_TYP Byte 6 => DTEND_TYP Byte 7 => CLOSE_TYP Byte 8 => ENDTR_TYP Byte 9 => ABORT_TYP Bytes 10 to 15 => Reserved Byte 0 always equals 1. If you set a byte to 1, it means that you want to take control during the associated stage The value of the field mtype indicates the rank of the byte associated with the stage access File access managements under the control of: Transfer CFT if set to 0 Transfer CFT takes charge of all operations; you can, however, change certain features of the file (name, size, format, etc.) at the allocation and opening stages The user if set to 1 You are responsible for all operations performed on the file: allocation, opening, read/write, closing, de-allocation retsync The return is: 0 : synchronous The user function processes the stage and returns control to the interface. 1: asynchronous The user function returns control to the interface before processing the stage (deferred processing). The transfer is suspended and the interface waits for an end of processing message from the user. As the user does not yet have the information or tools required to use the possibility of an asynchronous return, the return will always be synchronous ret1 Return code: 0 = processing ok 9 = refusal and end of transfer Other values are defined depending on the transfer stage. For more information, refer to the Using the Communication Structure . ret2 Error message. This message appears in the Transfer CFT catalog in the DIAGP field (protocol diagnosis). us_sem Reserved us_ctx Reserved idexit EXIT identifier exname User name that must correspond to the value of the exaref parameter of the exfini function. parmexit User exit parameter version Exit version either V24 or higher language Language used by the user program: C: C language O: COBOL reserv Size of the user working area that must correspond to the value of the RESERV parameter of the CFTEXIT command etrace Reserved waittask EXIT task authorized maximum inactivity time (in minutes) It must correspond to the value of the WAITTASK parameter of the CFTEXIT command. If set to 1441, the EXIT task is permanent. part Partner local identifier idf File logical identifier nidf File network identifier idt Transfer identifier direct Transfer direction: S: Send R: Receive mode Mode R: Requester S: Server relance The possible values are: 1: Restart 2: Do not restart prot Communication protocol prof PeSIT only Profile spart Partner sending the file rpart Partner receiving the file suser User sending the file ruser User receiving the file fpassw Password associated with the file sappl Application sending the file rappl Application receiving the file userid User identifier groupid Identifier of the group to which the user belongs exec Name of the end-of-transfer procedure fdate Date associated with the file ftime Time associated with the file fdisp File availability faction Action on the file state Transfer state parm Private parameter comment Comment fname File name fksize Key size fkloc Key position flrecl Record size fblksize Block size frecfm Record format frecfmx z/OS (MVS) only Record extended format fspace File allocation size ftype File type fcode Data code forg File organization facc Access method fsyst Operating system nfname File network name nfver Version nlrecl Record size nblksize Block size nrecfm Record format nrecfmx Extended record format (MVS) nspace File allocation size ntype File type ncode Data code norg File organization nsyst Operating system ncomp Data compression fcars Number of bytes written frecs Number of records written ecars Number of bytes before compression and after decompression nrecs Number of records sent rpos Value of last synchronization point notify Notification msg User message ldata Length of data sent idtu Local transfer counter identifier cMode SSL mode Client/Server cAuthPolicy SSL auth Anonymous/Simple/Double bCipher SSL cipher suite sParm SSL command free parameters sRemoteUserDn Remote User certificate Dn sRemoteIssuerDn Remote Issuer Dn sRemoteCaId Remote CA Alias sUserCId User Certificate Alias sCertFname File including Remote certificate sProf SSL profil Id. sRemoteSerial Serial Number ExitFree Free Area between all EXITs nspart Network first sender partner name nrpart Network last receiver partner name XferCycleId CycleId of trace occurences XferObjectcId Name of the XFB transfer trace class C Language structure If you want to keep an exit that was created in a version of Transfer CFT prior to V2.4, you can continue to use the format displayed below. The exitdT communication structure between the interface and the user program is defined as follows: typedef struct { union { struct { /* Structure for the C language */ /* ... */ } exC; struct { /* Structure for the COBOL language */ /* ... */ } exnC; } exU; } exitdT, *exitdTp; If you want to create an exit using the V2.4 format exitdnT communication structure between the interface and the user program is defined below: typedef struct { union { struct { /* Structure for the C language */ /* ... */ } exC; struct { /* Structure for the COBOL language */ /* ... */ } exnC; } exU; } exitdnT, *exitdnTp; The structures for the C and COBOL languages are described in exfus.h that is delivered with Transfer CFT . COBOL language structure If the user program is written in COBOL, you must comply with C-COBOL interfacing rules. The communication structure between the interface and the user program is defined in the exfus.cop file that is delivered with the Transfer CFT product.