+

Search Tips   |   Advanced Search

(ZOS) Messaging flow for ASF message-driven beans with IBM MQ as the messaging provider

Application Server Facilities (ASF) is used with messaging providers that include the optional ASF extensions to the JMS specification. On z/OS these extensions are implemented by the IBM MQ messaging provider. From WebSphere Application Server v7.0 onwards, JCA is preferred to the older ASF technology.

ASF support for message-driven beans in WAS is known as the message listener service. When we install an ASF message-driven bean application we provide configuration information as a message listener port.

Figure 1. IBM MQ connections - Message Listener Service (ASF)

On z/OS, ASF is used with two different messaging flow patterns.


Listening in the controller

The following figure shows IBM MQ ASF messaging flow when the message listener is listening in the controller

In the z/OS WAS, ASF supports message-driven processing where the message-driven bean listener is in the CR and the work is distributed to the message-driven bean dispatcher in the SRs.

Note that for publish-subscribe there is one listener that registers one subscription for the entire server, not separate subscriptions for each SR.

Figure 2. IBM MQ ASF - listening in the controller

Processing is as follows:

  1. When a message arrives on a JMS destination (shown in the figure as an IBM MQ queue), the listener receives a copy of the message. The listener does not delete the message from the destination.

  2. The listener determines the transaction class for the message and uses z/OS workload management (WLM) to pass a message token (not the actual message) to an SR. Workload management selects an appropriate SR based on the transaction class.

  3. The dispatcher uses the message token to receive the message and pass it to the onMessage method of the message-driven bean. The dispatcher deletes the message from the destination.


Listening in the servant

The following figure shows IBM MQ ASF messaging flow when the message listener is listening in a servant region.

The figure shows a special form of ASF message-driven bean processing where both the message-driven bean listener and the message-driven bean dispatcher run in the same SR. WAS uses this configuration for non-durable publish-subscribe messaging. Each SR registers its own subscription so that one server, potentially, receives and processes multiple copies of the same publication (that is, one copy of the same publication for each SR).

Figure 3. IBM MQ ASF - listening in the servant

Processing is as follows:

  1. When a message arrives at the destination (shown in the figure as an IBM MQ queue), the listener receives a copy of the message. The listener does not delete the message from the destination.

  2. The listener calls code in the CR which uses z/OS WLM to pass a message token back to the same SR.

  3. The dispatcher uses the message token to receive the message and pass it to the onMessage method of the message-driven bean. The dispatcher deletes the message from the destination.


Subtopics


Related:

  • Message processing in ASF mode and non-ASF mode
  • (ZOS) Tune message-driven bean processing on z/OS using IBM MQ as the messaging provider in ASF mode
  • (ZOS) Optimizing MDB throttle support for debugging in z/OS