How a Task is Scheduled using START Command in CICS

The START command is serviced by the CICS component INTERVAL CONTROL. It creates a ICE or interval control element whenever a START command is issued. The ICE contains information about the task to be started, including its transaction-id, Terminal-id, expiration time and the data to be passed to the started task. Interval Control uses Temporary Storage to store the passed data.


Since many tasks may issue START commands, and they may have different expiration periods, it is likely that a number of ICE’s may exist in the CICS region at any point of time. CICS code periodically checks the ICE’s to see if any expiration time has been reached and the new task can be started.


Note that the task issuing the START command blocks only until CICS creates a ICE to register the START request. The issuing task unblocks after the ICE is created and the passed data is written to the TS and can do whatever other processing it chooses.


The START command
EXEC CICS
START TRANSID(name)
INTERVAL(hhmmss)
TIME(hhmmss)
AFTER [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)]
AT [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)]
[ TERMID(name) ]
[ SYSID(name) ]
[ FROM(data-area) [ LENGTH(data-value)]]
[ RTERMID(name) ]
[ RTRANSID(name) ]
[ QUEUE(name) ]
[ REQID(name) ]
[ NOCHECK ]
[ PROTECT ]
END-EXEC


Options
TRANSID A four character transaction identifier.


INTERVAL Specifies the expiration time interval. You can code a literal in the form hhmmss. If you specify a data area it must be a PIC S9(7) COMP-3 field and the value must be in the form 0hhmmss.

TIME Specifies a time of the day. You can code a literal in the form 0hhmmss. If you specify a data area it must be a PIC S9(7) COMP-3 field and the value must be in the form 0hhmmss.

AFTER Specifies that the HOURS, MINUTES and SECONDS options indicate the time of day when the task is to be started. If INTERVAL, TIME, AFTER and AT are all omitted, interval(0) is assumed.

HOURS, Each is a PIC S9(8) COMP full word. Hours can be from 0-99
MINUTES, minutes can be from 0 to 59 or 0 to 5999
SECONDS. Seconds can be from 0 to 59 or 0 to 359999
If INTERVAL, TIME, FOR and UNTIL are omitted, INTERVAL(0) is assumed.

TERMID Specifies a one to four character terminal ID. If omitted the task is not attached to any terminal and cannot perform any terminal I/O.

SYSID A one to four character Connection name that represents a remote system where the transaction is to be started.

REQID Specifies a one to eight character name you specify to uniquely identify this request. It can be used to CANCEL the START request before the new task has started. CANCEL has no effect after the new task has started. You can allow CICS to generate a REQID in the EIBREQID field as an alternative to generating one yourself.

FROM Specifies the data-area from where the data is to be passed to the started task.

LENGTH Specifies the length of the data-area from where data is to be passed to the started task. It is a half word field PIC S9(4) COMP.

RTRANSID Specifies a one to four character name that is passed to the started task. The started task fetches this using the RTRANSID option of the RETRIEVE command.

QUEUE Specifies a one to eight character name that is passed to the started task. The started task fetches this using the QUEUE option of the RETRIEVE command.

NOCHECK Specifies that the task issuing the START command should not wait until the remote system has confirmed that the START was successfully processed.

PROTECT Specifies that the task should not be started until the task issuing the START takes a syncpoint.

Conditions
INVREQ The START command is invalid. Possible causes are the expiration period specification is out of range, or REQID already exists. For example ss may be specified as 70.

IOERR An I/O error occurred.

ISCINVREQ An undeterminable error occurred at the remote system.

LENGERR A length error occurred. Occurs if the length is not greater than 0. The maximum length, to be on safe side should not exceed 30000.

SYSIDERR The remote system could not be accessed / located.

TERMIDERR The terminal is not known to CICS.

TRANSIDERR the transaction id is not known to CICS.

Notes:

The START command is useful to divide an application functions into two separate independent tasks, which can run concurrently. It can also be used to start transactions at a predetermined time or after a time interval.

If more than one START command is issued for the same target transaction, the first started task can retrieve all the passed data by issuing RETRIEVE calls more than once. If it does this CICS does not start a new started task for each start request.

If you specify only one of HOURS | MINUTES | SECONDS, you are not bound by the limit of 60 for seconds and minutes or 24 for hours. You can use the higher limits.

0 comments:

Computers TopOfBlogs Technology Blogs Mainframe interview question and answers,mainframe jobs,cobol,vsam,jcl,cics,db2,rdbms,mvs,tso,ispf,ibm,hcl,tcs,cts,wibro Blog Directory