WAS v8.5 > Develop applications > Develop Messaging resources > Programming to use asynchronous messaging > Programming to use message-driven beans

Develop message-driven beans

We can develop a bean implementation class for a message-driven bean as introduced by the Enterprise JavaBeans specification. A message-driven bean (MDB) is a message consumer that implements business logic and runs on the server.

Determine the messaging model you want for the application regarding use of topics, queues, producers and consumers, publish or subscribe, and so on. We can refer to the message-driven bean component contract described in the Enterprise JavaBeans™ specification.

A MDB is a consumer of messages from a JMS provider. An MDB is invoked on arrival of a message at the destination or endpoint the MDB services. MDB instances are anonymous, and therefore, all instances are equivalent when not actively servicing a client message. The container controls the life cycle of bean instances, which hold no state that is visible to a client.

The following example is a basic message-driven bean:

@MessageDriven(activationConfig={
                @ActivationConfigProperty(propertyName="destination",     propertyValue="myDestination"),
                @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue")})
public class MsgBean implements javax.jms.MessageListener {

  public void onMessage(javax.jms.Message msg) {

      String receivedMsg = ((TextMessage) msg).getText();
      System.out.println("Received message: " + receivedMsg);

   }
}

As with other enterprise bean types, we can also declare metadata for message-driven beans in the deployment descriptor rather than using annotations, for example:

<?xml version="1.0" encoding="UTF-8"?> 
<ejb-jar id="EJBJar_1060639024453" version="3.0"
      xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
      metadata-complete="false">   <enterprise-beans> 
    <message-driven> 
      <ejb-name>MsgBean</ejb-name>       <ejb-class>com.acme.ejb.MsgBean</ejb-class>       <activation-config>          <activation-config-property>             <activation-config-property-name>destination</activation-config-property-name>             <activation-config-property-value>myDestination</activation-config-property-value>          </activation-config-property>          <activation-config-property>            <activation-config-property-name>destinationType</activation-config-property-name>            <activation-config-property-value>javax.jms.Queue</activation-config-property-value>         </activation-config-property>       </activation-config> 
    </message-driven> 
  </enterprise-beans> </ejb-jar>


Results

You developed a simple message-driven bean, along with some deployment and packaging options.

Read related information about designing an enterprise application that uses message-driven beans.


Related


Designing an enterprise application to use message-driven beans


Reference:

EJB 3.0 and EJB 3.1 application bindings overview
Prepare for application installation binding settings


+

Search Tips   |   Advanced Search