ロックの解除方法

あるアプリのデバッグ中に、間違ってAPサーバを停止してしまい、ロックされたままになってしまった。
その時に調べたロックの解除方法。

ロック原因のセッション抽出

 SELECT SID,
        SERIAL#
   FROM V$SESSION
  WHERE SID IN (SELECT SID
                  FROM V$LOCK
                  WHERE TYPE IN ('TM','TX')
               );

つまり、表ロック、行ロックを保持するセッションIDを含むセッションIDとセッション・シリアル番号を抽出しています。

ロックの解除

 ALTER SYSTEM KILL SESSION '<SID>, <SERIAL#>';

※SID、SERIAL#には、さきほど抽出したセッション情報を入力します。

注意事項

DBA権限がないと、上記のクエリは実行できないです。

最後に

APサーバが停止時に、自動的にロールバックするようにすればいいんじゃね?
今度、作成してみよう!!