У меня есть клиент MQ, который работает успешно, и сообщения доступны с его помощью.Я занят написанием приложения C# IBM MQ Client и продолжаю получать «Исключение: инициализатор типа для« IBM.WMQ.Nmqi.UnmanagedNmqiMQ »сделал исключение».
Мы установили необходимые переменные окружения: MQCHLLIB и MQCHLTAB и MQSSLKEYR.
Файл .TAB находится в правой папке. Однако, когда я выполнить следующий код:
private static bool ConnectMq()
{
try
{
queueManager = new MQQueueManager("ECG_MBTST_QM", Init(false));
queueManager.Connect();
if (queueManager.IsConnected)
{
Console.WriteLine("Connected...");
}
return true;
}
catch (MQException exp)
{
Console.WriteLine("Exception Message: " + exp.Message);
}
catch (Exception exp)
{
Console.WriteLine("Exception: " + exp.Message);
}
return false;
}
private static Hashtable Init()
{
Hashtable properties;
properties = new Hashtable
{
{MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT}
};
return properties;
}
Я получаю сообщение об ошибке, как описано. У меня нет выбора, кроме как использовать файл CCDT, как это указал хост сервера. Я считаю, что сервер v7, и я ссылаюсь на библиотеки WM8 v8. В теории это должно сработать.
Я попытался с помощью стандартного набора свойств, а также (значения были изменены в целях безопасности):
properties = new Hashtable
{
{MQC.TRANSPORT_PROPERTY, "TCP"},
{MQC.CHANNEL_PROPERTY, "Channel"},
{MQC.CONNECTION_NAME_PROPERTY, "IBM_MQ_Conn"},
{MQC.PORT_PROPERTY, "1414"},
{MQC.HOST_NAME_PROPERTY, "IP Address"},
{MQC.SSL_CIPHER_SPEC_PROPERTY, "TLS_RSA_WITH_AES_128_CBC_SHA"}
};
Но когда я использовать вышеуказанные свойства я получаю ошибку 2538 - хост не доступно. Есть ли что-то, что мне не хватает в отношении того, как использовать файл CCDT и C# вместе?
Заранее спасибо.
редактировать - в соответствии с просьбой JoshMC
Это последняя запись из файла AMQERR01.LOG:
1/18/2017 1:51:05 AM - Process(3272.1) User(andrewhuntley) Program(MQ app.exe)
AMQ9202: Remote host '192.168.150.102' not available, retry later.
EXPLANATION:
The attempt to allocate a conversation using TCP/IP to host '192.168.150.102'
for channel (Exception) was not successful. However the error may be a
transitory one and it may be possible to successfully allocate a TCP/IP
conversation later.
In some cases the remote host cannot be determined and so is shown as '????'.
ACTION:
Try the connection again later. If the failure persists, record the error
values and contact your systems administrator. The return code from TCP/IP is 0
(X'0'). The reason for the failure may be that this host cannot reach the
destination host. It may also be possible that the listening program at host
'192.168.150.102' was not running. If this is the case, perform the relevant
operations to start the TCP/IP listening program, and try again.
----- MQTCPConnection.cs : 357 ------------------------------------------------
Пожалуйста, обратите внимание, что сервер запущен и доступен, как я могу подключиться к нему используя установленный клиент IBM.
Смотрите, если у вас есть какая-либо ошибка в 'errors' директории под IBM MQ v8 каталога установки, если поэтому какая ошибка вы видите, что соответствует времени ошибки, получаемой вашим клиентом с помощью CCDT.Пожалуйста, обновите вопрос с этими подробностями. – JoshMc
В каталоге ошибок нет ошибок, так как Клиент, которого я пишу, является автономным. Установленный v7.5 клиент MQ работает на 100% штрафа, как указано. Однако я отредактировал вопрос по вашему запросу, предоставив журнал из файла ошибки в моем местоположении клиента. – Vaelen
Какой конкретный автономный клиент MQ v8 вы установили (например: 8.0.0.4)? – JoshMc