如果我为MessageListener
设置了MessageConsumer
对象,然后在该使用者上调用receive()
,会发生什么?提供者将消息提供给receive()
,还是在MessageListener
对象处理消息时继续将其阻止?
最佳答案
您将得到一个例外,因为会话必须处于异步或同步模式。从JMS规范的4.4.6开始
会话的单控制线程限制的结果是
与消息侦听器的会话也不能用于同步接收
消息。会话专用于用于
传递给消息侦听器或专用于启动的控制线程
根据客户代码。尝试在同一会话中将两者合并是错误的。
关于java - 有关JMS receive()/MessageListener优先级的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6938852/