Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检测站点MQ管理器再次可用_C#_Ibm Mq - Fatal编程技术网

C# 检测站点MQ管理器再次可用

C# 检测站点MQ管理器再次可用,c#,ibm-mq,C#,Ibm Mq,我有一个C#应用程序,它从WebSphere队列(MQ 7.5版)读取消息,并将它们提交给另一个应用程序,我需要更新该应用程序以适应队列管理器停止或断开连接时的情况。我已更新队列管理器属性以添加“自动重新连接”选项,但我很难检测到队列管理器是否再次可用 我的应用程序等待消息出现在队列上最多3秒钟,然后,如果没有消息出现,则在循环并再次等待排队消息之前执行其他内务管理检查 我的队列管理器初始化现在包括以下语句 QueueManagerProperties.Add(MQC.CONNECT_OPTIO

我有一个C#应用程序,它从WebSphere队列(MQ 7.5版)读取消息,并将它们提交给另一个应用程序,我需要更新该应用程序以适应队列管理器停止或断开连接时的情况。我已更新队列管理器属性以添加“自动重新连接”选项,但我很难检测到队列管理器是否再次可用

我的应用程序等待消息出现在队列上最多3秒钟,然后,如果没有消息出现,则在循环并再次等待排队消息之前执行其他内务管理检查

我的队列管理器初始化现在包括以下语句

QueueManagerProperties.Add(MQC.CONNECT_OPTIONS_PROPERTY, MQC.MQCNO_RECONNECT);
我可以看到,当我停止MQ服务器上的队列管理器时,如果QueueManager属性IsConnectioned变为false。如果在断开队列管理器的连接时尝试从队列执行“Get”操作,则会从底层IBM MQ接口库中收到“Object not set to a instance”错误

但是,当我在MQ服务器上重新启动队列管理器时,我的应用程序中的IsConnected选项仍然为false,因此我无法检测再次尝试从队列读取消息的安全性。无论我做什么,我似乎都无法检测到队列管理器已重新连接,因此应用程序再也不会开始读取消息


任何关于我需要更新的建议都将不胜感激

如果使用了自动客户端重新连接功能,则
Get
调用将启动与队列管理器的重新连接。重新连接过程正在进行时,
Get
将显示为挂起。如果调用返回异常,则为错误。你是最新的补丁包吗?此错误可能已在最新的修复包中修复。

请确保您正在通过
客户端通道定义表进行连接。
MQ.NET客户端将尝试重新连接到队列,默认时间为30分钟。若在30分钟内失败,那个么应用程序必须再次发出“连接”调用。那么,在应用程序发出“Get”调用多长时间之后?在我的测试环境中,我尝试在5分钟内重新连接。但是,我注意到,如果在断开队列管理器的连接时尝试“Get”命令,底层IBM库将崩溃,并出现“Object not set to a instance”错误。i、 e.当与MQ服务器的连接中断时,我似乎无法发出Get命令。