Message-driven beans, activation specifications, and listener ports
Guidelines, related to versions of WAS, to help choose when to configure the message-driven beans to work with listener ports rather than activation specifications.
We can configure the following resources for message-driven beans:
- Activation specifications for message-driven beans that comply with Java EE Connector Architecture (JCA) Version 1.5.
- The message listener service, listener ports, and listeners for any message-driven beans to deploy against listener ports.
Activation specifications are the standardized way to manage and configure the relationship between an MDB running in WebSphere Application Server and a destination in WebSphere MQ. They combine the configuration of connectivity, the Java Message Service (JMS) destination and the runtime characteristics of the MDB, within a single object.
Activation specifications supersede the use of listener ports, which became a stabilized feature in WAS v7 (for more information, see Stabilized features). There are several advantages to using activation specifications over listener ports:
- Activation specifications are simple to configure, because they only require two objects: the activation specification and a message destination. Listener ports require three objects: a connection factory, a message destination, and the message listener port itself.
- Activation specifications are not limited to the server scope. They can be defined at any administrative scope in WebSphere Application Server. Message listener ports must be configured at the server scope. This means that each server in a node requires its own listener port. For example, if a node is made up of three servers, three separate listener ports must be configured. Activation specifications can be configured at the node scope, so in the example only one activation specification would be needed.
- Activation specifications are part of the JEE Connector Architecture 1.5 and 1.6 standards specification (JCA 1.5 and 1.6). Listener port support in WebSphere Application Server makes use of the application server facilities interfaces defined in the JMS specification, but is not part of any specification itself.
For WebSphere Application Server Version 7 and later, listener ports are stabilized. For more information, read the article on stabilized features. You should plan to migrate the WebSphere MQ message-driven bean deployment configurations from using listener ports to using activation specifications. For more information about how to configure activation specifications for non-ASF mode, see Configure activation specifications for non-ASF mode. However, you should not begin this migration until you are sure the application does not have to work on application servers earlier than WebSphere Application Server Version 7. For example, if we have an application server cluster with some members at Version 6.1 and some at a later version, you should not migrate applications on that cluster to use activation specifications until after you migrate all the application servers in the cluster to the later version. Also, when you migrate to activation specifications on the z/OS platform, enable the Control Region Adjunct (CRA) process of the application server (either by selecting Enable JCA based inbound message delivery on the JMS provider settings panel, or using the manageWMQ command to include starting the CRA process as part of starting an application server).
To use message-driven beans with a messaging provider that does not have a JCA Version 1.5 or 1.6 resource adapter, we cannot use activation specifications and therefore configure the 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. Here are some guidelines, related to versions of WAS, to help choose when to use listener ports rather than activation specifications:
- WebSphere Application Server Version 4 does not support message-driven beans, so listener ports and activation specifications are not applicable. WebSphere Application Server Version 4 does support message beans, but these are not message-driven beans.
- WebSphere Application Server Version 5 supports EJB 2.0 (JMS only) message-driven beans that are deployed using listener ports. This deployment technology is sometimes called application server facility (ASF).
- WAS v6 continues to support message-driven beans that are deployed to use listener ports, and also supports JCA, which we can use to deploy message-driven beans that use activation specifications. This gives you the following options for deploying message-driven beans on WAS v6:
- We must deploy default messaging (service integration bus) message-driven beans to use activation specifications.
- We must deploy WebSphere MQ message-driven beans to use listener ports.
- We can deploy third-party messaging message-driven beans to use either listener ports or activation specifications, depending on the facilities available from the third-party messaging provider.
- WAS v7 or later continues to support the same options for message-driven bean deployment that WAS v6 supports, and adds a new option for WebSphere MQ message-driven beans. This gives you the following options for deploying message-driven beans on Version 7.0 or later:
- We must deploy default messaging (service integration bus) message-driven beans to use activation specifications.
- We can deploy new and existing WebSphere MQ message-driven beans to use listener ports (as on WAS v6) or to use activation specifications.
- We can deploy third-party messaging message-driven beans to use either listener ports or activation specifications, depending on the facilities available from the third-party messaging provider.
To assist in migrating listener ports to activation specifications, the WAS console provides a Convert listener port to activation specification wizard on the Message listener port collection panel. This allows us to convert existing listener ports into activation specifications. However, this function only creates a new activation specification with the same configuration used by the listener port. It does not modify application deployments to use the newly created activation specification.
Related concepts
Message-driven beans - JCA components J2C activation specification configuration and use Message-driven beans - listener port components
Related tasks
Migrate a listener port to an activation specification for use with the WebSphere MQ messaging provider Configure an activation specification for a third-party JCA resource adapter Configure an administered object for a third-party JCA resource adapter Manage message listener resources for message-driven beans Configure an activation specification for the default messaging provider Deploy an enterprise application to use message-driven beans with JCA 1.5-compliant resources Deploy an enterprise application to use message-driven beans with listener ports