WebSphere MQ - Изменение структуры определения канала с использованием API-интерфейса XMS.NET

Я пытаюсь установить свойства структуры MQCD, в частности HeartBeatInterval, используя XMS.NET API.

Предыстория: у меня есть клиентские приложения (в.NET), использующие API-интерфейс XMS.NET для чтения сообщений из WebSphere MQ. Я использую режим ClientAcknowledge. Если клиент читает сообщение и не подтверждает его, WebSphere MQ ждет 300 секунд, прежде чем истечет время ожидания, и делает (возвращает) сообщение доступным в исходной очереди, чтобы другие клиенты могли прочитать сообщение.

Задача: я хочу уменьшить время ожидания с 300 секунд.

Наш администратор MQ предложил изменить свойство HearBeatInterval на канале. Но изменение не имеет значения.

Очевидно, что каким-то образом установка свойства HeartBeatInterval канала на стороне клиента (наряду с настройкой канала на стороне сервера) заставит его работать. Я пытаюсь установить это значение в клиентском приложении. Но API-интерфейс XMS не имеет свойства, соответствующего свойству MQCD.HeartBeatInterval.

Любое понимание в выполнении этой задачи по уменьшению тайм-аута сообщения? или даже установив HeartBeatInterval на стороне клиента - если это способ сделать это.

2 ответа

Конечно, это правда, что фактическое согласованное значение интервала пульса будет принимать наибольшее число из значений пульса на стороне клиента и на стороне сервера, т.е. будет использоваться наименее частый интервал. Если вы хотите более короткий интервал, вам нужно изменить оба конца.

Вместо того, чтобы кодировать это в своем приложении, почему бы не использовать CCDT? Это более гибко, если вы передумаете о ценности для использования и захотите снизить или повысить ее в будущем.

Дальнейшее чтение

  1. Использование таблицы определения канала клиента с.NET

Я думаю, что вы можете использовать интервал Disconnect (DISCINT) атрибут канала подключения к серверу для завершения соединений из зависших приложений. По умолчанию DISCINT установлен на 0, что означает, что он отключен. Вы можете установить значение, соответствующее вашим требованиям. Подробнее читайте здесь: http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.ref.con.doc/q081860_.htm

Вот пример фрагмента для использования CCDT в приложении XMS .NET.

        // Get an instance of factory.
        factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);

        // Create WMQ Connection Factory.
        cf = factoryFactory.CreateConnectionFactory();

        // Use CCDT URL for client connection.
        cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "QM1");
        cf.SetStringProperty(XMSC.WMQ_CCDTURL, "file://C:\\ProgramData\\IBM\\MQ\\qmgrs\\QM1\\@ipcc\\AMQCLCHL.TAB");

        // Create connection.
        connectionWMQ = cf.CreateConnection();
Другие вопросы по тегам