Delivering ALTPCB output without RESUME TPIPE calls for IMS Connect

When IMS Connect is identified as the destination of an IMS ALTPCB output message, IMS queues the output to an OTMA TPIPE hold queue instead of delivering it. This ALTPCB output can be kept in IMS until an IMS Connect client issues a RESUME TPIPE call to retrieve it.

When you call the SENDALTP function, IMS delivers an ALTPCB output to the originating IMS Connect client for its send-receive (CM0) call without the need of a RESUME TPIPE call. In order for the SENDALTP function to work, the ALTPCB output should be routed to the same IMS Connect client that initiates the call.

The supported message flow is: TCP/IP APP → IMS CONNECT X → IMS → IMS CONNECT X → TCP/IP APP. This SENDALTP function won't work if the ALTPCB output initiated by an IMS Connect client is routed to a different IMS Connect client or to a non-IMS Connect destination.

Activating the SENDALTP function

To activate the SENDALTP function in IMS, you can choose from using message level activation or datastore level activation.

For message level activation, you can use one of the following methods:
  • Set the IMS Connect IRM flag, IRM_F2_SNDALTP, for a user-written IMS Connect client
  • Specify SENDALTP for OTMA destination descriptor in DFSYDTx PROCLIB member
  • Set the SENDALTP output flag for IMS DFSYDRU0 user exit
For datastore level activation, you can use one of the following methods:
  • Issue CREATE IMSCON or UPDATE IMSCON commands to turn on the SENDALTP function for data stores
  • Specify SENDALTP to activate the function in IMS Connect configuration file for data stores
  • Specify SENDALTP to activate the function using OTMA client descriptor
The order of precedence of activating the SENDALTP function is as follows:
  1. Message level activation from an IMS Connect client
  2. Message level activation through IMS OTMA destination descriptor or IMS DFSYDRU0 user exit
  3. Datastore level activation through IMS Connect configuration or IMSCON type 2 commands
  4. Datastore level activation through IMS OTMA client descriptor
Handling SENDALTP with OTMA destination descriptors
When OTMA destination descriptor is used to handle the ALTPCB output message, the SENDALTP function will be disabled in the following cases:
  • The TYPE= parameter is not IMSCON.
  • The TMEMBER= parameter of the OTMA destination descriptor is not the initiating IMS Connect member.
Specifying a super member doesn't affect the SENDALTP function. For example, when both SMEM=YES and SENDALTP=YES are specified, IMS sends the ALTPCB output back to the initiating IMS Connect client instead of queuing it to the super member. When the SENDALTP function is activated for an ALTPCB output for IMS Connect, the ALTPCB output TPIPE name will be the input TPIPE name of the initiating commit-then-send send-receive call, instead of the TPIPE name specified in the destination descriptor.
Handling SENDALTP with OTMA DFSYDRU0 user exit

When OTMA DFSYDRU0 user exit is used to handle the ALTPCB output message, the SENDALTP function will be disabled if the exit sets a different output destination member or datastore from the initiating IMS Connect client.

Once the SENDALTP function is activated, if you specified the TPIPE override name in the output parameter of the exit, it will be omitted. The input IMS Connect TPIPE name will be used to send back the ALTPCB output instead.

Restrictions on using the SENDALTP function
Using the SENDALTP function has the following restrictions:
  • SENDALTP can only be enabled for IMS Connect. Other OTMA clients, such as MQSeries, cannot activate this function.
  • SENDALTP only supports commit-then-send send-receive calls from IMS Connect. Other input messages, such as send-then-commit input messages and commit-then-send send-only calls, cannot enable the SENDALTP function.
  • SENDALTP function cannot be used to process an IMS ALTPCB output that is initiated by non-IMS Connect clients.
  • If an OTMA destination descriptor or an IMS DFSYDRU0 user exit routes the IMS ALTPCB output to a non-OTMA destination or a different OTMA client, the SENDALTP function will be disabled.
Attention: Don't activate the SENDALTP function for IMS Connect if a commit-then-send send-receive call generates both I/O PCB outputs and ALTPCB outputs. If you do so, IMS will deliver both types of output messages to IMS Connect. IMS Connect will only accept the first arrived output message and reject the subsequent output messages. The rejected output messages will then be queued to an OTMA TPIPE hold queue or be purged if asked.