hornetq не может запуститься, ошибка: NATIVE_ERROR_CANT_OPEN_CLOSE_FILE
Все. Я пытаюсь начать использовать сервер приложений Torquebox (JBoss AS7), и все, кажется, все в порядке, за исключением подсистемы обмена сообщениями. Сначала я думал, что это было ошибкой при настройке моей коробки передач, но потом я скачал автономный HornetQ (2.3.0 final) и попытался запустить 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 ответа
Кажется, вы запускаете систему в конфигурации, которая не поддерживает прямой ввод-вывод. Вы можете просто переключить его на 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
Насколько я знаю, шифрование диска не должно быть проблемой до тех пор, пока раздел монтируется, скажем, как ext4. FWIW, вы добавили много информации в этот отчет об ошибке, но ничего о точной версии libaio
что вы используете (что было источником проблемы первоначальной ошибки, о которой сообщалось в этом случае).
Вы должны рассмотреть вопрос об этой проблеме на форуме пользователей HornetQ, где больше людей (с опытом работы в штаб-квартире) смогут поделиться своим опытом с вами. Stackru хорошо работает для простых объективных вопросов, но для чего-то, что требует обсуждения, возможно, лучше обратиться к форуму пользователей.
В моем случае это было вызвано установкой libaio1 как зависимости Amarok и MySQL. Я не использовал ни одного из двух, поэтому я просто удалил его, и HornetMQ начал нормально.