C# - 使用MQRC_HOST_NOT_AVAILABLE(2538)

时间:2017-02-21 13:40:28

标签: c# ibm-mq

我试图通过我正在处理的C#客户端访问Websphere

  

MQRC_HOST_NOT_AVAILABLE / 2538

错误。

我已经安装了WMQ WS_MQ_FOR_WINDOWS_V8.0(我认为是MQ服务器版本8.0.5),只有客户端安装选项

amqmdnet.dll

引用C:\Program Files\IBM\WebSphere MQ\bin

我开始编写示例代码,最终版本如下:

namespace WebsphereMQ
{
    class Program
    {

        const String qManager = "AQMNAME"; //All uppercase
        const String hostName = "ASERVER"; //pinging server name resolves IP successfully. I have also tried using IP which didn't work either
        const String channel = "AQMNAME_CONN"; //All uppercase
        const String port = "1415"; 
        const String sslKeyRepository = @"D:\d\Projects\MyProject\Client\client_4_myapp"; 
        //.kdb file name without extension
        const String cipherSpec = "TLS_RSA_WITH_AES_256_GCM_SHA384";
        const String cipherSuite = "SSL_RSA_WITH_AES_256_GCM_SHA384";

        public static Hashtable init()
        {
            Hashtable properties = new Hashtable();

            //properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
            properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED); 
            properties.Add(MQC.HOST_NAME_PROPERTY, hostName);
            properties.Add(MQC.PORT_PROPERTY, port);
            properties.Add(MQC.CHANNEL_PROPERTY, channel);

            properties.Add(MQC.SSL_CERT_STORE_PROPERTY, sslKeyRepository);
            properties.Add(MQC.SSL_CIPHER_SPEC_PROPERTY, cipherSpec);
            properties.Add(MQC.SSL_CIPHER_SUITE_PROPERTY, cipherSuite);



            //properties.Add(MQC.USER_ID_PROPERTY, "someUsername");
            //properties.Add(MQC.PASSWORD_PROPERTY, "somePassword1");


            return properties;
        }

        public static void ConnectToMQ()
        {
            try
            {
                Hashtable connectionProperties = init();
                //Exception is thrown by the line below
                MQQueueManager qMgr = new MQQueueManager(qManager, connectionProperties);

            }
            catch (MQException ex)
            {
                Console.WriteLine("A WebSphere MQ error occurred: {0}", ex.ToString());
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("A System error occurred: {0}", ex.ToString());
            }
        }
        static void Main(string[] args)
        {
            ConnectToMQ();
        }
    }
}

我已经尝试过CLIENT和MANAGED传输属性而没有运气。

服务器已启动并正在运行。

我在进行Telnet时可以访问服务器。

服务器端没有生成日志。

客户端installdir上没有生成日志。

在事件回顾中,我找到了这些:

  

21.02.2017 14:54:57 - 进程(4176.1)用户(mypcusername)程序(ereMQ.vshost.exe)主机(mypcname)安装(Installation1)   VRMF(8.0.0.0)

     

对地址' ASERVER'进行慢速DNS查询。

     

尝试解析地址' ASERVER'使用' getaddrinfo'   函数调用花了7秒钟才完成。这可能表明了   DNS配置存在问题。

并且

  

21.02.2017 14:54:57 - 进程(4176.1)用户(mypcusername)程序(ereMQ.vshost.exe)主机(mypcname)安装(Installation1)   VRMF(8.0.0.0)

     

远程主机' ASERVER'不可用,稍后重试。

     

尝试使用TCP / IP分配对话来托管   ' Aserver的'对于频道AQMNAME_CONN未成功。然而   错误可能是暂时的,也许是可能的   稍后成功分配TCP / IP对话。 & P在某些情况下   远程主机无法确定,因此显示为' ????'。

然后我再次将主机名更改为IP地址,但没有运气。我还尝试省略port属性并在hostName中提供端口信息。在这种情况下,正在使用默认端口(1414),它也没有工作。

任何帮助都将不胜感激。

0 个答案:

没有答案