我试图通过我正在处理的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),它也没有工作。
任何帮助都将不胜感激。