У меня есть конфигурация SI, состоящая из нескольких источников данных. Скажи: DataSource A - Подключение к Oracle DataSource B - Подключение к DB2 DataSource C - Подключение к MySQLНесколько источников данных, несколько менеджеров транзакций. Какой из них используется?
Один из SI субпотоков пишет двум из этих источников данных, и я хотел бы сделать это в 1-ПК.
Так я определяю ChainedTransactionManager с DataSource А и DataSource В. Давайте назовем это chainedTransactionMgr
У меня также есть два JDBC шаблоны templateA (с A, как это источник данных) и templateB (с B, как это DataSource)
Предположим, что у меня есть поток, где я отправляю сообщение каналу публикации-подписки с двумя получателями, которые являются активаторами службы, которые просто используют templateA и templateB для записи msg в соответствующий источник данных. Будет ли задействован цепной менеджер транзакций в этом потоке?
Нужно ли мне вставлять цепочку управления транзакциями где угодно? У меня есть подпоток, который представляет собой пару вызовов активатора службы, которые записываются в БД. Они работают в одном потоке, и порядок, в котором они вызывают БД, - это тот же порядок, в котором у ChainedTransactionManager есть ресурсы, но менеджер транзакций не используется. Мне нужно явно начать транзакцию? – neesh
Конечно, вам нужно запустить TX. Пожалуйста, прочитайте Справочное руководство по этому вопросу для возможных мест для запуска TX: http://docs.spring.io/spring-integration/reference/html/transactions.html –