Oracle のトランザクションロック待ち

排他行ロック(TYPE=TX, LMODE=6)と行排他テーブルロック(TYPE=TM, LMODE=3)がかかってるのはわかるけど、何で共有テーブルロック(TYPE=TX, REQUEST=4)で待機してるんだろう?

Primary Key に同じ値を insert すると、トランザクション・ロック(TX)の競合が発生する - ablog

って以前のエントリに書いた。
トランザクションロック待ちの場合、TYPE=TX, REQUEST=4 になるけど、何か関連あるのかな?
いつかこの謎(PKに同じ値をinsertするとなぜ「TYPE=TX, REQUEST=4」で待機するか)を解きたいな〜


トランザクションロック待ちはITLに使える領域がいっぱいになったときに発生する。ITLはブロックヘッダやブロックの空き領域にあり、ブロックを変更したトランザクションがどのロールバックセグメントのどこにUNDO情報を書込んだかなどが記録されている。