当我尝试启动我的 ActiveMQ 代理时,我得到一个地址已在使用错误:
2015-01-17 18:41:32,828 | ERROR | Failed to start Apache ActiveMQ ([localhost, ID:Laptop-44709-1421516492312-0:1], java.io.IOException: Transport Connector could not be registered in JMX: Failed to bind to server socket: amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600 due to: java.net.BindException: Die Adresse wird bereits verwendet)
我尝试使用 netstat | grep 检查端口 5672 中运行的服务,但由于某种原因它没有显示 pid。所以我尝试更改 amqp 的默认端口:
<!--
The transport connectors expose ActiveMQ over a given protocol to
clients and other brokers. For more information, see:
http://activemq.apache.org/configuring-transports.html
-->
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:61617?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
但是,当我尝试 sudo/etc/init.d/activemq start 时,ActiveMQ 会忽略我的配置并继续连接到已在使用的端口。
知道为什么吗?
我一直在按照本指南设置ActiveMQ:http://servicebus.blogspot.de/2011/02/installing-apache-active-mq-on-ubuntu.html
当我在 Ubuntu 的 init.d 中使用 simlink 时,我遇到了 ActiveMQ 配置(特别是 JMX)的问题。ActiveMQ在我用如下脚本替换simlink后开始正常工作:
#! /bin/sh
ACTIVEMQ_HOME="/opt/activemq"
case "$1" in
start)
$ACTIVEMQ_HOME/bin/activemq start
;;
stop)
$ACTIVEMQ_HOME/bin/activemq stop
;;
restart)
$ACTIVEMQ_HOME/bin/activemq restart
;;
status)
$ACTIVEMQ_HOME/bin/activemq status
;;
*)
echo "Valid commands: start|stop|restat|status" >&2
;;
esac
exit 0