Interval Control Program and Commands
EXEC CICS START TRANSID('TXN2')
A CICS PROGRAM CAN START ANOTHER TRANSACTION IN THE SAME CICS REGION USING EXEC CICS START BOTH THE ORIGINAL TRANSACTION AND STARTED TRANSACTIONS CAN EXECUTE AT THE SAME TIME THE SECOND TRANSACTION CAN BE STARTED IMMEDIATELY, AFTER A PERIOD OF TIME, OR AT A SET TIME OF DAY A PROGRAM CAN ALSO START A TRANSACTION IN ANOTHER CONNECTEDC REGION- ON THE SAME OR A DIFFERENT SYSTEM. CICS programs can start another CICS transaction, which will run at the same time. This transaction could be within the same CICS region, or in another connected CICS region.
EXEC CICS RETRIEVE SET(INPTR) LENGTH(INPARM)
SET COULD BE USED IN PLACE OF TINTO PARAMETER CICS OBTAINS A DATA AREA FOR THE COMMAREA AND PASSES A POINTER INTO THE DATA AREA SPECIFIED IN THE SET PARAMETER. tHE LENGTH PARAMETER HOLDS THE COMMAREA LENGTH RTRANSID(RTXN) RTERMID(RTERM) PARAMETERS CAN BE RETRIEVED USING THE ABOVE PRAMETERS THE QUEUE PARAMATER CAN ALSO BE RETRIEVED QUEUE(tsqueue)
EXEC CICS DELAY INTERVAL(013000)
THE INTERVAL PARAMETER SPECIFIES A TIME INTERVAL AS A PACKED DECIMAL NUMBER IN THE FORM HHMMSS. IN THIS EXAMPLE THE COMMAND WILL PAUSE PROCESSING FOR 1 HOUR AND 30 MINUTES.
CICS also provides more sophisticated features for pausing tasks for a period of time. For example, one task may wait for a period of time specified by another task. The CICS POST and WAIT EVENT commands are used to do this.
THE PICTURE DENOTES SIMILIAR COMMANDS TO THE DELAY COMMAND, FOR POST AND WAIT.
EXEC CICS DELAY TIME(143000)
THE TIME PARAMETER SPECEFIES A LOCAL TIME WHEN PROCESSING WILL RESUME AS A PACKED DECIMAL NUMBER IN THE FORMAT HHMMSS. IN THE EXAMPLE PROCESSING WILL RESUME AT 143000 (230 LOCAL TIME)
EXEC CICS RETRIEVE
THIS COMMAND IS USED ON THE DESTINATION SIDE TO RETRIEVE THE INFORMATION THE SENDING TRANSACTION SENT IN THE START COMMAND When using the START TRANSID command to start a transaction, a program can optionally pass information to the newly started transaction. This could be a COMMAREA, temporary storage queue name, transaction, or terminal name. Programs in the destination transaction can access this information using the RETRIEVE command. Click Next to see how the RETRIEVE command works.
DELAY COMMAND
The CICS DELAY command can be used to 'pause' a program for a period of time. For example, a program may need to pause for five seconds to allow some other processing in another task to complete. During this period, the program performs no processing, but retains any locks or resources. So, it is a good idea to limit the use of the DELAY command. The time a DELAY command pauses processing can be specified in many ways.
EXEC CICS POST INTERVAL(013000) SET ech-ptr
The post command also specify a pointer in the SET parameter. After the POST COMMAND COMPLETES CICS SETS THE POINTER TO POINT TO A TIMER-EVENT CONTROL AREA.
EXEC CICS DELAY UNTIL HOURS (14) MINUTES(30) SECONDS(0)
WILL DELAY THE PROGRAM UNTIL 14:30 OR 2:30 LOCAL TIME.
EXEC CICS DELAY SECONDS(5)
WILL PAUSE PROCESSING FOR 5 SECONDS
EXEC CICS DELAY MINUTES(1)
WILL PAUSE PROGRAM FOR 1 MINUTE.
EXEC CICS DELAY HOURS(1)
WILL PAUSE THE PROGRAM FOR ONE HOUR
What time is it? When a CICS task is started, the current date and time is stored in the CICS Exec Interface Block (EIB). The EIB is explained in more detail in another module. A program can request that this time be updated by issuing the CICS ASKTIME command. Note that the time and date is the local time and date. THE ABSTIME PARAMETER OF THE ASKTIME COMMAND OBTAINS THE CURRENT DATE AND TIME.
EXEC CICS ASKTIME EIBTIME - TIME EIB DATE OR EXEC CICS ASKTIME ABSTIME(thistime)
The CICS CANCEL command can be used by one program to cancel any pauses from a DELAY or POST command. The CANCEL command can also cancel a transaction that is scheduled to start in the future.
EXEC CICS DELAY REQID('MYREQ1') EXEC CICS POST AFTER SECONDS(5) REQID('MYREQ1') EXEC CICS START TRANSID('TXN1') AFTER SECONDS(5) REQID('MYREQ1') EXEC CICS CANCEL REQID('MYREQ1')
Format the time Most application programs will not want the current date and time as the number of milliseconds since midnight 01-Jan-1900. They will want it formatted for the user to see. Of course, there are many different possible date and time formats depending on factors such as use and geographical location. CICS provides the FORMATTIME service to format times obtained using the ASKTIME ABSTIME command. Click Next to explore FORMATTIME further. THE FORMATTIME COMMAND FORMATS A TIME OBTAINED USING THE ASKTIME ABSTIME COMMAND. THE ABSTIME PARAMETER SPECEFIES THE DATA AREA WITH THE ABSOLUTE TIME TO FORMAT EXEC CICS FORMATTIME ABSTIME(thistime) DATE = '122116' THE DATE PARAMETER SPECIFIES A DATA AREA THAT WILL RECEIVE A DATE STRING. THIS IS THE DEFAULT DATE FORMAT SPECIFIED BY THE CICS ADMINISTRATOR. iN THIS EXAMPLE THE FORMAT IS MMDDYY. THE FORMATTIME COMMAND INSERTS THE DATE IN THIS FORMAT AS A STRING INTO THE DATA AREA(date) options for formatting set by the administrator ddmmyy yymmdd mmddyy EXEC CICS FORMATTIME ABSTIME(thistime) DATE(date) DATESEP(":") DATE ='12:21:16 EXEC CICS FORMATTIME ABSTIME(thistime) DDMMYYYY(DATE) DATESEP(":") DATE = "21:12:2016" EXEC CICS FORMATTIME ABSTIME(thistime) DATESTRING(date) will return date = Fri, 21 Dec 2016 07:44:21 gREENWICH MEAN TIME. EXEC CICS FORMATTIME ABSTIME(thistime) DATESTRING(date) STRINGZONE('LOCAL') STRINGFORMAT('RFC3339') WILL RETURN THE LOCAL TIME AND IN RFC3339 XML DATE/TIME USING STRINGZONE AND STRINGFORMAT
EXEC CICS FORMATTIME ABSTIME
START TRANSID
EXEC CICS START TRANSID('TXN1') SPECIFIES TRANS ID. FROM(outparm) SPECIFIES COMMAREA OR CHANNEL TO BE PASSED TO THE DESTINATION TRANSACTION LENGTH(outparml) SPECIFIES THE LENGTH OF COMMAREA DAT SPECIFIED IN THE FROM PARAMETER TERMID('TERM1') IS THE TERMINAL ID THAT WILL BE EXECUTING THE TRANS CAN OPTIONALLY BE SET IN TERMID PARAMETER. THIS COULD BE USED TO START A TRANSACTION ON ANOTHER TERMINAL SYSID('CICSA') BY DEFAULT A TRAN IS STARTED IN THIS CICS REGION. A TRANSACTION COULD OPTIONALLY BE STARTED IN A REMOTE CONNECTED CICS REGION BY USING THE SYSID PARAMETER. THIS SYSID SPECIFIES THE NAME OF THE REMOTE REGION. RTRANSID('RTXN') THE OPTIONAL RTRANSID PARAMETER SPECIFIES A STRING OF BETWEEN 1 & 4 CHARS TO BE PASSED TO THE DESTINATION TRANS. THIS IS USUALLY USED TO PASS A TRANSACTION ID THAT COULD BE CALLED BY THE DESTINATION TRANSACTION ONCE IT IS COMPLETED. RTERMID('RTRM') THE OPTIONAL RTERMID PARAMETER SPECIFIES A STRING BETWEEN 1&4 CHARS TO BE PASSED TO THE DESTINATION TRANSACTION. tHIS IS USUSALLY USED TO PASS A TERMINAL ID THAT COULD BE USED BY THE DESTINATION TRANSACTION ONCE IT IS COMPLETED QUEUE('QUEU1') THE OPTIONAL QUEUE PARAMETER SPECIFIES A TEMPORARY STORAGE QUEUE. THIS VALUE IS PASSED TO THE DESTINATION TRANSACTION. THIS COULD BE USED WHEN PASSING DATA BETWEEN TRANSACTION, USING A CICS TEMPORARY STORAGE
The DELAY, POST and the START TRANSID commands can be identified by a request ID: a string of between one and eight characters. This request ID can be specified by the programmer when issuing the commands using the REQID parameter. If no REQID parameter is specified, CICS generates a request ID. This request ID is useful when identifying the specific request as you will see shortly.
EXEC DELAY SECOND(3) REQUID('MYREQ1') EXEC CICS POST AFTER SECONDS(5) REQUID('MYREQ1') EXEC CICS START TRANSID ('TXN1') REQID('MYREQ')
