ActiveMQ JNDI如何工作

时间:2017-10-23 18:20:36

标签: java activemq jndi

我是ActiveMQ的新手,我试图了解ActiveMQ命名服务的工作原理。 如果我已正确理解,为了能够使用activeMQ代理,必须通过JNDI来检索connectionFactory和目标(主题,队列)。

ActiveMQ提供命名服务,其位置通过jndi.properties文件中的 java.naming.provider.url 变量定义。 阅读类代码ActiveMQInitialContextFactoryActiveMQConnectionFactory我注意到变量java.naming.provider.url( Context.PROVIDER_URL )用于启动BrokerURL的值,这是用于定位JMS代理,而不是查找命名服务。

我的问题如下:

  1. 我的句子和推理是否正确?
  2. ActiveMQ实际上没有提供命名服务实现吗?
  3. 在activeMQ的情况下,JNDI管理的对象并不是真的 创建提供商方?相反,它们是在JMS客户端创建的吗?

1 个答案:

答案 0 :(得分:0)

据我所知,ActiveMQ不提供服务器端命名服务。也就是说,没有单独的服务侦听某些特定端口,它只响应名称查询。通常在使用JNDI查找来定位ActiveMQ代理或目标时,这将位于应用程序服务器上下文中,其中应用程序服务器提供JNDI基础结构。

在应用程序服务器上下文之外,我的经验是开发人员通常会实例化ActiveMQConnectionFactory并直接设置其属性,而不使用JNDI。