メッセージを追跡する非常に単純なアプリケーションを実装するために QuickFIX/J を使用していTradeCaptureReportます。基本的に、アプリケーションは受信しpublic void fromApp(Message message, SessionID session)たすべてのメッセージのみをデータベースに保存します。
何らかの理由でデータベースが一時的にダウンしているとします。このような状況に対処する最善の方法は何でしょうか?
RuntimeExceptionfrom を投げるだけpublic void fromApp(Message message, SessionID session)です。これにより、メッセージがキューから削除されなくfromAppなり、データベースが再び起動するまで、このメッセージで何度も呼び出されます。私のFIXエンジンに到着する他のメッセージは、私たちの側に積み上げられます.データベース接続の問題を検出するとすぐに、ログアウトして から RuntimeException をスローし
fromAppます。これにより、最後のメッセージがキューから削除されず、それ以降のメッセージが FIX セッションの反対側 (カウンターパーティー) に積み上げられます。データベースが再び起動するまで、データベースのポーリングを続けます。もう一度、ログオンして、前の場所から続行します。
他のオプションはありますか?