XMS.NET висит бесконечно на фабрике.CreateConnection("имя пользователя", ноль);
Я пытаюсь подключиться к существующей очереди JMS с клиентом.NET. Я знаю, что очередь работает, я уже просматривал ее с помощью IBM MQ Explorer.
В следующем коде вызов factory.CreateConnection продолжает зависать - он не переходит на следующую строку и не показывает никакого сообщения об ошибке. Он даже не потребляет процессор.
Есть ли какие-либо варианты, которые я должен попытаться заставить это работать (или по крайней мере заставить это показывать мне сообщение об ошибке любого вида)?
private static IConnectionFactory GetConnectionFactory()
{
var factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
var cf = factoryFactory.CreateConnectionFactory();
cf.SetStringProperty(XMSC.WMQ_HOST_NAME, "server address");
cf.SetIntProperty(XMSC.WMQ_PORT, portnumber);
cf.SetStringProperty(XMSC.WMQ_CHANNEL, "channelname");
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "queuemanager");
cf.SetIntProperty(XMSC.WMQ_BROKER_VERSION, XMSC.WMQ_BROKER_UNSPECIFIED);
return (cf);
}
Основной метод имеет следующее:
var factory = GetConnectionFactory();
var connection = factory.CreateConnection("username", null);
1 ответ
Я не вижу никаких проблем с вашим кодом, протестировал его с MQ v8 и работает нормально. Я бы предложил вам сделать:
1) XMS также может работать в неуправляемом режиме. Так что меняй
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
в
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT_UNMANAGED)
и посмотрим, поможет ли это.
2) Когда вызов зависает, перейдите в режим отладки и посмотрите стек вызовов, чтобы определить точку зависания. Это может быть ожидание какого-либо системного события, если не используется ЦП.
3) Откройте PMR с IBM.