一次解決session無法完全刪除問題的全過程(原創)

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- 一次解決session無法完全刪除問題的全過程(原創) (http://www.webasp.net/article/22/21242.htm)
-- 作者:未知
-- 發佈日期: 2005-04-29

開發環境:win2000server+oracle9i+delphi開發人員報告:在程序中殺了JOB,但是被操作的表還是鎖表狀態,              其中有一張日誌表還在不斷插入記錄,直到執行完所有插入操作(一個漫長的等待過程)才能解鎖現場描述:oem中被殺job起的SESSION狀態為killed,其中有3張表被鎖點擊右鍵--》中斷會話            提示: 標記要刪去的會話

===================================================================================================處理方法一 :

1.SELECT saddr,sid,serial#,paddr,username,status FROM v$session WHERE username IS NOT NULLexample:saddr,sid,serial#,paddr,username,status FROM v$session WHERE username = 'XNJW0419' ;SADDR SID SERIAL# PADDR USERNAME STATUS -------- ---------- ---------- -------- ------------------------------ -------- 542E0E6C 11 314 542B70E8 EYGLE INACTIVE 542E5044 18 662 542B6D38 SYS ACTIVE

2.ALTER SYSTEM KILL SESSION 'sid, serial#';example:ALTER SYSTEM KILL SESSION '11,314';(註:在sqlplus中執行 )

結果: 提示標記要刪去的會話 無法釋放會話,未成功解鎖

====================================================================================================處理方法二 :

a、 找到你要殺掉的那個SESSION, 並記下paddr

SELECT sid, username, paddr, status FROM v$session WHERE username = '用戶名' ; example:SELECT sid, username, paddr, status FROM v$session WHERE username = 'XNJW0419' ;       SID USERNAME                       PADDR    STATUS---------- ------------------------------ -------- --------        10 XNJW0419                       2B5E2E2C KILLED

b、 找到這個SESSION所對應的spid

SELECT * FROM v$process WHERE addr = '上面查尋的paddr'; example:SELECT ADDR,PID,SPID,USERNAME,SERIAL#,TERMINAL FROM v$process WHERE addr = '2B5E2E2C';ADDR            PID SPID         USERNAME           SERIAL# TERMINAL-------- ---------- ------------ --------------- ---------- ----------------2B5E2E2C         44 1204         SYSTEM                 -99 JWC

c、 殺掉spid所標識的那個進程

D:\>orakill sid  spid (註:cmd命令窗口中執行 只有oracle服務器端才有orakill命令)example: D:\>orakill oemrep 1204

提示:KILL OF THREAD id 1204 IN INSTANCE oemrep successfully signalled.

結果:成功刪除該SESSION,表也解鎖





webasp.net