Oracle Fusion Middleware
Oracle WebLogic Server 10.3.1 API Reference
11g Release 1 (10.3.1)

Part Number E13941-02

weblogic.jms.extensions
Interface MDBTransaction


public interface MDBTransaction

JMS extension to associate a message delivered to a MDB (message-driven bean) with a transaction.

Note: As of WebLogic Server release 7.0, MDBs support transactions for foreign JMS vendors that do not implement this interface.


Method Summary
 void associateTransaction(Message message)
          This method infects an unacknowledged, non-transactional message with the current transaction.
 

Method Detail

associateTransaction

void associateTransaction(Message message)
                          throws JMSException
This method infects an unacknowledged, non-transactional message with the current transaction. It is intended for use by transactional MDB containers, and is not for use by non-transactional MBeans!

The container must use sessions created with the Session.CLIENT_ACKNOWLEDGE acknowledge mode, and must not call "acknowledge" directly. The container must use only one consumer per session. Since JMS schedules onMessage calls in their own thread, the container does not need to do this.

The MDB container should look similar to this:

   import weblogic.jms.extension.MDBTransaction;
   class MBeanContainer
     implements MessageListener
     {

     void onMessage(Message message) {
       // container may have a utx pool or create a new tran on the spot
       UserTransaction utx = allocateTransaction();

       utx.begin();   // may throw exception

       // may throw exception
       ((MDBTransaction)session).associateTransaction(message);

       // pass message to client in same thread as utx.begin() call
       // so that it gets infected.
      userMBean.heresAMessage(message);
 
       on success
         utx.commit();   // may throw exception
       on failure
         utx.rollback(); // may throw exception
       // return utx to pool
       freeTransaction(utx);
    }
 }
 

Parameters:
message - javax.jms.Message
Throws:
javax.jms.JMSException - if a JMS error occurs
JMSException

Documentation is available at
http://download.oracle.com/docs/cd/E12839_01/web.1111/wls.htm
Copyright 1996, 2009, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Oracle Fusion Middleware
Oracle WebLogic Server 10.3.1 API Reference
11g Release 1 (10.3.1)

Part Number E13941-02