Путаница в том, когда свойства утешения эффективны - PullRequest
0 голосов
/ 27 марта 2019

У нас есть брокер утешения, работающий в док-контейнере. Когда мы создаем фабрику соединений JNDI, существуют свойства по умолчанию, такие как

  • Повторные попытки повторной попытки
  • Подключить попытки повторной попытки
  • Подключение попыток повторной попытки для хоста

и т. Д.

Когда мы устанавливаем производителя с использованием JMS, мы даем свойства, подобные этому

env.put(SupportedProperty.SOLACE_JMS_JNDI_CLIENT_ID, config.getJndiClientID());
env.put(SupportedProperty.SOLACE_JMS_PROP_SENDER_ID, config.getSenderID());
env.put(SupportedProperty.SOLACE_JMS_VPN, config.getVpn());
env.put(SupportedProperty.SOLACE_JMS_JNDI_CONNECT_RETRIES, 0);
env.put(SupportedProperty.SOLACE_JMS_JNDI_RECONNECT_RETRIES, 0);
env.put(SupportedProperty.SOLACE_JMS_JNDI_CONNECT_RETRIES_PER_HOST, 0);

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

Поэтому вопрос, как заставить переопределение этих свойств на стороне клиента, если это вообще возможно? При каких обстоятельствах влияет установка этих свойств на стороне клиента?

Ответы [ 2 ]

1 голос
/ 28 марта 2019

Загрузка JMS ConnectionFactory через JNDI, по определению, представляет собой двухэтапный процесс: сначала API соединяется с JNDI, а затем загружает любой объект JMS ConnectionFactory, который был создан.

Свойство SOLACE_JMS_JNDI_CONNECT_RETRIES (обратите внимание на JNDI ) фактически является параметром для первого шага! Он определяет #retries для связи с JNDI. Если вы хотите изменить определение загруженной JMS ConnectionFactory, вам необходимо это сделать у администратора Solace. Например, в интерфейсе администратора, как показано ниже.

enter image description here

0 голосов
/ 06 апреля 2019

Когда вы используете env.put (), вы пытаетесь установить свойство JMS, используя начальный контекст.Но эти свойства также можно установить с помощью файла свойств JNDI и командной строки.

Если вы включите отладку API, вы сможете увидеть, какое значение откуда взято.

Теперь, когда вы сможете соединиться с фабрикой соединений JNDI на брокере, значения будут взяты со стороны брокера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...