We've already introduced the new CICS asynchronous API, and explained its potential for creating a new class of faster, more responsive applications — what we haven't mentioned yet is that with the new CICS TS V5.4 open beta release we're also making it easy to monitor and track your asynchronously running tasks.
In another article, Alison explained the benefits of transaction tracking: by allowing system programmers to see the origin of and relationships between tasks, it's that much easier to pinpoint problems and monitor performance. Previously, transaction tracking only worked across interconnected regions, counting the 'hops' between tasks as they flowed across regions, but we've made some improvements!
To enable easy management of asynchronously running parent and child tasks — which all run within the same CICS region — we've added new 'previous transaction' tracking capability, which works just the same as the transaction tracking outlined in Making transaction tracking work for you. Instead of tracking relationships across regions, this new functionality tracks relationships within a single CICS region, effectively showing you task 'depth' in any given region, and the parent-child relationships within it. This transaction tracking works for all locally attached tasks, such as those initiated with
EXEC CICS START commands, in addition to tasks initiated by the
EXEC CICS RUN TRANSID command.
Viewing task association data
You can view task association data in many ways. To give two examples: using the tabular view in Explorer, or in SMF records. For more detail about using the Explorer view, see Alison's article. When running DFH$MOLS against your SMF 110 records, your transaction tracking data might look something like this for a parent transaction
And like this for a child task,
Here, you can see that our child
ASCH has a
PTTRAN value of
ASPA, which identifies its parent, and
1, which tells us that it is one level 'deep' within the CICS region (i.e., that it is a child, but not a grandchild). If
ASCH had children of its own, they would have a
PTTRAN value of
ASCH, and a
2, which would identify those children as grandchildren of
Visualizing task relationships
The diagram below represents how association data passes between tasks. Both previous hop counts and previous transaction counts are represented, with previous hop counts flowing horizontally between CICS regions, and previous transaction counts flowing vertically down within a CICS region. In this example, association data moves between regions using a combination of distributed program link (DPL) and function ship (FS).
Using task association data
By exposing the relationships between tasks, transaction tracking can be used to troubleshoot hanging or suspended tasks, to generate task history for audit purposes, and to optimize task performance by analyzing any bottlenecks or delays. In combination with the CICS asynchronous API, there’s great potential for improvements and efficiencies in your CICS programs.
For more details on how previous transaction tracking works, see the IBM Knowledge Center.