Назад | Перейти на главную страницу

Настройте JBoss 7 / EAP 6 для отмены развертывания приложений перед завершением работы

Когда я развертываю свое приложение JEE6 на JBoss EAP 6.3 и выключаю сервер перед отключением приложения вручную, я получаю неожиданные исключения (см. Ниже).

Я ищу способ заставить завершение работы работать или надежный источник, который заявляет, что он не работает и не будет исправлен.

Тем не менее, завершение работы приложения работает нормально, если выполняется вручную (удалите .ear из каталога развертывания, дождитесь отмены развертывания, затем выключите JB). Никаких исключений не происходит, все работает как положено.

Итак, я предполагаю, что есть способ настроить JBoss таким образом, чтобы это происходило автоматически при выключении сервера, отправляло сигнал остановки приложениям, ждало, пока они не исчезнут или не истечет время ожидания, а затем выключите сервер.

Я выключил JBoss 7 с помощью этой команды:

jboss-cli.bat --connect --command=:shutdown --timeout=30000 --controller=127.0.0.1:9999

Исключения, которые я получаю (например, JBAS0141134), заставляют меня думать, что JBoss удаляет компоненты и ресурсы, от которых зависит мое приложение, до завершения последовательности завершения работы.

Я контролирую процесс выключения внутри @PreDestroy внутри @Singleton это вызывает некоторые @Stateless beans, которые, в свою очередь, имеют ресурсы базы данных и т. д.

Наиболее заметное исключение, которое я получаю:

ERROR - JBAS014134: 
   EJB-Aufruf an Komponente MyStatelessBean
      für Methode public abstract void MyStatelessLocal.performShutdownOperation() fehlgeschlagen:
   javax.ejb.EJBAccessException: JBAS014502: 
   Aufruf an Methode: public abstract void MyStatelessLocal.performShutdownOperation() 
      von Bean: MyStatelessBean ist nicht gestattet

(Отступ мой)

Имейте в виду, что даже несмотря на то, что он говорит «вызов не разрешен», вызов работает нормально, если я отменяю развертывание приложения без выключения сервера.