Проблема с коммитами при использовании 2 источников данных в Spring Batch - PullRequest
0 голосов
/ 09 июня 2019

Мой проект выполняет пакетную обработку и пытается использовать 2 источника данных (оракул) (один для весенних метаданных и второй для приложения).

Пример конфигурации находится в проекте github (github.com/jobas2007/spring_proj), но поскольку настроены 2 диспетчера транзакций / источник данных, по-видимому, существует несогласованность в управлении транзакциями между фиксациями, выполняемыми для 2 источников данных.Первичные фиксации источника данных (для пакетной обработки) происходят правильно, но когда в конечном итоге выполняется «сохранение» в ItemWriter, при сохранении / обновлении таблиц приложения наблюдается очень непредсказуемое поведение.

Пожалуйста, посоветуйте хороший способ управления транзакциями междунесколько источников данных?

По ссылке https://blog.codecentric.de/en/2012/03/transactions-in-spring-batch-part-1-the-basics/ Tx запускается для чанка при входе в шаг

Пробное предложение из одного из постов использовать ChainedTransactionManager, но сталкивается с серьезными проблемами впроводка Использование нескольких источников данных в Spring Batch

код в github

ожидаемый результат - предсказуемое надежное управление передачей

1 Ответ

0 голосов
/ 11 июня 2019

Если вы решили использовать два источника данных в Spring Batch, вам нужно использовать JtaTransactionManager для синхронизации распределенной транзакции между двумя источниками данных.

Здесь вы можете найти отличную статью доктора Дэвида Сайера: Распределенные транзакции в Spring с XA и без

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...