В JBoss, как последовательность этапа развертывания? Каков порядок создания и использования объекта? Учитывая корпоративное приложение (*.ear), проверяя весь журнал развертывания (server.log), этап развертывания выглядит следующим образом:
- Развернуты все libs - загружаются и доступны файлы .class;
- Развертываются все *. jar модули. Загружаются и доступны файлы .class;
- Если какой-либо *. jar является EJB Jar, через файлы конфигурации (пример ejb-jar.xml) или аннотации, создается дерево JNDI;
- Если какая-то *. jar имеет конфигурацию файла persistence.xml, загружаются все сущность и ссылка на источники данных;
- Все модули *. war запускают фазу развертывания;
- Через файлы конфигурации (web.xml) загружаются слушатели и контекстно-корневые и, в конечном итоге, аспекты безопасности.
- Ухо успешно установлено.
Вопросы:
- Что относительно модулей адаптеров ресурсов, PersistenceContext и EJB Pool?
- Когда обнаружен файл persistence.xml, запускается ли подключение к источнику данных и, следовательно, к пулу базы данных?
- Так как источник данных (DB) настроен в
standalone.xml
илиdomain.xml
, когда происходит первое подключение к пулу БД? Когда я вставляю PersistenceContext и использую EntityManager? - Когда пул EJB загружен и доступен для использования?
- Правильно ли сказать, что во время развертывания JJB jar создается дерево JNDI, а затем доступно?
- Когда EJB обнаружен, он загружается внутри пула (в качестве ссылки на ввод/поиск)?
Когда модуль .war развернут и готов, даже если полное развертывание .ear еще не завершено, возможно, сервлет или прослушиватель запускаются из контейнера.
- Что произойдет, если некоторые из этих объектов (слушатель, сервлет) попытаются использовать EJB или PersistenceContext или другие объекты? Доступны ли эти объекты?
- Возможно ли иметь проблему взаимоблокировки и повесить поток/этап развертывания?