由于KahaDB被锁定,ActiveMQ不会重启

问题描述 投票:6回答:5

在我的开发机器上本地启动/停止ActiveMQ(5.6)我分别运行./activemq start./activemq stop

在我们的QA机器上,我们将其作为服务安装并分别运行service activemq startservice activemq stop

我刚刚弹起QA机器并发出service activemq stop,然后service activemq start重启它。

我看到正在创建进程ID,如果我运行ps -aef | grep activemq,我会看到ActiveMQ服务器的生命,呼吸过程。

但是,如果我去http://<qa-server>:8161/admin,我会收到服务器关闭时看到的典型错误:

Firefox无法在以下位置建立与服务器的连接:8161。

编辑:我现在尝试了./active startservice activemq start方法,并且都产生了同样的问题:我看到正在创建一个进程,但在Web管理工具中没有。

我检查了ActiveMQ的主目录,没有看到任何类型的logs/目录,所以我甚至不确定从哪里开始调试该问题。

AMQ未重新启动,或其Web管理应用程序未重新启动或正常运行;无论哪种方式,我都不知道从哪里开始。提前致谢!

编辑:

我在data/activemq.log中看到以下错误:

2012-10-07 11:37:14,501 |信息|数据库/ qa-server / kahadb / lock被锁定...等待10秒钟才能解锁数据库。原因:java.io.IOException:无法锁定文件'/ qa-server / kahadb / lock'。 | org.apache.activemq.store.kahadb.MessageDatabase |主要2012-10-07 11:37:24,504 |信息|数据库/ qa-server / kahadb / lock被锁定...等待10秒钟才能解锁数据库。原因:java.io.IOException:无法锁定文件'/ qa-server / kahadb / lock'。 | org.apache.activemq.store.kahadb.MessageDatabase |主要

java jetty activemq restart
5个回答
3
投票

事实证明,我们的QA环境中有多个AMQ服务器。当我关闭第一台服务器时,由于某种原因抛出异常,因此它没有释放锁。拥有该锁然后转到另一个AMQ实例(第一个服务器是主服务器,第二个服务器是从服务器)。

当我尝试重新启动第一台服务器(主服务器)时,它不会重启,因为第二台服务器拥有锁。我关闭了第二台服务器,锁被释放,允许我重新启动它们。


2
投票

检查data/目录中的日志。

这是一个错字吗? :8161.admin 试试:8161/admin


1
投票
  1. 转到Win7中的apache安装主文件夹,即apache-activemq-X.XX.X
  2. 右键单击并选择属性
  3. 为您登录的用户更改此文件夹的访问权限 - “通常您的登录用户应该已具有ADMIN访问权限,但如果您在计算机上解压缩了此URI,则会丢失管理员权限”

现在,您应该让activemq命令顺利运行


0
投票

停止服务并不能保证服务已停止。 Windows跨越线程,并在一段时间后假定服务已停止。如果您仍然在进程列表中看到它正在运行,请始终检查,验证并终止该进程。这样做可以清除它所持有的锁。


0
投票

如果上述情况不符合您的情况,请按照以下简单步骤操作:

  1. 转到任务管理器并终止当前运行的所有java进程。
  2. 以管理员身份运行activemq批处理文件

通过在本地浏览器中打开以下内容来验证运行正常:http://localhost:8161/

© www.soinside.com 2019 - 2024. All rights reserved.