轮询IBM Websphere Message Queue

时间:2015-07-08 08:05:27

标签: .net architecture ibm-mq

要求:构建基于.NET的应用程序,该应用程序可以定期从IBM Websphere Message Queue读取消息并将这些消息保存在数据库中

我的解决方案:我创建了一个Windows服务应用程序,它以特定间隔轮询Message Queue并处理数据。

轮询问题是应用程序进程因轮询间隔而延迟。我无法将间隔设置得太短,因为我不确定Message Queue中将有多少数据以及处理所需的时间。

问题:使用.NET从WebSphere Message Queue处理数据的更好方法是什么?如何在到达消息队列后立即处理数据?

2 个答案:

答案 0 :(得分:1)

您需要的是异步消息传递。这通过注册回调来工作,MQ客户端将在消息可用时调用该回调。请查看知识中心页面:

http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.dev.doc/q023050_.htm

答案 1 :(得分:1)

您需要使用IBM Message Service Client for .NET (a.k.a. XMS .NET)。此客户端提供消息侦听器功能(基本上是Tim上面提到的回调)。当符合消费者选择标准的消息到达队列时,将调用消息侦听器。

如果您使用的是MQ v7.1或更高版本,则XMS .NET随MQ客户端一起安装。如果您使用的是较低版本,则需要下载IA9H支持包。您需要在应用程序中引用IBM.XMS程序集。样本随产品一起提供,以演示一些功能,包括Message Listener。

请查看产品随附的SimpleAsyncConsumer.cs示例以获取详细信息。