分类: Java
2012-05-03 23:52:18
1. 总线配置
服务集成>总线
创建总线,创建时去除“总线安全性”选项,避免客户端请求时的安全拦截;
总线 > mybus(总线名称) > 总线成员
建完后,添加总线成员,选择“服务器”下拉项中的当前server,完成添加
总线 > mybus > 目标
添加队列,队列名称自定义,如MyBusQueue
注:
总线 > mybus > 消息传递引擎 > Node01.server1-mybus > 队列点
可查看当前消息队列中的消息数量
总线 > mybus > 消息传递引擎 > Node01.server1-mybus > 队列点 > MyBusQueue@Node01.server1-mybus > 消息
可查看消息队列中的详情
2. 队列连接工厂配置
资源>JMS>队列连接工厂
新建“缺省消息传递提供程序”类型连接工厂:
名称:ConnectionFactory
JNDI: jms/MyConnectionFactory
类别:javax.jms.ConnectionFactory
(第一步新建的bus)
其他默认,创建完成
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