|
BEA Systems, Inc. | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
JMS extension to associate a message delivered to a MDB (message-driven bean) with a transaction.
Method Summary | |
void |
associateTransaction(javax.jms.Message message)
This method infects an unacknowledged, non-transactional message with the current transaction. |
Method Detail |
public void associateTransaction(javax.jms.Message message) throws javax.jms.JMSException
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); } }
message
- javax.jms.Message
|
Documentation is available at http://download.oracle.com/docs/cd/E13222_01/wls/docs61 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |