忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ロック解除

SI ObjectbrowserやSQL*Plusで

排他処理(for update nowaitなど)があり、COMMITまたはROLLBACKをがない
処理のテストをする場合、走行後にCOMMITまたはROLLBACKを発行しないと
ロック状態が開放されないことがある。

なんらかの要因でSI ObjectbrowserやSQL*Plusを強制終了してしまうと
さらにその確立が高まる。



●排他エラーメッセージ
"ORA-00054: リソース・ビジー、NOWAITが指定されていました。"

●排他エラーコード判定(PL/SQL)
EXCEPTIONのWHEN OTHER句でSQLCODE = -54であれば排他エラー


●ロックしてしまった場合の情報を取得するには
SELECT xidusn,username,object_name,s.sid,serial#,
lmode,request,ctime,id2
FROM dba_objects o,v$locked_object l,v$session s ,v$lock v
WHERE o.object_id=l.object_id
and l.session_id=s.sid
and l.session_id=v.sid
and object_name='テーブル名';

ctimeは、掴んでいる時間(s)


●ロック解除方法 

【コマンド】
alter system kill session 'sid,serial#';

【SI ObjectBrowser】
ツールバーメニュー→管理→ロック情報 をクリック
ロックしているセッションを特定!
次に、ツールバーメニュー→管理→セッション情報 をクリック
特定したセッションを抹殺!

※いずれもシステム権限(sysdba)がないとダメ
→sysdbaで接続は SQL>conn / as sysdba;

②ひたすら待つ

③SI ObjectbrowseなりSQL*Plusがあがったままなら
 COMMITなりROLLBACKなりSQL発行しまくれば、ロックは解放できる♪

PR

この記事にコメントする

Name
Title
Mail
URL
Comment
Pass
Vodafone絵文字 i-mode絵文字 Ezweb絵文字

この記事へのトラックバック

この記事にトラックバックする:
<< PREVHOME
6 |  5 |  4 |  3 |  2 |  1 | 

カレンダー

03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

フリーエリア

最新CM

最新TB

プロフィール

HN:
No Name Ninja
性別:
非公開

バーコード

ブログ内検索

P R

Powered byNinja Blog  Template & Material by 素材屋405番地

忍者ブログ [PR]