activemq - ActiveMQ 在使用 systemctl 启动时以从属模式启动
问题描述
使用systemctl
. 服务器以从模式启动:
[pid: ][main] 08 Oct 2021 18:15:46 INFO XBeanBrokerFactory$1 - Refreshing org.apache.activemq.xbean.XBeanBrokerFactory$1@68bbe345: startup date [Fri Oct 08 18:15:46 UTC 2021]; root of context hierarchy
[pid: ][main] 08 Oct 2021 18:15:46 INFO XBeanXmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/var/tmp/amq/conf/activemq-nojournal-persistent-SSL.xml]
[pid: ][main] 08 Oct 2021 18:15:46 INFO XBeanXmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/var/tmp/amq/conf/jetty.xml]
[pid: ][main] 08 Oct 2021 18:15:47 INFO BrokerService - Using Persistence Adapter: KahaDBPersistenceAdapter[/var/tmp/amq/data/kahadb]
[pid: ][KahaDB Index Free Page Recovery] 08 Oct 2021 18:15:47 INFO PageFile - Page File: /var/tmp/amq/data/kahadb/db.data. Recovering pageFile free list due to prior unclean shutdown..
[pid: ][KahaDB Index Free Page Recovery] 08 Oct 2021 18:15:47 INFO PageFile - Page File: /var/tmp/amq/data/kahadb/db.data. Recovered pageFile free list of size: 0
[pid: ][main] 08 Oct 2021 18:15:47 INFO MessageDatabase - KahaDB is version 7
[pid: ][main] 08 Oct 2021 18:15:47 INFO PListStoreImpl - PListStore:[/activemq-data/broker-persistent-SSL/tmp_storage] started
[pid: ][main] 08 Oct 2021 18:15:47 INFO SharedFileLocker - Database activemq-data/broker-persistent-SSL/scheduler/lock is locked by another server. This broker is now in slave mode waiting a lock to be acquired
sudo -u <user>
如果我使用它启动代理,它会正确启动。
这被配置为以持久性运行 SSL:
<broker xmlns="http://activemq.apache.org/schema/core"
useJmx="true"
persistent="true"
dedicatedTaskRunner="false"
schedulerSupport="true"
brokerName="broker-persistent-SSL">
这是过程:
/usr/bin/java -Dlog4j.dir=/var/tmp/amq/log -Dlog_instance=ip-172-31-51-195.ec2.internal -Dinvenio_log_component=mqbroker -Dcom.sun.management.jmxremote.port=51520 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=localhost -Dcom.sun.management.jmxremote -Djavax.net.ssl.keyStore=/var/tmp/amq/conf/broker.ks -Djavax.net.ssl.keyStorePassword=<password> -Djavax.net.ssl.trustStore=/var/tmp/amq/conf/broker.ts -Djavax.net.ssl.trustStorePassword=<password> -Djava.awt.headless=true -Djava.io.tmpdir=/var/tmp/amq/tmp -Dactivemq.classpath=/var/tmp/amq/conf:/var/tmp/amq/../lib/: -Dactivemq.home=/var/www/mqbroker/apache-activemq-5.16.2 -Dactivemq.base=/var/tmp/amq -Dactivemq.conf=/var/tmp/amq/conf -Dactivemq.data=/var/tmp/amq/data -jar /var/www/mqbroker/apache-activemq-5.16.2/bin/activemq.jar start xbean:file:/var/tmp/amq/conf/activemq-nojournal-persistent-SSL.xml
更多进程信息:使用 systemctl 启动代理。使用 netstat 我只看到一个 java 进程,它是代理..
tcp6 0 0 :::51520 :::* LISTEN 4597/java
tcp6 0 0 :::51521 :::* LISTEN 4597/java
tcp6 0 0 :::41320 :::* LISTEN 4597/java.
SSL 在 61617 上,它不在我假设的列表中,因为它处于从属模式。lsof 仅显示 4597 进程已打开锁定文件
这就是使用 sudo -u 开始的过程。以这种方式启动不会将代理置于从属模式
tcp6 0 0 :::51520 :::* LISTEN 4838/java
tcp6 0 0 :::51521 :::* LISTEN 4838/java
tcp6 0 0 :::61617 :::* LISTEN 4838/java
tcp6 0 0 :::45521 :::* LISTEN 4838/java
lsof 在这种情况下显示两个文件锁..一个用于 kahadb/lock,一个用于 activemq-data.../scheduler/log
我已经删除了锁定文件并重新启动。这台机器上没有其他经纪人
谁能给我一个暗示可能是什么原因造成的?
解决方案
推荐阅读
- git - 使用 Azure VM 的权限被拒绝错误 Git
- r - 替换一个数据集在另一个数据集中的出现
- javascript - JS中两个三元运算符如何协同工作?
- c# - 复合共享键和实体
- android-studio - Android工作室Java.lang.OutOfMemoryError
- python - Python创建增量文件夹
- arrays - 在 Fortran 90 中沿整个数组求和
- python - 卸载和安装 python,现在面临 pip 问题
- r - 如何在 R Shiny 应用程序中切换选项卡(tabPanel)时显示确认消息?
- javascript - 如何从云 Firestore 仅获取没有任何元数据的数据?