java - 关于 Solace 属性何时有效的困惑

标签 java docker jms solace

我们有一个在 Docker 容器中运行的安慰代理。当我们创建 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);

但是,在应用程序运行时以及建立连接时,我在客户端设置的这些属性似乎不起作用。具体来说,我可以通过停止 solace 的 docker 容器并看到它尝试重新连接 3 次来测试这一点,这正是代理端的默认情况。

因此,问题是,如果可能的话,如何在客户端强制覆盖这些属性?在客户端设置这些属性什么情况下会生效?

最佳答案

根据定义,通过 JNDI 加载 JMS ConnectionFactory 是一个两步过程:首先 API 连接到 JNDI,然后加载已创建的任何 JMS ConnectionFactory 对象。

属性SOLACE_JMS_JNDI_CONNECT_RETRIES(注意JNDI)实际上是第一步的参数!它定义了用于联系 JNDI 的#retries。如果您想要更改加载的 JMS ConnectionFactory 的定义,您需要在 Solace 管理员中执行此操作。例如,在管理 GUI 中,如下所示。

enter image description here

关于java - 关于 Solace 属性何时有效的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55385216/

相关文章:

java - 获取列表Java中最旧的时间戳

docker - 什么是 docker-compose.yml 文件?

php - 在 docker php 7.3 上启用 APCU CLI

Windows 上 Docker 容器中的 Postgresql : How to persist data to a local windows folder

java - IBM MQ JMS java 监听器代码保持程序运行

java - 在 HashMap 中增加一个整数

java - 在 java 中显示 jTable 中的第一行 SQL

java - Maven:使用 jar-with-dependencies 分发源代码

java - 始终确保 ActiveMQ 主题中只有最后 10 条消息

ssl - Jmeter 2.9 JMS SSL配置