【问题标题】:Could not connect to ActiveMQ Server - activemq for mcollective failing无法连接到 ActiveMQ 服务器 - 用于 mcollective 的 activemq 失败
【发布时间】:2015-01-01 16:09:36
【问题描述】:

我们不断收到此错误:

2014-11-06 07:05:34,460 [main           ] INFO  SharedFileLocker               - Database activemq-data/localhost/KahaDB/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: Failed to create directory 'activemq-data/localhost/KahaDB' 

我们已经验证了activemq作为activemq运行,我们已经验证了目录的所有者是activemq。它不会自动创建目录,如果我们自己创建它们,它仍然会给出同样的错误。该服务启动正常,但它只会不断地吐出相同的错误。没有锁定文件,因为它不会生成任何文件或目录。

【问题讨论】:

  • 您很可能在 KahaDB 协助创建目录的目录路径上存在权限问题。
  • 这就是我们最初的想法。但是我们已经验证了目录的所有者是activemq。我们现在忽略 this 的 mcollective 部分,直到我们弄清楚为什么 activeMQ 不会创建目录/文件。我已经编辑了帖子以适应。
  • 你可以为你的persistenceAdapter添加配置吗?例如:>。我希望在该异常输出中看到完整路径。如果这是完整路径,它很可能会尝试在其开始的工作目录中创建数据存储。所以它仍然可能是权限/空间问题。

标签: activemq puppet mcollective


【解决方案1】:

解决此问题的另一种方法是在一个步骤中创建/usr/share/activemq/ 中缺少的符号链接。权限已在/var/cache/activemq/data/ 上正确设置,但似乎 activemq RPM 并未按应有的方式创建指向该位置的符号链接。符号链接应如下所示:/usr/share/activemq/activemq-data -> /var/cache/activemq/data/。创建符号链接后,重启activemq服务即可解决问题。

【讨论】:

    【解决方案2】:

    我可以通过以下方式解决这个问题:

    确保 activemq 是所有者并且可以访问 /var/log/activemq 和所有子目录。

    确保 /etc/init.d/activemq 有:ACTIVEMQ_CONFIGS="/etc/sysconfig/activemq"

    如果 /etc/sysconfig 中不存在 activemq 文件,则创建它。

    添加这一行:ACTIVEMQ_DATA="/var/log/activemq/activemq-data/localhost/KahaDB"

    问题在于 activeMQ 5.9.x 使用 /usr/share/activemq 作为其 KahaDB 位置。

    【讨论】:

    • 为什么要存储在 /var/log/ 下?这个文件夹不是用来存放实际数据的吗?
    猜你喜欢
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 2016-09-05
    • 2017-07-23
    • 1970-01-01
    • 2020-05-05
    • 2014-12-12
    相关资源
    最近更新 更多