${build.shortName} 可以安全地挂起或关闭。这允许活动请求正常完成而无需接受任何新的请求。超时时间指定了挂起或关闭操作等待活动请求完成的时间。当服务器被挂起时,管理请求仍在被处理。

优雅关闭是在服务器范围里进行协调的,多数集中在请求到达服务器的入口点。下面的子系统支持优雅关闭:

Undertow
undertow 子系统会等待所有请求完成。
Modcluster
modcluster 子系统会通知负载均衡器服务器正在被挂起,处于 PRE_SUSPEND 阶段。
EJB
ejb3 子系统将等待所有的远程 EJB 请求和 MDB 消息递送完成。MDB 递送停止在 PRE_SUSPEND 阶段。EJB 定时器被挂起,丢失的定时器在服务器恢复时将被激活。
EE Concurrency
服务器将等待所有活跃的任务完成。 所有排队的任务都将被跳过。 目前,因为 EE Concurrency 没有持久性,已跳过的已跳过的作业将会丢失。
当服务器处于挂起状态时,调度的任务可以继续在调度的时间运行,当会抛出一个 java.lang.IllegalStateException。 一旦服务器被恢复,调度的任务会继续正常运行,在大多数情况下,任务不需要重新调度。
Batch
服务器将在超时时间内停止所有运行的作业,并延迟所有调度的作业。
当前的安全关闭将不会拒绝内向的远程分布事务或新的内向 JMS 消息。由实时操作调度的 EE 批量作业和 EE 并行任务允许被处理。但是,超过超时窗口的当前发送的并行任务在执行时会出错。

请求由 request-controller 子系统跟踪。如果没有这个子系统,则会限制挂起和恢复功能,且服务器不会在挂起或关闭前等待请求完成。但是,如果您不需要这个功能,则可以删除 request-controller 子系统来提高性能。