Java 如何检查是否已从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

需要您帮助更新以下代码,当前此代码从IBM MQ获取第一条消息,但我的要求是获取消息直到MQ为空

    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,但它会持续多长时间?直到浏览队列中的最后一条消息。