0

データベース (Oracle) キュー テーブルをリッスンし、そのキューにレコードが配置されている場合にそれを処理する Java クラスがあります。UAT および開発環境では正常に動作しました。本番環境へのデプロイ時に、キューからレコードを読み取れない場合があります。レコードが挿入されると、それを検出できず、レコードはキューに残ります。これはめったに起こりませんが、起こります。統計を出すとしたら、1 日にキューに入れられた 30 件のレコードのうち、約 8 件が達成できません。レコードを読み取れるようにするには、アプリ全体を再起動する必要があります。

これが私のクラスのコードスニペットです..

public class SomeListener implements MessageListener{

public void onMessage(Message msg){
     InputStream input = null;
    try {
        TextMessage txtMsg = (TextMessage) msg;
        String text = txtMsg.getText(); 
        input = new ByteArrayInputStream(text.getBytes());
    } catch (Exception e1) {
        // TODO Auto-generated catch block
        logger.error("Parsing from the queue.... failed",e1);
        e1.printStackTrace();
    }

    //process text message
}

}

ログから例外の痕跡が見つからないのは奇妙なことです。

誰でも助けることができますか?ちなみに、 receiveTimeout を 10 秒に設定しています

4

1 に答える 1