Как установить свойства раздела без файла mqclient.ini в клиенте Java IBM MQ? - PullRequest
0 голосов
/ 14 ноября 2018

Я ищу способ программно установить клиентские атрибуты внутри клиентского приложения IBM MQ Java. Я действительно понимаю, что IBM предоставляет способ конфигурирования MQ-клиентов с использованием mqclient.ini файла , однако из-за характера развертывания и распространения приложения, над которым я работаю, невозможно использовать такой файл , Следовательно, я хочу установить атрибут stanza, который обычно определяется в INI-файле внутри блока конфигурации соединения моего кода.

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

В частности, меня интересует установка атрибута KeepAlive в разделе TCP на YES. До сих пор я пробовал следующие способы достижения этого с помощью MQQueueConnectionFactory:

connectionFactory.setStringProperty("KeepAlive", "YES");

connectionFactory.setStringProperty("com.ibm.mq.cfg.TCP.KeepAlive", "YES");

connectionFactory.setBooleanProperty("KeepAlive", true);

connectionFactory.setBooleanProperty("com.ibm.mq.cfg.TCP.KeepAlive", true);

Однако ни один из них не имел никакого эффекта.

Для записи я использую классы IBM MQ для JMS версии 8.

1 Ответ

0 голосов
/ 14 ноября 2018

Для этой цели можно использовать системные свойства Java.

Следующие системные свойства Java будут прочитаны классами IBM MQ для JMS, чтобы указать ему использовать TCP KeepAlive:

com.ibm.mq.cfg.TCP.KeepAlive=YES

Чтобы установить это программно, просто используйте метод System.setProperty, например:

System.setProperty("com.ibm.mq.cfg.TCP.KeepAlive","YES");

Oracle документирует метод setProperty в Class System :

setProperty

public static String setProperty(String key,
                                 String value)

Устанавливает системное свойство, указанное указанным ключом.


IBM "слабо" документирует настройку mqclient.ini как системное свойствостраница Центра знаний IBM MQ v8 Классы конфигурации IBM MQ для файла конфигурации JMS :

Переопределяющие свойства, указанные в файле конфигурации клиента IBM MQ MQI

Файл конфигурации клиента IBM MQ MQI также может указывать свойства, используемые для настройки классов IBM MQ для JMS.Однако свойства, указанные в файле конфигурации клиента IBM MQ MQI, применяются только тогда, когда приложение подключается к администратору очередей в режиме клиента.

При необходимости вы можете переопределить любой атрибут в файле конфигурации клиента IBM MQ MQI, указавэто свойство в файле классов IBM MQ для файла конфигурации JMS.Чтобы переопределить атрибут в файле конфигурации клиента IBM MQ MQI, используйте запись в следующем формате в файле конфигурации классов IBM MQ для JMS:

com.ibm.mq.cfg. stanza. propName = propValueCopy

Переменные в записи имеют следующие значения:

  • раздел Имя раздела в файле конфигурации клиента IBM MQ MQI, содержащего атрибут

  • propName Имя атрибута, указанное в файле конфигурации клиента IBM MQ MQI

  • propValue Значение свойства, которое переопределяет значение атрибутауказанный в файле конфигурации клиента IBM MQ MQI

Кроме того, вы можете переопределить атрибут в файле конфигурации клиента IBM MQ MQI с помощью , указав свойство в качестве системного свойства в команде java.Используйте предыдущий формат, чтобы указать свойство как системное свойство.

...