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

标签 java jms activemq

我需要运行一个独立应用程序的 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-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.>

是否可以使用动态名称作为本地经纪人的属性brokerName?

问候

最佳答案

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

关于java - ActiveMQ 中代理的动态名称,可在同一台计算机上运行 2 个或多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24863258/

相关文章:

java - JLabel 中的日期(Java bean)

java - 登录成功后无法重定向到主页

web-services - 面向初学者的基于 JMS 的 SOAP

java - 是否可以获取远程代理上的队列列表?

ubuntu - 如何在EC2机器上启动ActiveMQ?

JavaScript:确保表单值唯一,Java Spring Rest 作为后端

Java:异常处理 - 我的 catch() 有问题

数据库触发器和 JMS

Spring Jms @JmsListener 注释不起作用

activemq - 如何转义 mqtt 主题中的特殊字符(正斜杠)?