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

时间:2012-10-07 15:26:48

标签: java jetty activemq restart

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

在我们的质量检查计算机上,我们将其作为服务安装,并分别运行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方法,两者都产生了同样的问题:我看到正在创建一个流程,但网络上没有任何内容管理工具。

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

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

修改

我在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 |主

5 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

检查data/目录中的日志。

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

  1. 转到任务管理器并终止当前运行的所有java进程。
  2. 以管理员身份运行activemq批处理文件
  3. 在本地浏览器中打开以下内容,验证此功能是否正常:http://localhost:8161/