2015-06-25 2 views
1

Я пытаюсь подключиться к существующей очереди JMS с .NET-клиентом. Я знаю, что очередь работает, я уже просматривал ее с помощью IBM MQ Explorer.XMS.NET висит на неопределенный срок на factory.CreateConnection («имя пользователя», null);

В следующем коде вызов 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); 
+0

Какую версию XMS и MQ вы используете? Установили ли вы полный клиент MQ? – Shashi

+0

Я установил mqc7_7.0.1.12_win (клиент MQ) и ia9h_2.0.0.12 (XMS) –

+0

И сама очередь - MQ Explorer показывает 07010003 в свойстве Version. Platform Unix, командный уровень 710. Помогает ли вам эта информация? –

ответ

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.

+0

Ничего себе, меняя неуправляемый, действительно помогли, спасибо. Теперь я получаю исключение {«MQRC_HOST_NOT_AVAILABLE»}, что означает отказ на стороне сервера, правильно? –

+0

Или это также может быть ошибкой в ​​клиенте? –

+0

Проверьте, правильно ли указаны номера хоста и номера в приложении. Если они правильны, проверьте, запущен ли диспетчер очереди и прослушивает этот порт. – Shashi

Смежные вопросы