我们有一个在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);
但是在应用程序运行时和连接建立时,似乎我在客户端设置的这些属性不起作用。具体来说,我能够通过停止安慰的docker容器来测试它,并且看到它正在尝试重新连接3次,这是默认情况下在代理端。
因此,问题是,如果可能的话,如何在客户端强制覆盖这些属性?在什么情况下在客户端设置这些属性会受到影响?
使用env.put()时,您尝试使用Initial Context设置JMS属性。但是也可以通过JNDI属性文件和命令行设置这些属性。
如果打开API调试,您应该能够看到从哪里获取值。
现在,一旦您能够与代理上的JNDI连接工厂建立连接,就会从代理端获取值。