Java 如何检查是否已从MQ读取所有消息
需要您帮助更新以下代码,当前此代码从IBM MQ获取第一条消息,但我的要求是获取消息直到MQ为空Java 如何检查是否已从MQ读取所有消息,java,jms,ibm-mq,jmstemplate,Java,Jms,Ibm Mq,Jmstemplate,需要您帮助更新以下代码,当前此代码从IBM MQ获取第一条消息,但我的要求是获取消息直到MQ为空 private JmsTemplate jmsTemplate; public JmsTemplate getJmsTemplate() { return jmsTemplate; } @Autowired public void setJmsTemplate(JmsTemplate jmsTemplate) { this.jmsTemplate = jmsTemplat
private JmsTemplate jmsTemplate;
public JmsTemplate getJmsTemplate() {
return jmsTemplate;
}
@Autowired
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
public String onMessage() throws JMSException, IOException {
Message source = jmsTemplate.receive("LQ.SCCO4313");
BytesMessage bm = (BytesMessage) source;
byte[] byteArr = new byte[(int) bm.getBodyLength()];
bm.readBytes(byteArr);
String msg = new String(byteArr, "UTF-8");
logger.info("Message " + msg);
logger.info("MESSAGE received from myMessageQueue ");
return msg;
}
当队列中没有消息时,JMS MessageConsumer的receive()或receiveNoWait()将返回null。如果存在任何内部错误,将出现异常
因此,您可以在代码中检查
source==null
。我可以检查null,但它会持续多长时间?直到浏览队列中的最后一条消息。