The IWAYEVT0 sample program demonstrates event handling by sending a record to the iWay Transaction Adapter for CICS using CICS sockets. No response is returned and each data record that is mapped by the COPYBOOKS must be preceded by a 4 byte binary length.
You must configure the adapter with an event to receive this data. Using iWay Explorer, select the Is Length Prefix checkbox and Request from the Synchronization Type drop-down list. Specify iWAYEVT0.CBL in the Preparser FD field. The host and port must match the value set used in the sample program.
The EZASOKET interface is documented in the Z/OS communications server IP sockets guide.
Note: For other platforms, use the socket interface appropriate for that platform.
On Windows, the IWAYEVT0 sample program is located in:
C:\Program Files\iWay7\etc\samples\cics\iwayevt0

The following supporting files are provided:
The text version of the source code file is included below for your review.
CBL TRUNC(BIN)
ID DIVISION.
PROGRAM-ID. IWAYEVT0.
***************************************************************
* IWAYEVT0 - THIS SAMPLE PROGRAM DEMONSTRATES SENDING A *
* RECORD TO THE IWAY CICS ADAPTER USING CICS SOCKETS. NO *
* RESPONSE IS RETURNED. DATA RECORDS MAPPED BY COPYBOOKS *
* MUST EACH BE PRECEDED BY A 4 BYTE BINARY LENGTH. *
* *
* THE CICS ADAPTER MUST BE CONFIGURED WITH AN EVENT TO *
* RECEIVE THIS DATA. SELECT "IS LENGTH PREFIX", SYNCHRON- *
* IZATION TYPE "REQUEST", AND USE IWAYEVT0.CBL AS THE *
* PREPARSER FD. HOST AND PORT MUST MATCH THE VALUES SET *
* BELOW. *
* *
* THE EZASOKET INTERFACE IS DOCUMENTED IN THE Z/OS *
* COMMUNICATIONS SERVER IP CICS SOCKETS GUIDE. *
* *
* USES: IWAYEVT0_IN.CBL (INPUT RECORD) *
* *
*************************************************************** ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 SOCKET-GROUP.
05 SOC-FUNCTION PIC X(16) VALUE SPACES.
05 ERRNO PIC 9(8) BINARY VALUE ZEROES.
05 RETCODE PIC S9(8) BINARY VALUE ZEROES.
05 AF PIC 9(8) BINARY VALUE 2.
05 SOCTYPE PIC 9(8) BINARY VALUE 1.
05 PROTO PIC 9(8) BINARY VALUE 0.
05 NAMELEN PIC 9(8) BINARY.
05 HOSTNAME PIC X(255).
05 HOSTENT POINTER.
05 NAME.
10 FAMILY PIC 9(4) BINARY VALUE 2.
10 PORT PIC 9(4) BINARY.
10 IP-ADDRESS PIC 9(8) BINARY.
10 IP-ADDRESS-ALPHA REDEFINES IP-ADDRESS PIC X(4).
10 RESERVED PIC X(8) VALUE LOW-VALUES.
05 FLAGS PIC 9(8) BINARY VALUE 0.
05 SOCKET PIC 9(4) BINARY.
05 NBYTE PIC 9(8) BINARY.
05 CMD PIC 9(8) BINARY.
05 REQARG PIC 9(8) BINARY.
01 WORKAREA.
05 LLEN PIC 9(8) BINARY VALUE 4.
05 ERRMSG PIC X(41)
VALUE 'ERROR ENCOUNTERED DURING '.
05 TMSG PIC X(44)
VALUE 'EVENTCBL: RECORD TRANSMISSION WAS SUCCESSFUL'. ***************************************************************
* SAMPLE INBOUND DATA RECORD WITH VARIOUS COBOL TYPES. *
***************************************************************
01 INBOUND-RECORD.
05 ALPHA01 PIC X(8)
VALUE 'ABCDEFGH'.
05 INT01 PIC S9(4) BINARY VALUE 25.
05 PACK01 PIC S9(15) PACKED-DECIMAL VALUE 50.
05 ZONE01 PIC 9(4) VALUE 75.
LINKAGE SECTION.
01 HOSTENT-STRUCT.
05 HOSTNAME-PTR POINTER.
05 HOSTALIASL-PTR POINTER.
05 HOSTFAMILY PIC S9(8) BINARY.
05 HOSTADR-LEN PIC S9(8) BINARY.
05 HOSTADRL-PTR POINTER.
01 HOST-ENTRY-PTR POINTER.
01 HOST-ENTRY PIC 9(8) BINARY.
PROCEDURE DIVISION.
MAINLINE.
***************************************************************
* CHANGE HOSTNAME AND PORT TO SITE SPECIFIC LOCATION OF THE *
* CICS ADAPTER. *
***************************************************************
MOVE 'YOUR.DNS.NAME' TO HOSTNAME
MOVE 4772 TO PORT
PERFORM GETSOCK
PERFORM GETHOSTBYNAME
PERFORM SETBLOCK
PERFORM CONNECTTOHOST
PERFORM SENDDATA
PERFORM CLOSESOCK
EXEC CICS SEND TEXT FROM(TMSG)
LENGTH(LENGTH OF TMSG)
END-EXEC
EXEC CICS RETURN END-EXEC
GOBACK.
GETSOCK.
MOVE 'SOCKET ' TO SOC-FUNCTION
CALL 'EZASOKET' USING SOC-FUNCTION,
AF,
SOCTYPE,
PROTO,
ERRNO,
RETCODE
MOVE RETCODE TO SOCKET
IF RETCODE < 0
PERFORM WRITERR-EXIT
END-IF.
GETHOSTBYNAME.
MOVE 'GETHOSTBYNAME ' TO SOC-FUNCTION
MOVE LENGTH OF HOSTNAME TO NAMELEN
CALL 'EZASOKET' USING SOC-FUNCTION NAMELEN HOSTNAME
HOSTENT RETCODE
IF RETCODE EQUAL ZERO
SET ADDRESS OF HOSTENT-STRUCT TO HOSTENT
SET ADDRESS OF HOST-ENTRY-PTR TO HOSTADRL-PTR
SET ADDRESS OF HOST-ENTRY TO HOST-ENTRY-PTR
ELSE
PERFORM WRITERR-EXIT
END-IF.
SETBLOCK.
MOVE 'FCNTL ' TO SOC-FUNCTION
MOVE 4 TO CMD
MOVE 0 TO REQARG
CALL 'EZASOKET' USING SOC-FUNCTION, SOCKET, CMD, REQARG,
ERRNO, RETCODE.
CONNECTTOHOST.
MOVE HOST-ENTRY TO IP-ADDRESS
MOVE 'CONNECT ' TO SOC-FUNCTION
CALL 'EZASOKET' USING SOC-FUNCTION,
SOCKET,
NAME,
ERRNO,
RETCODE
IF RETCODE = 0
CONTINUE
ELSE
PERFORM WRITERR-EXIT
END-IF.
SENDDATA.
***************************************************************
* PRECEDE THE RECORD WITH 4 BYTE BINARY RECORD LENGTH *
***************************************************************
MOVE 'SEND ' TO SOC-FUNCTION
MOVE LENGTH OF INBOUND-RECORD TO NBYTE
MOVE 4 TO LLEN
MOVE 0 TO RETCODE
CALL 'EZASOKET' USING SOC-FUNCTION,
SOCKET,
FLAGS,
LLEN,
NBYTE,
ERRNO,
RETCODE
IF RETCODE = -1
PERFORM WRITERR-EXIT
END-IF
***************************************************************
* SEND THE ACTUAL RECORD *
***************************************************************
CALL 'EZASOKET' USING SOC-FUNCTION,
SOCKET,
FLAGS,
NBYTE,
INBOUND-RECORD,
BY REFERENCE ERRNO,
RETCODE
IF RETCODE = -1
PERFORM WRITERR-EXIT
END-IF
.
CLOSESOCK.
MOVE ZEROES TO RETCODE ERRNO
MOVE 'CLOSE ' TO SOC-FUNCTION
CALL 'EZASOKET' USING SOC-FUNCTION,
SOCKET,
ERRNO,
RETCODE
IF RETCODE < 0
PERFORM WRITERR-EXIT
END-IF.
WRITERR-EXIT.
MOVE SOC-FUNCTION TO ERRMSG(26:15)
EXEC CICS SEND TEXT FROM(ERRMSG)
LENGTH(LENGTH OF ERRMSG)
END-EXEC
EXEC CICS RETURN END-EXEC.