Мы используем комбинацию Oracle 11G и JDK1.8. В нашем приложении мы используем транзакцию XAConnection, XAResource для DB. т.е.) распределенные транзакции.Как разрешить распределенную транзакцию java.sql.SQLException, ожидающую блокировки
В некоторых случаях нам нужно убить наш Java-процесс, чтобы остановить приложение. После убийства, если мы перезапустим наше приложение, мы получаем исключение ниже при выполнении транзакции БД.
java.sql.SQLException: ORA-02049: timeout: distributed transaction
waiting for lock
После этого в течение нескольких часов мы не можем использовать наше приложение до момента блокировки.
Может ли кто-нибудь предоставить мне какое-то решение, чтобы мы могли продолжить работу, а не ждать выхода замка.
Я попробовал вариант ниже:
а) принес SID и убил сессию, используя изменить command.After это также блокировка таблицы не выпущен.
У меня есть очень небольшое количество данных.
Как вы убили сеанс - с помощью опции «немедленного»? Убийство процесса Java похоже на тяжелый подход. Нельзя добавить механизм для запуска чистого выхода; или это приложение в состоянии, в котором оно не будет отвечать в любом случае? –
Есть ли строка в dba_2pc_pending для ожидающей распределенной транзакции, которая может быть совершена или откат? –
@justin Cave Нет строк в dba_2pc_pending – ThirumalMarugan