我们目前正在构建一个需要与某些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. JMS和ActiveMQ,如何在断开连接时接收通知?
- 2. WMQ(IBM Queue)连接超时
- 3. 当互联网连接或断开连接时收到通知
- 4. 如何在iOS连接或断开连接时获得通知?
- 5. IBM Case Manager连接
- 6. 断开Asterisk Manager的连接时出错
- 7. iOS - 当蓝牙设备断开连接时收到通知
- 8. grpc客户端断开连接时可以收到通知吗?
- 9. 显示器连接或断开连接时的通知
- 10. 如何通知互联网连接断开,但WiFi仍连接
- 11. 如何在客户端断开连接时获取NSNetService通知?
- 12. Android Wear断开连接通知
- 13. 每次通知wifi已断开连接
- 14. 每次通知wifi断开连接
- 15. 通知呼叫断开连接Twilio Android
- 16. 通过SSL连接到IBM Tivoli Directory时LDAP搜索断开连接
- 17. iOS通知连接状态更改断开连接并返回
- 18. Pusher.com - 在有人连接/断开连接时获取通知的服务器端
- 19. 如何知道何时蓝牙在Android 1.5上断开连接?
- 20. 断开连接时销毁socket.io连接
- 21. 如何确定连接何时断开?
- 22. 如何在生产者连接中断时得到通知?
- 23. 如何获得客户端断开连接的通知?
- 24. 如何获取网络更改通知(连接,断开,更改)
- 25. Objective-C如何编写Wifi断开连接弹出通知?
- 26. Flash Builder更新查询问题 - 通道断开连接在收到确认之前,通道断开连接
- 27. 如何断开Postgrex连接?
- 28. WebSockets:如何在客户端连接断开时通知所有订户?
- 29. SSIS - 连接断开时
非常感谢!那就是我一直在寻找的东西! – DaeMoohn 2009-11-20 07:32:06
它说没有找到文件。这不是免费的,还是我应该使用公司凭据? – DaeMoohn 2009-11-20 07:59:40
有人可以提供一个代码样本吗?我没有找到.NET类的任何东西。 – DaeMoohn 2009-11-20 08:46:25