Я использую QuickFIX/J для реализации очень простого приложения, которое отслеживает сообщения TradeCaptureReport
. В основном приложение сохраняет только все сообщения, полученные через public void fromApp(Message message, SessionID session)
, в базу данных.Опции для обработки ошибок в QuickFix/J при обработке входящих сообщений FIX
Предположим, что по какой-то причине база данных временно отключена. Какой был бы лучший способ решить такую ситуацию?
Просто бросить
RuntimeException
изpublic void fromApp(Message message, SessionID session)
. Это предотвратит удаление сообщения из очереди, иfromApp
будет вызываться снова и снова с этим сообщением до тех пор, пока база данных не будет снова вставлена. Другие сообщения, поступающие на мой движок FIX, будут складываться с нашей стороны.Как только мы обнаруживаем проблему с подключением к базе данных, мы выходим из системы и высылаем исключение RuntimeException из
fromApp
. Это гарантирует, что последнее сообщение не будет удалено из очереди, и любые другие сообщения будут складываться с другой стороны сеанса FIX (у контрагента). Мы продолжаем опрос базы данных, пока она не появится снова. Вернемся снова, мы заходим и продолжаем с того места, где мы ушли.
Есть ли другие варианты?