1 6 7 package org.jfox.ejb; 8 9 import java.io.Serializable ; 10 import java.rmi.RemoteException ; 11 import javax.ejb.EJBException ; 12 import javax.ejb.MessageDrivenBean ; 13 import javax.jms.JMSException ; 14 import javax.jms.Session ; 15 16 import org.jfox.jms.JMSConnection; 17 import org.jfox.jms.connector.JMSContainer; 18 import org.jfox.jms.message.JMSMessage; 19 20 23 24 public class MDBConnection extends JMSConnection implements Serializable { 25 26 public MDBConnection(String clientId, JMSContainer container, boolean isXA) { 27 super(clientId, container, isXA); 28 } 29 30 38 public synchronized Session createSession(boolean transacted, int acknowledgeMode) throws JMSException { 39 checkClosed(); 40 if(transacted) { 41 acknowledgeMode = Session.SESSION_TRANSACTED; 42 } 43 MDBSession session = new MDBSession(this, transacted, acknowledgeMode, false); 44 container.registerSession(clientId, session.getSessionId()); 45 synchronized(sessions) { 46 sessions.put(session.getSessionId(), session); 47 } 48 return session; 49 } 50 51 60 public void onMessage(String sessionId, String consumerId, JMSMessage msg) throws RemoteException , JMSException { 61 throw new EJBException ("invalid onMessage call in MessageDrivenBean."); 62 } 63 64 public void onMessage(String sessionId, MessageDrivenBean bean, JMSMessage msg) throws RemoteException , JMSException { 65 MDBSession session = (MDBSession) sessions.get(sessionId); 66 session.onMessage(bean, msg); 67 } 68 69 } | Popular Tags |