#.net #ibm-mq
#.net #ibm-mq
Вопрос:
Я хочу создать приложение, которое будет использовать websphere MQ в .net. Я создал QueueManager , локальную очередь и каналы, но я получаю ошибку MQRC_UNKNOWN_CHANNEL_NAME. Но я сталкиваюсь с ошибкой при подключении к MQQueueManager. Ниже приведен мой код `
public partial class Form3 : Form
{
const String connectionType = MQC.TRANSPORT_MQSERIES_CLIENT;
// Define the name of the queue manager to use (applies to all connections)
const String qManager = "QM1";
// Define the name of your host connection (applies to client connections only)
const String hostName = "aspireggn69(1415)";
// Define the name of the channel to use (applies to client connections only)
const String channel = "QM2Q2";
public Form3()
{
InitializeComponent();
Accept();
}
static Hashtable init(String connectionType)
{
Hashtable connectionProperties = new Hashtable();
// Add the connection type
connectionProperties.Add(MQC.TRANSPORT_PROPERTY, connectionType);
// Set up the rest of the connection properties, based on the
// connection type requested
switch (connectionType)
{
case MQC.TRANSPORT_MQSERIES_BINDINGS:
break;
case MQC.TRANSPORT_MQSERIES_CLIENT:
case MQC.TRANSPORT_MQSERIES_XACLIENT:
case MQC.TRANSPORT_MQSERIES_MANAGED:
connectionProperties.Add(MQC.HOST_NAME_PROPERTY, hostName);
connectionProperties.Add(MQC.CHANNEL_PROPERTY, channel);
break;
}
return connectionProperties;
}
public void Accept()
{
try
{
Hashtable connectionProperties = init(connectionType);
## Here I am getting error ##
**MQQueueManager qMgr = new MQQueueManager(qManager, connectionProperties);**
}
catch (MQException ex)
{
throw;
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
}`
Я не уверен, какой тип канала мне нужно создать для использования сообщений в Websphere MQ. Любая помощь очень ценится.
Ниже приведен снимок канала
Спасибо
Комментарии:
1. Для подключения удаленных приложений к QM необходим канал подключения к серверу. Приложениям, работающим на том же сервере, что и QM, не нужен канал, но необходимо использовать привязки типов соединений.
2. Вы уверены, что
QM2Q2
это правильный клиентский канал?3. Аттила Репаси: Спасибо за ваш быстрый ответ. Я создал канал как серверное соединение и очередь как локальную очередь. Но мой канал всегда отображается неактивным, даже если я запускаю его, щелкнув по нему правой кнопкой мыши. Я использую для этого MQ explorer. Есть ли какая-либо ссылка или статья, в которых пошагово описывается, как использовать websphere MQ V.8 в .net?? Я пробовал эту ссылку, но она не работает c-sharpcorner.com/article /…
Ответ №1:
Вам необходимо создать канал подключения к серверу (SVRCONN) в диспетчере очередей. Для создания канала можно использовать либо MQExplorer, либо MQSC Shell. Если вы используете MQSC — выполните команду
DEFINE CHANNEL (QM2Q2) CHLTYPE(SVRCONN)
.
Это самая простая форма, но ее достаточно для начала.
После этого вам необходимо настроить полномочия для подключения к диспетчеру очередей и работы с очередями. Обратитесь за помощью сюда.
Комментарии:
1. В свете вопроса OP имя канала в этом примере не будет работать.
2. @shashi: Спасибо за ваш ответ. Я создал канал подключения к серверу (SVRCONN) и локальную очередь, и я использую MQExplorer. Я добавил текущего пользователя в группу MQM и добавил имя пользователя в атрибут MCA канала. Он всегда показывает неактивный статус, даже если я его запустил. Я взял ссылку на c-sharpcorner.com/article /… но он выдает мне код ошибки 2035.
3. Спасибо, Мораг. Я надеялся, что @Naveen изменит имя.
4. Канал будет запущен, как только приложение подключится к диспетчеру очередей. Проверьте журналы ошибок диспетчера очередей для получения более подробной информации о том, какой идентификатор пользователя получает диспетчер очередей.
5. Шаши : Я обновил конфигурации . Имя_ очереди = «QMngr_Naveen. LOCAL.ONE»; ChannelInfo = «QMngr_Naveen. SVRCONN/TCP/naveen-PC(1414)»;