我们目前正在构建一个需要与某些IBM WebSphere队列进行通信的应用程序。在队列的另一头还有另一个世界。由于一些未知的情况(对我而言),连接到MQQueueManager每次需要17秒,但通过队列发送和接收消息并不是一件耗时的工作。因为我们现在将一个Web服务放在WebSphere前面,所以我们提出了装饰和缓存MQQueueManagers和MQQueues的想法,并在每个消息发送之前验证它们是否已连接并分别打开;如果没有,我们尝试连接到MQQueueManager,分别打开MQQueue(再次,连接到MQQueueManager需要17秒,打开MQQueue是“即时”)。所以我们期待WebSphere每一次都会断开与MQQueueManager的连接(我无法确定,因为我们现在不能进行严格的测试,但我们应该谨慎),而不幸的调用程序会等待17秒才能重新连接。就目前而言,我们无法预测这种事情的发生。 我们当前的实现使用.NET的WebSphere MQ类。当MQQueueManager断开连接或关闭相关队列时,是否有可能收到回调通知?如何在IBM Queue Manager断开连接时接收通知?
1
A
回答
1
是的!如果您使用最新的WMQ .Net类和最新的IA9H SupportPac,您将获得异步回调方法。 (这里附带.Net示例代码,演示如何注册和使用回调函数)。我的理解是,如果连接是可用的,则此方法会在您的回调例程有消息时传递消息,或者向注册的异常侦听器传递例外丢失或队列设置为GET(DISABLED)
。
获取最新的WMQ客户端here。使用名称MQC *查找SupportPacs。 v8.0客户端是MQC8,v9客户端是MQC9等。
如果您有旧版本的.Net WMQ类,并且由于某种原因无法升级,您可以始终保持单独的线程打开并定期轮询队列。不过,不要频繁轮询。在过去,我看到人们使用类变量作为倒数计时器。每次成功检索消息或将其放入队列时,定时器都会重置为最大值。当计时器达到零时,轮询队列。这样,只有在连接上没有其他流量时才轮询队列。
相关问题
- 1. WMQ(IBM Queue)连接超时
- 2. IBM Case Manager连接
- 3. grpc客户端断开连接时可以收到通知吗?
- 4. 如何通知互联网连接断开,但WiFi仍连接
- 5. 如何在客户端断开连接时获取NSNetService通知?
- 6. Android Wear断开连接通知
- 7. 通过SSL连接到IBM Tivoli Directory时LDAP搜索断开连接
- 8. 如何知道何时蓝牙在Android 1.5上断开连接?
- 9. 断开连接时销毁socket.io连接
- 10. 如何在生产者连接中断时得到通知?
- 11. Objective-C如何编写Wifi断开连接弹出通知?
- 12. 如何获取网络更改通知(连接,断开,更改)
- 13. Flash Builder更新查询问题 - 通道断开连接在收到确认之前,通道断开连接
- 14. 如何断开Postgrex连接?
- 15. WebSockets:如何在客户端连接断开时通知所有订户?
- 16. SSIS - 连接断开时
- 17. 如何从接收器应用程序断开连接?
- 18. 接收通知
- 19. 如何在RabbitMQ Queue中添加新消息时收到通知?
- 20. 如何断开连接时重新连接到SQLServer?
- 21. 警告:远程连接断开连接,连接到169.254.169.254超时
- 22. 如何在一段时间间隔后使HTTP连接超时/断开连接?
- 23. Socket.IO在轮询时没有收到断开连接事件
- 24. 如何断开连接与连接管理器在WEC7
- 25. 如何在连接后测试TCPClient断开的连接?
- 26. 苹果推送通知网关连接,未收到通知
- 27. socket.io断开连接事件,客户端断开连接检测
- 28. 断开连接之前的NodeJS连接
- 29. Android BLE GATT断开连接与设备断开连接
非常感谢!那就是我一直在寻找的东西! – DaeMoohn 2009-11-20 07:32:06
它说没有找到文件。这不是免费的,还是我应该使用公司凭据? – DaeMoohn 2009-11-20 07:59:40
有人可以提供一个代码样本吗?我没有找到.NET类的任何东西。 – DaeMoohn 2009-11-20 08:46:25