hornetq无法启动,错误:NATIVE_ERROR_CANT_OPEN_CLOSE_FILE

时间:2013-04-28 18:37:26

标签: ubuntu hornetq

所有。我正在尝试开始使用一个扭矩盒应用服务器(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的最后一篇文章)

任何想法都错了吗?

3 个答案:

答案 0 :(得分:8)

您似乎在不支持直接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

答案 1 :(得分:1)

据我所知,只要将分区安装为ext4,磁盘加密就不应该成为问题。 FWIW,您在该错误报告中添加了大量信息,但没有提及您正在使用的libaio的确切版本(这是该案例报告的原始错误问题的根源)。

您应该考虑将这个问题带到HornetQ用户论坛,在这个论坛中,更多人(具有总部经验)能够与您分享他们的经验。 Stackoverflow适用于简单的客观问题,但对于需要讨论的内容,用户论坛可能是更好的选择。

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

答案 2 :(得分:0)

在我的情况下,它是由作为Amarok和MySQL的依赖项安装的libaio1引起的。我没有使用过这两个中的任何一个所以我只是卸载它并且HornetMQ正常启动。