Я уже ходил кругами на этот раз.Я пытаюсь подключиться к диспетчеру распределенной очереди, используя предоставленный файл таблицы каналов.Я могу заставить это работать, если я укажу переменные окружения MQCHLLIB и MQCHLTAB на моем сервере.Однако в документации IBM говорится, что файл конфигурации .net может переопределять эти переменные.
Вот что я поместил в мой файл web.config:
...
<configSections>
<section name="CHANNELS" type="System.Configuration.NameValueSectionHandler" />
</configSections>
<CHANNELS>
<add key="ChannelDefinitionDirectory" value="C:\temp"></add>
<add key="ChannelDefinitionFile" value="DSM_MOM_TEST.tab"></add>
</CHANNELS>
...
А вот код, которыйвыполняется:
Hashtable properties = new Hashtable();
//Add managed connection type to parameters.
const String connectionType = MQC.TRANSPORT_MQSERIES_CLIENT;
properties.Add(MQC.TRANSPORT_PROPERTY, connectionType);
return new MQQueueManager(queueManagerName, properties);
Для queueManagerName задан общий администратор очередей "* Q101T".
Однако это не работает, и возвращается ошибка: 2058 MQRC_Q_MGR_NAME_ERROR
Мне не удалось найти больше документации о том, как заставить это работать, кроме переменных среды, и стандартный файл mqclient.ini должен быть переопределен разделом каналов в web.config.
Isчто-то, что я пропустил в коде?Буду признателен за любые советы.
Редактировать: Я изменил тип соединения на MQC.TRANSPORT_MQSERIES_MANAGED, и я получаю сообщение об ошибке, которую я получаю.Однако теперь я получаю сообщение об ошибке ввода-вывода:
System.IO.IOException не было обработано кодом пользователя. Message = "Произошла ошибка ввода-вывода."Source = "amqmdnet"
StackTrace: at IBM.WMQ.MQChannelTable.CreateChannelEntryLists (MQChannelListEntry nameList)
Я думаю, что это, скорее всего, связано с https://www -304.ibm.com / support / docview.wss? uid = swg1IC69174 так что теперь я жду от ребят из промежуточного ПО, чтобы подтвердить, так ли это, и, надеюсь, предоставить мне новый файл .TAB ...
Edit2 Похоже, это не проблема.Я запустил трассировку MQ, и она дает ошибку, потому что не может найти файл AMQCLCHL.TAB.Я не понимаю, почему он все еще ищет этот файл.Следует использовать таблицу каналов, указанную в моем web.config.Кто-нибудь знает, почему он не собирает эти значения?