Requirement:构建一个基于.NET的应用程序,该应用程序可以定期从IBM消息队列读取消息并将这些消息保存在数据库中。
我的解决方案:我创建了一个windows服务应用程序,它在一定的时间间隔内轮询消息队列并处理数据。
轮询的问题是应用进程被轮询间隔延迟。我不能将间隔设置得太短,因为我不确定消息队列中有多少数据以及处理需要多长时间。
问题:使用.NET处理来自WebSphere消息队列的数据的更好方法是什么?一旦到达消息队列,我将如何处理这些数据?
发布于 2015-07-08 11:47:55
您需要的是异步消息传递。这是通过注册回调来实现的,当消息可用时,MQ客户端将调用该回调。请看一下知识中心页面:
.htm
发布于 2015-07-11 11:28:01
您需要使用IBM Message Service Client for .NET (a.k.a. XMS .NET)。此客户端提供消息侦听器功能(基本上是上文提到的回调)。当匹配使用者选择条件的消息到达队列时,将调用消息侦听器。
如果您使用的是MQv7.1或更高版本,则在MQ客户端安装XMS .NET。如果您的版本较低,则需要下载IA9H支持包。您需要在应用程序中引用IBM.XMS程序集。示例随产品一起提供,以演示包括消息侦听器在内的多个特性。
有关详细信息,请参阅产品附带的SimpleAsyncConsumer.cs示例。
https://stackoverflow.com/questions/31286873
复制相似问题