Как не потерять данные, пришедшие из внешней системы?
Добрый день! Столкнулся с проблемой:
Пользователь инициирует действие по отправке документа из внешней системы (до нее нет доступа) в мою систему. Моя система, получив документ, проводит простые преобразования, затем пересылает в другую внешнюю систему, которая должна учесть преобразованный документ и вернуть в мою систему статус "Успешно". На этапе "пришло в мою систему"->"вернулся статус успешно" могут возникнуть ошибки: во время простых преобразований, во время пересылки запроса-ответа в стороннюю систему, да и в последней внешней системе что-то может пойти не так. Как в таких негативных случаях сохранить документ и не потерять его, и желательно повторно отправлять в стороннюю систему, пока ответ не будет "Успех"? СУБД использовать не могу, т.к. приложение не предусматривает необходимость в СУБД. Пока склоняюсь к очереди сообщений JMS. Есть ли ещё какие варианты?
Можно, например, просто сохранять любые данные в файлах перед существенными операциями, чтобы в случае необходимости повторить их обработку. И требование по отсутствию СУБД можно обойти, используя embedded-базы типа sqlite/berkeleydb, что часто и делают в таких случаях.