Application programming for asynchronous processing

This topic discusses the application programming requirements for CICS®-to-CICS asynchronous processing. The general information given for CICS transactions that use the START or RETRIEVE commands is also applicable to CICS-to-IMS communication.

A description of the concepts of asynchronous processing is given in Asynchronous processing. It is assumed that you are familiar with the concepts of CICS interval control. For programming information about the use of EXEC CICS commands for interval control, see START.

Starting a transaction on a remote system

You can start a transaction on a remote system by issuing an EXEC CICS START command just as though the transaction were a local one.

Generally, the transaction has been defined as remote by the system programmer. You can, however, name a remote system explicitly in the SYSID option. This use of the START command is thus essentially a special case of CICS function shipping.

If your application requires you to specify the time at which the remote transaction is to be initiated, remember that the remote system may be in a different time zone. The use of the INTERVAL form of control is preferable under these circumstances.

Exception conditions for the START command

The exception conditions that can occur as a result of issuing a START request for a remote transaction depend on whether the NOCHECK performance option is specified on the START command.

If NOCHECK is not specified, exception conditions are raised according to the rules for function shipping (see Function shipping exception conditions).

If NOCHECK is specified, no conditions are raised as a result of the remote execution of the START command. However, the SYSIDERR condition occurs if no link to the remote system is available, unless the system programmer arranged for local queuing of start requests (see Local queuing of START commands).

Retrieving data associated with a remotely-issued start request

The RETRIEVE command is used to retrieve data that has been stored for a task as a result of a remotely-issued start request. This is the only available method for accessing such data.

As far as your transaction is concerned, there is no distinction between data stored by a remote start request and data stored by a local start request, and the normal considerations for use of the RETRIEVE command apply.