These days, with Service-Oriented Architecture (SOA) widely used and sprawling enterprise IT infrastructures with layers of middleware, an online transaction entered at point A might pass through multiple software products before arriving at point C or D, where the real transaction processing occurs.
This journey takes time, of course, and during periods of high volumes, the journey might take longer than the client at point A is able to wait. If that happens, the client will likely time out and move on to other work. In that case, any further processing of the transaction, which took the scenic route, is wasted processing. Wasted processing wastes money.
If the system that ultimately processes the transaction is directly connected to the client, it would be relatively simple for the transaction processing system to stop processing the transaction when the client timed out. However, when the transaction passes through several software products before arriving at point D, telling point D to stop processing the transaction after the client times out is somewhat harder.
WebSphere MQ, the Enterprise Service Bus (ESB) messaging backbone, and Information Management System (IMS), the IBM transaction processing and hierarchical database management system, address this problem and can help you cut costs by eliminating the processing of online transactions a client is no longer waiting for.
In a configuration that uses WebSphere MQ and IMS, remote clients access IMS transactions via the MQ-IMS bridge that WebSphere MQ provides. The MQ-IMS bridge uses the IMS Open Transaction Manager Access (OTMA) protocol to move transaction messages and response data between the queues of WebSphere MQ and the IMS application programs that process the transaction messages.
To help reduce CPU costs, you can leverage the coordinated handling of transaction message time-out values between WebSphere MQ for z/OS Version 7.0.1 and IMS Version 11.
IMS Transaction Expiration
The IMS transaction expiration function lets you define a time-out interval, or expiration time, for transaction messages IMS processes. Typically, the time-out interval for a transaction is defined to be synchronized with the time-out interval used by the client that submits the transaction. When the client times out, so does the transaction.
In IMS, you can set a time-out interval for transaction messages received from WebSphere MQ by specifying an expiration time:
- For the transaction type in the IMS TRANSACT macro. The TRANSACT macro provides a hard-coded definition of a transaction type during IMS system definition.
- Using the IMS type-2 format command CREATE TRAN or UPDATE TRAN, which sets or updates the definition of a transaction type dynamically during IMS run-time
- In the MQ and OTMA message headers of individual transaction messages
- In the IMS Destination Creation exit routine (DFSINSX0), which applies the expiration time to individual transaction messages during IMS run-time.
A transaction expiration time specified in the IMS TRANSACT macro serves as a default expiration time for all transactions of that type and is overridden by an expiration time that’s specified by any of the other methods. If no expiration time is specified by any of these methods, the transaction doesn’t time out.