You can specify whether to allow the system to process an IXLCACHE
request synchronously or asynchronously. For asynchronous processing
of a request, you can specify how you want the system to notify you
about request completion. To control synchronous or asynchronous processing,
use the MODE parameter on IXLCACHE requests.
Table 1 lists the options
for the MODE parameter.
- Synchronous Processing
Synchronous processing of an
IXLCACHE request means that your program regains control only when
the IXLCACHE request has completed processing. To specify synchronous
processing, you can specify one of the following options for MODE:
- SYNCECB
- SYNCTOKEN
- SYNCEXIT
- SYNCSUSPEND
The system might need to suspend your program to be able
to process the IXLCACHE request synchronously. If you specify MODE=SYNCSUSPEND,
the system suspends the program, if necessary, to process the request
synchronously. If you specify another synchronous option for MODE
and the request cannot be processed synchronously, the system processes
the request asynchronously.
The following conditions can cause
the system to process a synchronous IXLCACHE request asynchronously:
- The necessary resources for the request (for example, a subchannel)
are not currently available
- The BUFFER on the request specifies more than 4096 bytes of buffer
storage.
- The BUFLIST parameter specifies more than one buffer, regardless
of the total amount of data for the request.
- A dump of the structure is in progress.
- The system might also choose to convert synchronous requests to
asynchronous processing, based on performance considerations or other
criteria.
The system indicates its intention to process your synchronous
request asynchronously by returning a return code of IXLRETCODEWARNING
with a reason code of IXLRSNCODEASYNCH when you issue the IXLCACHE
request.
- Asynchronous Processing
When the system processes a
request asynchronously, your program regains control after it issues
the request, and the request runs independently. To specify asynchronous
processing, you can specify one of the following options for MODE:
- ASYNCECB
- ASYNCTOKEN
- ASYNCEXIT
- ASYNCNORESPONSE
When the request runs asynchronously, you need to determine
when it has completed processing. For synchronous requests other
than MODE=SYNCSUSPEND, you need to specify how you want to be informed
of an asynchronous request completion if the system processes the
request asynchronously. You can specify how the system is to inform
you when it processes an IXLCACHE request asynchronously in one of
the following ways:
- MODE=SYNCECB or MODE=ASYNCECB to post an event control block (ECB).
- MODE=SYNCTOKEN or MODE=ASYNCTOKEN to return the request token
specified on the IXLFCOMP macro. You issue IXLFCOMP after you issue
the IXLCACHE request to obtain information about the results of the
request.
- MODE=SYNCEXIT or MODE=ASYNCEXIT to give control to the complete
exit for your program.
If you do not want to be informed about the completion
of an asynchronous request, you can code the following option for
some types of requests: