You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让JBoss EAP优雅停止轮询新消息并安全下线维护?

JBoss EAP 7 安全下线(JMS消费场景)

操作步骤

1. 暂停新消息接收

针对消息驱动Bean(MDB)场景

  • 连接目标服务器的JBoss CLI,执行命令暂停对应MDB部署或端点:
    • 暂停整个MDB部署:deploy --name=your-mdb-app.war --disable
    • 暂停单个MDB:/subsystem=ejb3/mdb=YourTargetMDB:stop()

针对自定义JMS消费者场景

  • 调用应用内置的停机触发逻辑(如JMX操作、内部接口),执行consumer.stop()停止新消息拉取,保留JMS连接直到现有消息处理完成。

2. 验证已处理消息完成

  • 查看服务器业务日志,确认所有已接收的IN队列消息对应的业务逻辑执行完毕,且响应消息已成功发送至OUT队列。
  • 通过JBoss CLI监控队列状态,确认无待处理消息:
    /subsystem=messaging-activemq/server=default/queue=your-IN-queue:read-attribute(name=message-count)
  • 检查事务状态,确保所有JMS事务已提交/回滚,无未完成的事务残留。

3. 执行优雅停机

  • 确认所有任务完成后,通过JBoss CLI发送优雅停机指令:
    shutdown --timeout=600
    该指令会预留最长10分钟(600秒)让服务器完成剩余处理,超时后自动终止。

关键注意事项

  • 多组IN/OUT队列需逐一对应处理,确保每组的消费者都已暂停且消息处理完成。
  • 若使用事务型消费,必须等待所有事务闭环后再执行停机,避免消息丢失或重复消费。

内容的提问来源于stack exchange,提问作者Malaiselvan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:15:31