【问题标题】:Connecting to remote queue manager using C# and .Net使用 C# 和 .Net 连接到远程队列管理器
【发布时间】:2011-05-05 07:31:41
【问题描述】:

我使用这个函数调用编写了一个连接到本地队列管理器的应用程序:

MQQueueManager mqQMgr = new MQQueueManager("QM_QueueManagerName");

现在我需要连接到另一台计算机上的远程队列管理器。

我可以使用 MQ Explorer 从我的开发 PC 成功连接到远程队列管理器,使用 QM_ComputerName 作为队列管理器名称,S_ComputerName 作为通道,ComputerName 作为连接名称。所以它可以从我的桌面访问。

但是,当我尝试通过 .Net 连接时,无论我尝试什么,我都会收到 MQRC_Q_MGR_NAME_ERROR

我尝试指定

MQEnvironment.Hostname = "ComputerName";
MQEnvironment.Channel = "S_ComputerName ";

and then calling

mqQMgr = new MQQueueManager("QM_ComputerName");

I also tried  calling 

mqQMgr = new MQQueueManager("QM_ComputerName", "S_ComputerName", "ComputerName");

我在这两种情况下都会出错。

谁能给点建议?

【问题讨论】:

    标签: c# ibm-mq


    【解决方案1】:

    也许this sample code 会有所帮助。

    我链接到 V7 文档。理想情况下,您将同时使用 V7 客户端并与 V7 服务器通信,因为与 V6 相比,.Net 功能在这些方面得到了很大改进。此外,V6 已于 2011 年 9 月结束生命周期,因此最好现在直接升级到 v7 并避免以后升级。

    如果您需要包含更新的 .Net 示例和类的 v7 WMQ 客户端,请转到 IBM MQ Client Downloads 页面(需要 IBM ID,但可以免费下载)。

    更新 20180810: 将链接更改为指向 IBM 的所有 IBM MQ 客户端下载的新页面。

    【讨论】:

    • 是的,这就是我要找的。我也会发布我的代码 sn-p。
    • 链接不再可用。
    • IBM 在“所有 IBM MQ 客户端下载”页面上不包含 9.0 或 9.1 :(。Google 搜索 MQC9 或 MQC91 会找到这些。
    • 页面似乎出现了倒退。作为谷歌的替代方案,我联系了赫斯利并要求他们修复该页面或将其停用。如前所述,这些以 SupportPac 的形式提供,因此如果页面消失,您可以随时访问 SupportPac 页面或 Google(如果您知道 SupportPac 名称)。希望它会得到修复和更密切的监控。
    【解决方案2】:

    这就是我让它工作的方式:

     MQQueueManager mqQMgr=null;
    
       Hashtable props = new Hashtable();
    
    props.Add(MQC.HOST_NAME_PROPERTY, "HostNameOrIP");
    
       props.Add(MQC.CHANNEL_PROPERTY, "ChannelName");
    
       props.Add(MQC.PORT_PROPERTY, 1414); // port number
    
       props.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);
    
       MQQueue mqQueue = null;
    
       try
    
       {
    
          mqQMgr = new  MQQueueManager("QueueManagerName", props);
    
          mqQueue = mqQMgr.AccessQueue(
                   QueueName,
                   MQC.MQOO_OUTPUT                   // open queue for output
                   + MQC.MQOO_FAIL_IF_QUIESCING);   // but not if MQM stopping
       }
    
       catch (MQException mqe1)
    
       {
    
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多