用社交网络连接 WebSphere MQ:列队管理器和 MQ 应用程序的 Twitter 通知
2010-06-14 00:00:00 来源:WEB开发网查看原图(大图)
MQ 事件消息 MDB
WebSphere MQ 通过 MQ Events Messaging 提供了一个队列管理器内的错误、警告和其他重大动作的相关信息。在配置了以上功能后,WebSphere MQ 会将一个消息放到一个特定队列上,然后应用程序可以从这个队列中使用这个消息并根据这个消息的内容执行动作。
清单 3 显示了另一个 MDB,但这次它被配置为从 SYSTEM.ADMIN.CONFIG.EVENT 队列中读取消息。这个 MDB 获取消息并用简单的逻辑决定将什么消息发送给 Twitter:
清单 3. MQEventMDB.java: onMessage() 方法
public void onMessage(Message msg) {
if(msg == null)return;
if (msg instanceof TextMessage) {
TextMessage txtMsg = (TextMessage) msg;
try {
System.out.println("Received TextMessage: " + txtMsg.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
if (msg instanceof BytesMessage) {
JMSBytesMessage bytesMsg = (JMSBytesMessage) msg;
int bodySize;
try {
bodySize = (int) bytesMsg.getBodyLength();
byte[] data = new byte[bodySize];
bytesMsg.readBytes(data);
ByteArrayInputStream bais = new ByteArrayInputStream(data);
DataInput dataInput = new DataInputStream(bais);
PCFMessage response = new PCFMessage(dataInput);
int reason = response.getReason();
int type = response.getIntParameterValue(MQConstants.MQIACF_OBJECT_TYPE);
if(type == MQConstants.MQOT_Q) {
publishQueueEvent(response, null);
} else {
System.out.println("Object Type received: " + reason);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
更多精彩
赞助商链接