C# 写入WebSphere群集队列失败
我有一个C#服务,它使用IBM提供的.Net MQ接口库从WebSphere MQ队列读取消息,将它们发送到另一个应用程序进行处理,然后将响应写入另一个队列 当我连接到响应队列时,我的代码如下所示(现场的MQ设计人员告诉我,响应队列管理器应始终使用与请求队列管理器相同的句柄) QueueName变量设置为请求消息中的ReplyTo队列名称(如果存在),或默认值(如果缺少)C# 写入WebSphere群集队列失败,c#,ibm-mq,C#,Ibm Mq,我有一个C#服务,它使用IBM提供的.Net MQ接口库从WebSphere MQ队列读取消息,将它们发送到另一个应用程序进行处理,然后将响应写入另一个队列 当我连接到响应队列时,我的代码如下所示(现场的MQ设计人员告诉我,响应队列管理器应始终使用与请求队列管理器相同的句柄) QueueName变量设置为请求消息中的ReplyTo队列名称(如果存在),或默认值(如果缺少) var ResponseQueueManager = RequestQueueManager; var ResponseQu
var ResponseQueueManager = RequestQueueManager;
var ResponseQueue = ResponseQueueManager.AccessQueue(QueueName,
MQC.MQOO_OUTPUT,
ResponseQueueManager.Name,
null,
null);
如果响应队列名称不是集群队列,这一切都可以正常工作。但是,如果我尝试写入集群环境,我会在写入时收到MQenvironment抛出的未知\u对象\u名称错误,尽管我知道队列名称是有效的。我是否需要在AccessQueue调用上设置其他属性
我设法从同一队列管理器上的队列中读取了数据,因此我不明白为什么在群集环境中回写到同一队列管理器下的队列。未知对象\u名称是因为MQ无法解析响应队列。应用程序连接到的队列管理器上不存在该队列。该队列可能存在于群集中的另一个队列管理器上,但它不是共享的。因此,请检查您的响应队列定义。如果您同时使用队列名称和队列管理器名称打开集群队列,MQ将仅解析该队列管理器上的队列。如果集群队列仅存在于其他队列管理器上,MQ将不会解析它。尝试在没有队列管理器名称的情况下打开队列,MQ将根据您配置的工作负载平衡策略解析确实存在的实例之一。未知的\u对象\u名称是因为MQ无法解析响应队列。应用程序连接到的队列管理器上不存在该队列。该队列可能存在于群集中的另一个队列管理器上,但它不是共享的。因此,请检查您的响应队列定义。如果您同时使用队列名称和队列管理器名称打开集群队列,MQ将仅解析该队列管理器上的队列。如果集群队列仅存在于其他队列管理器上,MQ将不会解析它。尝试在不使用队列管理器名称的情况下打开队列,MQ将根据您配置的工作负载平衡策略解析其中一个确实存在的实例。