KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfox > ejb > MDBConnection


1 /* JFox, the OpenSource J2EE Application Server
2  *
3  * Distributable under GNU LGPL license by gun.org
4  * more details please visit http://www.huihoo.org/jfox
5  */

6
7 package org.jfox.ejb;
8
9 import java.io.Serializable JavaDoc;
10 import java.rmi.RemoteException JavaDoc;
11 import javax.ejb.EJBException JavaDoc;
12 import javax.ejb.MessageDrivenBean JavaDoc;
13 import javax.jms.JMSException JavaDoc;
14 import javax.jms.Session JavaDoc;
15
16 import org.jfox.jms.JMSConnection;
17 import org.jfox.jms.connector.JMSContainer;
18 import org.jfox.jms.message.JMSMessage;
19
20 /**
21  * @author <a HREF="mailto:young_yy@hotmail.com">Young Yang</a>
22  */

23
24 public class MDBConnection extends JMSConnection implements Serializable JavaDoc {
25
26     public MDBConnection(String JavaDoc clientId, JMSContainer container, boolean isXA) {
27         super(clientId, container, isXA);
28     }
29
30     /**
31      * create MDBSession
32      *
33      * @param transacted
34      * @param acknowledgeMode
35      * @return
36      * @throws javax.jms.JMSException
37      */

38     public synchronized Session JavaDoc createSession(boolean transacted, int acknowledgeMode) throws JMSException JavaDoc {
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     /**
52      * MDB 不使用该onMessage,因为 MDB 实例已经取得
53      *
54      * @param sessionId
55      * @param consumerId
56      * @param msg
57      * @throws java.rmi.RemoteException
58      * @throws JMSException
59      */

60     public void onMessage(String JavaDoc sessionId, String JavaDoc consumerId, JMSMessage msg) throws RemoteException JavaDoc, JMSException JavaDoc {
61         throw new EJBException JavaDoc("invalid onMessage call in MessageDrivenBean.");
62     }
63
64     public void onMessage(String JavaDoc sessionId, MessageDrivenBean JavaDoc bean, JMSMessage msg) throws RemoteException JavaDoc, JMSException JavaDoc {
65         MDBSession session = (MDBSession) sessions.get(sessionId);
66         session.onMessage(bean, msg);
67     }
68
69 }
Popular Tags