java消息失败重发_JMS消息在JMS侦听器中重新发送异常
Javadoc为 org.springframework.jms.listener.AbstractMessageListenerContainer 表示,如果
“sessionAcknowledgeMode”设置为“CLIENT_ACKNOWLEDGE”:成功侦听器执行后自动确认消息;如果抛出异常,则无法重新发送 .
我猜,“在抛出异常的情况下没有重新传递”意味着,即使jms监听器中抛出异常,该消息也不会被重新传递(因此,我的猜测,它会得到确认) . 但是,从侦听器抛出的异常意味着对它的调用不成功,并且由于没有确认应该重新发送 .
问题是:
What actually should happen with message acknowledgement in case of exception thrown in the jms listener?
从这个堆栈跟踪中可以看到真正发生的事情:
at org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:98)
at org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter.onMessage(MessagingMessageListenerAdapter.java:66)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:660)
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:620)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:591)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:308)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:246)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1142)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1134)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1031)
堆栈跟踪的第5行是特别感兴趣的 . 那里的代码基本上意味着,(大多数情况下)从侦听器抛出的任何异常都将绕过在 org.springframework.jms.listener.AbstractMessageListenerContainer#commitIfNecessary 中完成的确认 .
That's ok, but what does "no redelivery in case of exception thrown" mean then?
附加信息:
spring JMS:4.1.2
java消息失败重发_JMS消息在JMS侦听器中重新发送异常相关推荐
- java从外部得到数据_java – 如何实现Observer以从侦听器获取数据?
我正在使用 MaterialDrawer库为我的应用程序创建一个简单的抽屉,库中的一些类实例需要在调用时传递给它们的字符串.一个例子是IProfile类: IProfile profile = new ...
- 方法~作用于对象~失败_消息三:ActiveMQ Topic 消息失败重发
3.1 JMS消息确认机制 在 Session 接口中定义的几个常量: AUTO_ACKNOWLEDGE = 1 自动确认 CLIENT_ACKNOWLEDGE = 2 客户端手动确认 DUPS_OK ...
- java 拦截鼠标消息 循环_java – 由子组件拦截的swing鼠标侦听器
例如 import java.awt.Component; import java.awt.Dimension; import java.awt.event.MouseAdapter; import ...
- linux下netty接收不到服务,Netty 发送消息失败或者接收消息失败的可能原因
Conditional Split component 用法 Conditional Split 用于将数据流按照条件进行拆分,每一个output 都有name和condition. 数据流逐行按照c ...
- 采用sendmsg发送消息失败 recvmsg接收消息失败
这是因为msg中的msg_control可能指向垃圾内存,解决办法就是将msg中的内存置零.
- JAVA查找事件侦听代码_Java自定义事件处理程序和侦听器
我目前正在使用Socket.io的 Java实现,可在此处获取: netty-socketio 我已经启动并运行了服务器,它在客户端和服务器之间很好地接收/发送消息,但是我需要在接收到某些消息时触发事 ...
- Java事件侦听器函数_SWT 计算器 按钮事件监听 获取按钮text值
用swt插件做计算器,监听所有按钮.通过按钮text值判断哪个按钮被点击,如"0"按钮被点击,就在text框里加个0.现在问题是怎样在监听函数里得到button的text值.10个 ...
- JAVA单选组监听_java – 如何将侦听器附加到单选按钮
我有一个显示各种radiobutton的活动.无线电按钮分组在无线电组中.我希望在检查某个单选按钮时,一些radiobutton会消失.例如,当检查事故按钮时,摔倒,绊倒和疾病的无线电按钮消失.我怎么 ...
- RabbitMQ –使用Spring集成Java DSL串行处理消息
如果您曾经需要使用RabbitMQ来串行处理消息,并且有一群监听器来处理消息,那么我所看到的最好方法是在监听器上使用"独占消费者"标志,每个监听器上有1个线程来处理消息. 专用使用 ...
最新文章
- 【Redis】缓存的三大问题及其解决方案
- Spring 开启Annotation context:annotation-config 和 context:component-scan诠释及区别
- [转]获取xml节点值和属性值(兼容ie和firefox)
- Python的from import和import的区别?
- bzoj 1079 [SCOI2008]着色方案
- java读取配置文件properties
- C库函数 - strcspn()
- php rest api lumen,lumen Rest API 起步
- 【实践】基于强化学习的 Contextual Bandits 算法在推荐场景中的应用
- 搞机器学习还敲什么代码
- 关于Exchange Server 2010(WEB浏览证书)证书问题
- PHP--变量部分知识点
- 黑马程序员传智播客 正则表达式学习笔记 匹配单个字符多个字符
- 冰蝎工具的最新检测特征
- 用HTML写一个会员注册、登录界面
- 邮箱163登录入口,邮箱163如何注册?
- 如果应用闪退,怎么获取相关日志?
- 中国建设银行信息技术岗笔试
- ❤️❤️马上安排!闺女想在游戏里成为【超人】,Python游戏开发模块Pygame系列之【跳跃的小球】❤️❤️源码
- javascript如何获取request中的数据
热门文章
- c++opencv显示中文_OpenCV如何入门秘籍
- linux 改变文件夹属性,技术|在Linux中用chattr和lsattr命令管理文件和目录属性
- 2 s锁是什么_《演员请就位》:一场戏拿了2张S卡,任敏凭什么打败老戏骨?
- 为什么用pyqt的不多_现在农村提倡用天然气和清洁煤球取暖,为何农民不爱用?看完懂了...
- 如何用unit test测试controller_如何用电缆故障测试仪冲闪测试确定故障点?
- Mybatis源码分析之(七)Mybatis一级缓存和二级缓存的实现
- JAVA WEB篇3——JSP
- java store()_Java.util.Properties.store()
- java参数传入泛型类型_Java泛型参数界定到任何一个类型的范围
- 经典数据结构——堆的实现