About this task
CICS uses Business Transaction Services (BTS) to ensure that persistent messages
are recovered in the event of a CICS system failure. For this to work correctly,
follows these steps:
Procedure
1. Use IDCAMS to define the local request queue and repository file to MVS. You
must specify a suitable value for STRINGS for the file definition. The default
value of 1 is unlikely to be sufficient, and you are recommended to use 10
instead.
2. Define the local request queue and repository file to CICS. Details of how to
define the local request queue to CICS are described in “Defining local queues
in a service provider.” You must specify a suitable value for STRINGS in the
file definition. The default value of 1 is unlikely to be sufficient, and it is
recommended that you use 10 instead.
3. Define a PROCESSTYPE resource with the name DFHMQSOA, using the
repository file name as the value for the FILE option.
4. Ensure that during the processing of a persistent message, a program issues an
EXEC CICS SYNCPOINT command before the first implicit syncpoint is requested;
for example, using an SPI command such as EXEC CICS CREATE TDQUEUE
implicitly takes a syncpoint. Issuing an EXEC CICS SYNCPOINT command
confirms that the persistent message has been processed successfully. If a
program does not explicitly request a syncpoint before trying to implicitly take
a syncpoint, CICS issues an ASP7 abend.
Results
What to do next
For one way request messages, if the Web service abends or backs out, sufficient
information is retained to allow a transaction or program to retry the failing
request, or to report the failure appropriately. You need to provide this recovery
transaction or program. See “Persistent message processing” on page 138 for
details.
Defining local queues in a service provider
To use the WebSphere
®
MQ transport in a service provider, you must define one or
more local queues that store request messages until they are processed, and one
trigger process that specifies the CICS transaction that will process the request
messages.
Procedure
1. Define an initiation queue. Use the following command:
DEFINE
QLOCAL('initiation_queue')
DESCR('description')
where initiation_queue is the same as the value specified for the INITQNAME
attribute of the MQINI resource definition for the CICS region. MQINI is an
implicit resource that CICS installs when you install an MQCONN resource
definition. Use the EXEC CICS or CEMT INQUIRE MQINI command to inquire
on the initiation queue name.
Chapter 12. Defining recoverability for CICS-managed resources 137