Routing messages with DFSMSCE0

The TM and MSC Message Routing and Control User exit routine (DFSMSCE0) is not included in the system definition process. Therefore, incorporate DFSMSCE0 in IMS.SDFSRESL.

The terminal routing entry points are invoked in the input system, possibly changing the destination. When transactions arrive at an IMS across the MSC link, the link-receive entry points can be invoked. These entry points can change the destination again. Because destinations can be changed at so many different points, clearly document how the destinations are changed, and explain the reasons for the new destinations, which are used for processing. You might need to correlate the transaction code changes as information for master terminal operators so that they can interpret a display of queue status.

If the DFSMSCE0 exit routine is used in an IMSplex environment with shared queues, the DFSMSCE0 exit routine can be used in the IMS systems within the IMSplex for affinity routing, which establishes an affinity between a transaction message and a back-end IMS system. Affinity routing effectively suppresses the sharing of the transaction message on the shared queues so that only IMS systems that have affinity are notified when the transaction arrives on the shared queues.

DFSMSCE0 IMSplex affinity routing is also a way to route APPC synchronous transaction or an OTMA send-then-commit (CM1) transaction to back-end IMS systems in an IMSplex for processing when either RRS=N or AOS=N. Without assigning affinity, these APPC and OTMA transactions cannot be routed to back-end systems for processing. MSC must be enabled in the IMSplex to use DFSMSCE0 IMSplex affinity routing with APPC synchronous or OTMA send-then-commit (CM1) transactions.

Be aware of how transactions can be routed for different stages in the total processing. If input from IMS A is being processed in IMS C, the processing program can invoke the exit routine to determine whether to send its output to the original input terminal or to another location. Your documentation of the exit routine should show the patterns of alternative message destination. An end user could be expecting output and be unaware that it is being sent to another component.