【问题标题】:hornetq can't start, error: NATIVE_ERROR_CANT_OPEN_CLOSE_FILEhornetq 无法启动,错误:NATIVE_ERROR_CANT_OPEN_CLOSE_FILE
【发布时间】:2013-04-22 09:25:27
【问题描述】:

所有。我正在尝试开始使用扭矩箱应用程序服务器(JBoss AS7),一切似乎都很好,除了消息传递子系统。起初我认为这是我的扭矩箱设置错误,但后来我下载了独立的 HornetQ(2.3.0 最终版)并尝试运行 bin/start.sh。发生同样的错误:

21:29:03,128 WARN  [org.hornetq.core.server] HQ222010: Critical IO Error, shutting down the server. file=AIOSequentialFile:/home/gintaras/Downloads/hornetq-2.3.0.Final/bin/../data/journal/hornetq-data-1.hq.tmp, message=Can't open file: HornetQException[errorType=NATIVE_ERROR_CANT_OPEN_CLOSE_FILE message=Can't open file]
at org.hornetq.core.asyncio.impl.AsynchronousFileImpl.init(Native Method) [hornetq-journal.jar:]
at org.hornetq.core.asyncio.impl.AsynchronousFileImpl.open(AsynchronousFileImpl.java:220) [hornetq-journal.jar:]
at org.hornetq.core.journal.impl.AIOSequentialFile.open(AIOSequentialFile.java:190) [hornetq-journal.jar:]

我还在此处添加了一条评论,提供了更多信息:https://issues.jboss.org/browse/HORNETQ-818(Gintaras 的最新帖子)

任何想法有什么问题吗?

【问题讨论】:

  • 您为 HornetQ 文件使用的文件系统是什么? HornetQ 通过(在许多其他方面)进行非常低级别的文件访问来实现其速度。根据您使用的文件系统,这些调用将失败。确保您使用的是像 ext4 这样的标准。
  • 我有一个加密的 ext4 磁盘(带有 ubuntu 13.04 的单个 ssd),对我来说似乎相当标准。这里的一个人community.jboss.org/message/750503 提到他通过从他的加密主分区中移动 hornetQ 文件解决了这个问题。虽然这对我来说似乎是不可能的,因为整个磁盘都是加密的(我想是的,我安装它已经有一段时间了)。感谢您对我的问题的关注,我非常感谢我能在这里得到的任何帮助。

标签: ubuntu hornetq


【解决方案1】:

您似乎是在不支持直接 IO 的配置上启动系统。您可以将其切换到 NIO。

   <subsystem xmlns="urn:jboss:domain:messaging:1.1">
        <hornetq-server>
            <persistence-enabled>true</persistence-enabled>
            ...
            **<journal-type>NIO</journal-type>**

libAIO 需要直接访问文件,这意味着 DMA 和直接写入,并且加密文件将放置一个额外的层,因此您将无法直接访问文件。

如果你需要,你可以使用 NIO,它将使用常规的 java NIO 文件。

如果您不需要,则必须将日志目录从加密文件中移开。

我也写过你在这里提到的线程:https://community.jboss.org/message/750503

【讨论】:

  • 这修复了它 - 仅供参考,在独立模式下只需在 hornetq-configuration.xml 中添加日志类型位以及其他日志选项。我发现这个问题是由安装了不同版本的 libaio1 的 mysql-server 引起的。 (在 Ubuntu 13.04 上)
【解决方案2】:

据我所知,只要分区挂载为 ext4,磁盘加密就不会成为问题。 FWIW,您在该错误报告中添加了很多信息,但没有关于您正在使用的 libaio 的确切版本(这是该案例报告的原始错误问题的根源)。

您应该考虑将此问题提交给 HornetQ 用户论坛,让更多人(具有总部经验)能够与您分享他们的经验。 Stackoverflow 适用于简单的客观问题,但对于需要讨论的问题,用户论坛可能是更好的去处。

https://community.jboss.org/en/hornetq?view=discussions

【讨论】:

    【解决方案3】:

    在我的情况下,它是由作为 Amarok 和 MySQL 的依赖项安装的 libaio1 引起的。这两个我都没用过,所以我把它卸载了,HornetMQ就正常启动了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 2014-07-01
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      相关资源
      最近更新 更多