To support message-driven beans deployed against listener ports, you must configure the properties of the message listener service for your application server.
If you want to use message-driven beans with a messaging provider that does not have a JCA Version 1.5 or 1.6 resource adapter, you cannot use activation specifications and therefore you must configure your beans against a listener port. There are also a few scenarios in which, although you could use activation specifications, you might still choose to use listener ports. For example, for compatibility with existing message-driven bean applications.
If you have existing message-driven beans that use the WebSphere® MQ messaging provider (or a compliant third-party JMS provider) with listener ports, and instead you want to use EJB 3 message-driven beans with listener ports, these new beans can continue to use the same messaging provider.
For more information about when to use listener ports rather than activation specifications, see Message-driven beans, activation specifications, and listener ports.
Before configuring message listener resources, consider the message listener service implementation on the z/OS® platform, which affects how you should configure your listener port. For more information, see
Message listener service on z/OS.
The message listener service is an extension to the JMS functions of the JMS provider and provides a listener manager, which controls and monitors one or more JMS listeners. Each listener monitors either a JMS queue destination (for point-to-point messaging) or a JMS topic destination (for publish/subscribe messaging). For more information, see Message-driven beans - listener port components.
When you deploy an enterprise application to use message-driven beans with listener ports, you can browse or change the configuration of the message listener service for a given application server.
If your messaging system is running in non-ASF
mode, to avoid unwanted transaction timeouts, you must allow a sufficient
amount of time for processing to be completed before the total transaction
lifetime timeout is reached. Therefore, you must make sure that the
value that you specify for the NON.ASF.RECEIVE.TIMEOUT message
listener service custom property is smaller than the value that you
specify for the Total transaction lifetime timeout transaction
service property, and also that the difference between the values
of the two properties is greater than the amount of time that the onMessage() method
of the message-driven bean (MDB) takes to process the message.