Использование IBM websphere MQ V.8 в приложении .net

#.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)»;