ActiveMQ使用启动参数设置属性
是否有方法将activemq.xml中定义的某些属性(如共享存储)设置为启动参数ActiveMQ使用启动参数设置属性,activemq,Activemq,是否有方法将activemq.xml中定义的某些属性(如共享存储)设置为启动参数 <kahaDB directory="${data}/kahadb"/> 使用-Dparam=value运行amq似乎不起作用我发现这对您不起作用很奇怪,例如,我们目前正在使用以下代理配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans
<kahaDB directory="${data}/kahadb"/>
使用-Dparam=value运行amq似乎不起作用我发现这对您不起作用很奇怪,例如,我们目前正在使用以下代理配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="ignoreResourceNotFound" value="true" />
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="locations">
<list>
<value>classpath:activemq.properties</value>
<value>file:///${user.home}/activemq.properties</value>
<value>file:///#{systemProperties['activemq.properties']}</value>
</list>
</property>
</bean>
<broker useJmx="${activemq.expose.jmx}" persistent="false"
brokerName="${activemq.brokerName}"
xmlns="http://activemq.apache.org/schema/core">
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue=">" enableAudit="false">
<networkBridgeFilterFactory>
<conditionalNetworkBridgeFilterFactory replayWhenNoConsumers="true"/>
</networkBridgeFilterFactory>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage limit="${activemq.memoryUsage}" />
</memoryUsage>
<tempUsage>
<tempUsage limit="${activemq.tempUsage}" />
</tempUsage>
</systemUsage>
</systemUsage>
<networkConnectors>
<networkConnector
name="queues"
uri="static:(${activemq.otherBrokers})"
networkTTL="3"
decreaseNetworkConsumerPriority="true"
conduitSubscriptions="false" >
<excludedDestinations>
<topic physicalName=">" />
</excludedDestinations>
</networkConnector>
<networkConnector
name="topics"
uri="static:(${activemq.otherBrokers})"
networkTTL="3"
decreaseNetworkConsumerPriority="true"
conduitSubscriptions="true" >
<excludedDestinations>
<queue physicalName=">" />
</excludedDestinations>
</networkConnector>
</networkConnectors>
<transportConnectors>
<!-- expose a TCP transport for clients to use -->
<transportConnector
uri="${activemq.protocol}${activemq.host}:${activemq.tcp.port}"
updateClusterClients="true"
rebalanceClusterClients="true" />
<transportConnector
uri="${activemq.websocket.protocol}${activemq.websocket.host}:${activemq.websocket.port}"
updateClusterClients="true"
rebalanceClusterClients="true" />
</transportConnectors>
</broker>
</beans>
类路径:activemq.properties
文件://${user.home}/activemq.properties
文件://{systemProperties['activemq.properties']}
这里的属性通常是从给定的属性文件中读取的,但是我经常使用direct-djmv系统属性在一些测试中否决属性文件中的属性,并且从未遇到任何问题。我想您可以尝试使用#{systemProperties['property.name']}这种稍微复杂一些的语法,专门设置给定的属性是系统属性,而不是占位符
最后一点:您使用的是哪个版本的ActiveMQ,这个版本使用的是哪个版本的spring?我认为整个占位符语法是在Spring3.1前后添加的,所以确实是很久以前的事了,但这是我能想象为什么这对您不起作用的唯一原因