0

私はJMSが初めてです。セッション内のキューにメッセージを送信し、フラグ値に応じてセッションがコミットされるサンプル例を試していました。コードに期待するのは、フラグが false の場合、メッセージはキューに残り、削除されないということです。フラグが true の場合、セッションがコミットされ、メッセージが表示されます。前の部分、つまり、flg 値が false のときにメッセージをキューに保存することはできません。

私は MDPListener と春のフレームワークを使用しています。以下は私のコードです:

public void onMessage(Message message,Session session) {

        System.out.println("New Message arrived part2 .. Passing to Controller");

        Boolean g=false;

        if(g==true)
        {
            System.out.println("Data true..session committed!!");
            try {
                session.commit();
            } catch (JMSException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        else
        {
            try {
                System.out.println("Sesison not commds!!");

                //HERE I WANT THE CODE TO STORE THE MESSAGE IN THE QUEUE, SO THAT NEXT TIME WHEN THE FLAG IS TRUE, MESSAGE GETS DELIVERED! 
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
4

2 に答える 2

2

使用している春のバージョン。

とにかくこれをチェックしてください:

http://forum.springsource.org/showthread.php?21601-JMS-queue-message-viewing-without-removing-it-from-the-queue

お役に立てば幸いです

于 2013-03-28T13:59:13.700 に答える
0

コンテナーはセッションをコミットします (リスナーが例外をスローしない限り)。

于 2013-03-28T14:33:10.970 に答える