ActiveMQ中代理在同一台机器上运行2个或更多实例的动态名称



我需要运行一个独立应用程序的2个实例,该实例在同一台机器上使用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-datafileProcessorLocalBrokerKahaDBlock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: File 'activemq-datafileProcessorLocalBrokerKahaDBlock' could not be locked.>

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

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

相关内容

  • 没有找到相关文章

最新更新