All Downloads are FREE. Search and download functionalities are using the official Maven repository.

examples.javaee.mdb-bmt.readme.html Maven / Gradle / Ivy

The newest version!

  
    HornetQ Java EE MDB Bean Managed Transaction Example
    
    
    
  
  
     

Java EE MDB Bean Managed Transaction Example

This example shows you how to send a message to an MDB configured to use Bean Managed Transactions

The example will send deploy a simple MDB and demonstrate sending a message and the MDB consuming it

JBoss AS configuration

Please refer to HornetQ Quickstart guide to install it in JBoss AS 5

Example step-by-step

To deploy and start the server, simply type ./build.sh deploy (or build.bat deploy on windows) from the example directory

To run the example, simply type ./build.sh (or build.bat on windows) from the example directory

To remove the example profile, simply type ./build.sh undeploy (or build.bat undeploy on windows) from the example directory

** make sure that JBOSS_HOME is set to the JBoss installation directory

  1. First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the jndi.properties file in the directory config
  2.            initialContext = new InitialContext();
            
  3. We look up the JMS queue object from JNDI
  4.            Queue queue = (Queue) initialContext.lookup("/queue/testQueue");
            
  5. We look up the JMS connection factory object from JNDI
  6.            ConnectionFactory cf = (ConnectionFactory) initialContext.lookup("/ConnectionFactory");
            
  7. We create a JMS connection
  8.            connection = cf.createConnection();
            
  9. We create a JMS session. The session is created as non transacted and will auto acknowledge messages.
  10.            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            
  11. We create a JMS message producer on the session. This will be used to send the messages.
  12.           MessageProducer messageProducer = session.createProducer(queue);
           
  13. We create a JMS text messages that we are going to send.
  14.             TextMessage message = session.createTextMessage("This is a text message");
            
  15. We send messages to the queue
  16.            messageProducer.send(message);
            
  17. The MDB receives the message
    We know the message is a TextMessage so we cast to it.
  18.            TextMessage tm = (TextMessage)message;
            
  19. The MDB gets the text and prints it
  20.             String text = tm.getText();
                System.out.println("message " + text + " received");
            
  21. Now we can do something within a user transaction, lets just start and commit it
  22.             UserTransaction tx = ctx.getUserTransaction();
    
                 if(tx != null)
                 {
                    tx.begin();
                    System.out.println("we're in the middle of a transaction: " + tx);
                    tx.commit();
                 }            
            
  23. And finally, always remember to close your JMS connections and resources after use, in a finally block. Closing a JMS connection will automatically close all of its sessions, consumers, producer and browser objects
  24.            finally
               {
                  if (initialContext != null)
                  {
                    initialContext.close();
                  }
                  if (connection != null)
                  {
                     connection.close();
                  }
               }
            




© 2015 - 2025 Weber Informatics LLC | Privacy Policy