貼乙個清理死鎖的語句

2021-08-14 04:58:08 字數 728 閱讀 5832

乙個客戶的小系統,程式部署大概是08年左右,9i的庫,感覺可能是當初設計的程式和oracle9i對死鎖的處理方面都有一些問題,沒法改變業務需求,這麼老的程式跑到現在真不容易,應急的思路給寫了這個語句。

declare

v_sid v$session.sid%type;

v_serial# v$session.serial#%type;

cursor cur_session is

select p.spid, a.serial# from v$process p, v$session a, v$locked_object b, all_objects c where p.addr = a.paddr and a.process = b.process

and c.object_id = b.object_id;

begin

open cur_session;

loop

fetch cur_session into v_sid,v_serial#;

execute immediate 'alter system kill session '||chr(39)||v_sid||','||v_serial#||chr(39);

exit

when cur_session%notfound;

endloop;

close cur_session;

end;

乙個簡單的死鎖

死鎖 當第乙個執行緒進入第乙個if進入鎖定o1鎖定o2的同步塊,第二個執行緒在外邊等待 當第乙個執行緒出來進入第二個if,第二個執行緒進第乙個if進入o1同步 塊,第乙個執行緒進入第二個if的o2同步 塊,兩個執行緒互相等待彼此釋放鎖,造成死鎖 public class diedlock imple...

乙個死鎖問題

表結構 create table test id bigint 20 unsigned not null auto increment comment 自增id a varchar 100 not null default comment 唯一健 b bigint 20 unsigned not n...

寫乙個死鎖

死鎖產生的原因 乙個執行緒進入鎖一需要鎖二,另乙個執行緒進入鎖二需要鎖一,由於鎖一鎖二都被佔了,所以執行緒執行不下去。所以只需寫乙個相互交叉的鎖一鎖二就可以產生死鎖。class sisuogoucheng implements runnable public void run if panduan ...