Мы используем Spring Batch, который управляет транзакциями для нас.
Некоторые действия требуют регистрации в БД (несколько INSERT
) независимо от фиксации / отката транзакции.
Я вижу, что Oracle 11 не поддерживает точки сохранения драйвером JDB C: Jdb c проверка возможностей - выпуск точки сохранения
Поэтому я не могу просто объявить методы ведения журнала как @Transactional(propagation = Propagation.REQUIRES_NEW)
.
Есть ли способ запросить новое соединение у JpaTransactionManager
, оставив немного в стороне существующее? Я имею в виду каким-то декларативным способом, совместимым с Spring AOP magi c?
Еще одна проблема - это тупики. Если потоки запрашивают более 1 соединения с БД на поток - условия гонки здесь.
Возможно, мы увидим java.sql.SQLTimeoutException
. По крайней мере, это не будет постоянный тупик ...
ОБНОВЛЕНИЕ Ссылки на соответствующие темы: