1 Understanding Message-driven Beans

A message-driven bean (MDB) is an enterprise bean that allows Jakarta EE applications to process messages asynchronously. An MDB acts as a JMS or JCA message listener. The messages are sent by the Jakarta EE components like application client, another enterprise bean, web components, or even a non-Jakarta EE application.

These are the key features of message-driven beans:

  • Clients do not access message-driven beans through interfaces. A message-driven bean has only a bean class.

  • A message-driven bean's instances retain no data or conversational state for a specific client. All instances of a message-driven bean are equivalent, allowing the EJB container to assign a message to any message-driven bean instance. The container can pool these instances to allow streams of messages to be processed concurrently.

When a message arrives, the container calls the message-driven bean's onMessage method to process the message. The onMessage method may call helper methods, or it may invoke a session or entity bean to process the information in the message or to store it in a database.

A message may be delivered to a message-driven bean within a transaction context, so that all operations within the onMessage method are part of a single transaction. If message processing is rolled back, the message will be re-delivered.

For information about design alternatives for message-driven beans, see MDBs and Messaging Models.

For a description of the overall EJB development process, see Developing Enterprise Beans for Oracle WebLogic Server.

JCA-Based MDBs

Learn how to configure MDBs to receive messages from JCA 2.0-compliant resource adapters and to set the resource-adapter-jndi-name deployment descriptor.

Note:

Jakarta EE 9.1 supports the Enterprise Beans 4.0 specification, which is the Jakarta EE version of the Enterprise JavaBeans (EJB) specification.

See the JCA 2.0 specification and resource-adapter-jndi-name in Developing Enterprise Beans, Version 4.0, for Oracle WebLogic Server.