1. 總線配置 html
服務集成>總線 java
建立總線,建立時去除「總線安全性」選項,避免客戶端請求時的安全攔截; web
總線 > mybus(總線名稱) > 總線成員 安全
建完後,添加總線成員,選擇「服務器」下拉項中的當前server,完成添加 服務器
總線 > mybus > 目標 spa
添加隊列,隊列名稱自定義,如MyBusQueue .net
注: unix
總線 > mybus > 消息傳遞引擎 > Node01.server1-mybus > 隊列點 orm
可查看當前消息隊列中的消息數量 server
總線 > mybus > 消息傳遞引擎 > Node01.server1-mybus > 隊列點 > MyBusQueue@Node01.server1-mybus > 消息
可查看消息隊列中的詳情
2. 隊列鏈接工廠配置
資源>JMS>隊列鏈接工廠
新建「缺省消息傳遞提供程序」類型鏈接工廠:
名稱:ConnectionFactory
JNDI: jms/MyConnectionFactory
類別:javax.jms.ConnectionFactory
其餘默認,建立完成
3. 隊列配置
資源>JMS>隊列
新建「缺省消息傳遞提供程序」類型隊列:
名稱:MyMDBQueue
JNDI:jms/MyMDBQueue
總線名稱:mybus(第一步新建的bus)
隊列名稱:選擇MyBusQueue(第一步新建的隊列名稱)
其餘默認,建立完成
4. 激活規範配置
資源>JMS>激活規範
新建「缺省消息傳遞提供程序」激活規範:
名稱:MyActivationSpec
JNDI 名稱:eis/MyMDBQueue_Act_Spec
目標類型:隊列
目標JNDI 名稱:jms/MyMDBQueue(第三步新建的隊列JNDI)
總線名稱:mybus(第一步新建的bus)
其餘默認,建立完成
5. JMS應用部署配置
應用程序>應用程序類型>WebSphere企業應用程序
安裝MDBTest.ear,默認安裝完成
企業應用程序 > MDBTest > 消息驅動的 bean 偵聽器綁定
目標資源 JNDI 名稱:eis/MyMDBQueue_Act_Spec
目標 JNDI 名稱:jms/MyMDBQueue
配置完成,從新啓動Websphere Application Server,保證配置生效
應用代碼下載: MDBTest.rar
實際只適用了上面包中的一個MDB
客戶端:
Client代碼:
Properties env1 = new Properties();
env1.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
env1.put(Context.PROVIDER_URL, "corbaloc:iiop:192.168.160.13:2809"); // server port is 2809
String qcfName = "jms/MyConnectionFactory";
Context context = new InitialContext(env1);
QueueConnectionFactory qConnectionFactory = (QueueConnectionFactory)context.lookup(qcfName);
Queue queue = (Queue)context.lookup("jms/MyMDBQueue");
QueueConnection qConnection = qConnectionFactory.createQueueConnection();
QueueSession qSession = qConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
qSession.createSender(queue);
QueueSender sender = qSession.createSender(queue);
TextMessage message = qSession.createTextMessage();
for (int i = 0; i < 10; i++) {
String messageToSend = "MESSAGE: " + i;
message.setText(messageToSend);
// message.setJMSReplyTo(resQueue); // 應答隊列
sender.send(message);
System.out.println("[dzmonkey] INSIDE JMS SERVLET: MESSAGE -> \"" + message.getText() + "\"");
String messageID = message.getJMSMessageID();
boolean bDelivered = message.getJMSRedelivered();
System.out.println("[dzmonkey] INSIDE JMS SERVLET: MESSAGE ID -> \"" + message.getText() + ":"
+ messageID + ":" + bDelivered + "\"");
}
sender.close();
qSession.close();
qConnection.close();
依賴:
WAS自帶JDK
com.ibm.ws.ejb.thinclient_8.0.0.jar
com.ibm.ws.orb_8.0.0.jar
com.ibm.ws.sib.client.thin.jms_8.0.0.jar
參考:
http://www.ibm.com/developerworks/websphere/library/techarticles/0504_barcia/0504_barcia.html