JBoss EAP 6.x了解部署阶段 - ResourceAdapters,EJB,jar,war

Sta*_*Sky 17 deployment ejb jboss7.x jboss-eap-6

在JBoss中,部署阶段的顺序如何?对象被实例化并可以使用的顺序是什么?考虑企业应用程序(*.ear),检查所有部署日志(server.log),部署阶段如下所示:

  1. 部署了所有 - .class文件已加载并可用;
  2. 部署了所有*.jar模块 - .class文件已加载且可用;
  3. 如果某些*.jarEJB Jar,则通过配置文件(例如ejb-jar.xml)或注释创建JNDI树;
  4. 如果某些*.jar具有persistence.xml文件配置,则会加载所有实体和数据源链接;
  5. 所有*.war模块都会启动部署阶段;
  6. 通过配置文件(web.xml),加载了侦听器和上下文根,最终加载了安全性方面.
  7. 部署成功.

问题:

  • 那么资源适配器模块,PersistenceContext和EJB Pool呢?
  • 找到persistence.xml后,是否会启动与数据源的连接以及数据库池的连接?
  • 由于数据源(DB)是在standalone.xmlor中配置的domain.xml,当发生第一次连接到DB池时?当我注入PersistenceContext并使用EntityManager?
  • 何时加载EJB池并可以使用?
  • 可以说在EJB jar部署期间,JNDI树是否已创建然后可用?
  • 当发现EJB时,它被加载到池中(作为注入/查找的引用)?

当.war模块已部署并准备就绪时,即使尚未完成.ear的完全部署,也可能从容器启动servlet或侦听器.

  • 如果某些对象(侦听器,servlet)尝试使用EJB或PersistenceContext或其他对象会发生什么?这些物品可用吗?
  • 是否可能出现死锁问题并挂起部署线程/阶段?

Chr*_*s K 6