оРАКля, активная транзакция без сессии
Если это так то можешь посмотреть с какой скоростью убывает USED_UBLK и оценить сколько ещё осталось.
P.s. Ну да я понял что слегка опоздал.
Да и не делалось там никаких особо страшных вещей, типа, если ты думаешь про инсерт на миллион рядов в global temporary table, затем убить транзакцию внезапно и потом GC жрёт 100% проца часа два — нет, там были сотни инсертов в лучшем случае.
Оставить комментарий
bleyman
У меня упала программа. При попытке её перезапустить, обнаружилось что кто-то держит лок на некий ряд в одной таблице.У заблокированной сессии (которая тупо делает "delete from my_table") blocking_session пустая, blocking_session_status=UNKNOWN, event="enq: TX - row lock contention". dba_blockers, dba_2pc_pending (программа вроде использует XA) — пустые.
Дальше ещё интересней: в v$transactions обнаружилась единственная, висящая примерно с момента падения активная транзакция. Её ses_addr не соответствует ни одной из сессий в v$sessions.
Как так может быть? Как можно по транзакции узнать какие-нибудь интересные вещи типа чего она ждёт, какие sql в ней выполнялись, какие объекты она потрогает если её закоммитить, и тому подобное? Можно ли что-нибудь интересное вытащить из ses_addr, я так понимаю это тупо адрес в памяти и у оракли есть какие-то низкоуровневые вью которые на самом деле прямо на пямять смотрят?