Отключить транзакции в моей работе Spring Batch - PullRequest
0 голосов
/ 12 марта 2019

Мне нужно вставить запись в мою базу данных, чтобы другая система могла прочитать эту запись. После этого я напишу (с помощью ItemWriter) ответ, полученный от этой системы, в файле CSV.

Моя проблема в том, что система не может прочитать запись, так как Spring Batch является транзакционным. Как я могу отключить это свойство?

1 Ответ

1 голос
/ 19 марта 2019

Вы не хотите отключать принудительное выполнение транзакций, которое может привести к серьезной проблеме целостности данных. Даже ошибка в 1% может легко вызвать десятки тысяч или даже десятки миллионов неполных или плохих записей. Особенно если, скажем, одна из баз данных, с которыми вы взаимодействуете, или файловые системы, которые вы пишете, становятся недоступными. Что со временем случится. Это также нарушит возможности повторного выполнения задания.

Лучшим вариантом было бы разбить процесс на несколько этапов или заданий, чтобы границы транзакций соответствовали вашему процессу. Поэтому один из них записывает в эту другую базу данных, а затем следующий шаг или задание выполняет чтение и запись в файл.

...