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

Java ActiveMQ中代理在同一台计算机上运行2个或多个实例的动态名称,java,jms,activemq,Java,Jms,Activemq,我需要在同一台机器上运行两个独立应用程序的实例,该应用程序使用JMS和本地ActiveMQ。我有一个jms上下文配置文件,在应用程序启动时加载。我使用KahaDB作为持久性适配器 两个实例的文件jms上下文相同,因此localBroker的属性“brokerName”具有相同的名称 <bean id="broker" class="org.apache.activemq.xbean.XBeanBrokerService"> <property name="useJmx"

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

两个实例的文件jms上下文相同,因此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.>
2014-07-21 12:37:04377信息[org.apache.activemq.store.SharedFileLocker]-
localbroker的属性brokerName是否有使用动态名称的方法


ActiveMQ本身不支持使用动态代理名称启动。但是,可以使用属性表达式从某些环境值或定义的其他源读取名称。有关一些线索,请参见: