0

Weblogic に分散キューがあります。メッセージは、JMS onMessage() 関数を使用してキューから読み取られます。ただし、デプロイメントが実行されている限り、メッセージはキューからパージされません。メッセージ状態文字列は常に「受信」です。展開が再開された場合に、メッセージが再度取得されないようにするにはどうすればよいですか?

  @Override
public void onMessage(Message msg) {
    try {
        String msgText;
        if (msg instanceof TextMessage) {
            msgText = ((TextMessage) msg).getText();
        } else {
            msgText = msg.toString();
        }

       System.out.println("Message Received from Message_RESPONSE_QUEUE: " + msgText + " - " + count++);

        // now send the message to queue2
        InitialContext ic2 = getInitialContext2();
        getMsgFromQueue qs = new getMsgFromQueue();
        qs.init2(ic2, QUEUE2);
        qs.send(msg, null);

    } catch (JMSException jmse) {
    } catch (NamingException ex) {
        Logger.getLogger(getMsgFromQueue.class.getName()).log(Level.SEVERE, null, ex);
    }
}
4

1 に答える 1

0

The message from the JMS queue does not get removed until JMS server receives an acknowledgement.

Here's some references that you may find useful -

http://docs.oracle.com/cd/E17904_01/web.1111/e15493/prog_details.htm#i1156227

http://docs.oracle.com/cd/E17904_01/web.1111/e15493/prog_details.htm#i1152248

http://docs.oracle.com/cd/E17904_01/web.1111/e15493/prog_details.htm#i1156227

于 2014-10-16T09:34:52.330 に答える