【问题标题】:dynamic name for broker in ActiveMQ to run 2 or more instances in same machineActiveMQ 中代理的动态名称,用于在同一台机器上运行 2 个或更多实例
【发布时间】:2014-07-21 10:48:21
【问题描述】:

我需要在同一台机器上运行两个使用 JMS 和本地 ActiveMQ 的独立应用程序实例。我有一个在应用程序启动时加载的 jms-context 配置文件。我使用 KahaDB 作为持久性适配器

两个实例的文件 jms-context 相同,因此 localBroker 的属性“brokerName”具有相同的名称。

<bean id="broker" class="org.apache.activemq.xbean.XBeanBrokerService">
    <property name="useJmx" value="true"/>
    <property name="brokerName" value="fileProcessorLocalBroker"/>
    <property name="persistent" value="true"/>
    <property name="destinationPolicy" ref="destinationPolicy"/>
    <property name="managementContext" ref="managementContext"/>
    <property name="persistenceAdapter" ref="persistenceAdapter"/>
 ...
</bean>

当我运行我的应用程序的第二个实例时,我得到以下信息:

2014-07-21 12:37:04,377 INFO [org.apache.activemq.store.SharedFileLocker] - <Database   activemq-data\fileProcessorLocalBroker\KahaDB\lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File 'activemq-data\fileProcessorLocalBroker\KahaDB\lock' could not be locked.>

localbroker 的属性 brokerName 是否可以使用动态名称?

问候

【问题讨论】:

    标签: java jms activemq


    【解决方案1】:

    ActiveMQ 本身不支持使用动态代理名称启动。但是,您可以使用属性表达式从某些 ENV 值或您定义的其他源中读取名称。一些线索见this article

    【讨论】:

      猜你喜欢
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 2014-02-28
      • 2015-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多