0

現在、組み込みの ActiveMQ ブローカーを実行する Tomcat サーバーをセットアップしています。Spring を使用して JMS を構成しています。トピックをリッスンするテスト アプリケーションを作成しました。テスト アプリケーションを終了すると、ActiveMQ ブローカーが SocketException をスローします。例外は次のとおりです。

2009-06-09 13:12:48,005 DEBUG Transport:229 - Transport failed: java.net.SocketException: Connection reset
java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:168)
        at org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:50)
        at org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:58)
        at java.io.DataInputStream.readInt(DataInputStream.java:370)
        at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:269)
        at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:210)
        at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:202)
        at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
        at java.lang.Thread.run(Thread.java:619)

私のテスト アプリケーションは、コンテキスト xml ファイルをロードするだけで、ループは 60 秒ごとにスリープします。

public static void main(String[] args) {
        long numMillisecondsToSleep = 60000; 
        new ClassPathXmlApplicationContext("client-context.xml");  

        while (true) {
            try {
                logger.info("Sleeping for 60 seconds");
                Thread.sleep(numMillisecondsToSleep);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

この例外が発生する理由を誰かが知っているのではないかと思っていました。私は一般的に ActiveMQ と JMS に非常に慣れていないので、どんなアイデアでも大歓迎です。

4

2 に答える 2

0

メソッド呼び出しを介して組み込みブローカーをうまくシャットダウンする方法があると思います。埋め込みコードと一緒に設定を投稿すると、人々が何が起こっているのかを理解するのに役立ちます。

于 2009-06-09T20:43:03.340 に答える