2012-07-07 47 views
1

我需要測試我的應用程序對網絡問題的魯棒性。但是我沒有物理地訪問網絡。我只能以SYS身份訪問Oracle。是否有可能可能會沉默殺死用戶會話,所以當應用程序嘗試從連接中獲取數據時,jdbc驅動程序會生成錯誤17410?如何在Oracle中終止用戶會話靜默或重現錯誤17410?

oracle: No more data to read from socket 

當我嘗試通過sid終止會話 - oracle發送關於終止會話的警報,並且這不是17410錯誤。

回答

0

如果你只能訪問數據庫,你知道你想要殺會話的SID和Serial,可以發出

ALTER SYSTEM KILL SESSION 'sid,serial#'; 

檢查此鏈接查看更多選項。

http://www.oracle-base.com/articles/misc/killing-oracle-sessions.php

+0

是的,我使用這個 - 但客戶端部件上的jdbc驅動程序接收到關於ORA-00028類似於死亡會話的警報:您的會話已被終止。我需要收到錯誤17410 – user710818 2012-07-07 03:31:09

+0

對不起,我沒有正確地關注你。你需要以某種方式模擬17410錯誤? – 2012-07-07 03:37:05

+0

是的,我無法斷開物理連接,因爲遠程服務器上的數據庫和客戶端。但有時會發生網絡問題。我有固定的客戶端應用程序,但需要檢查我的修復程序是否可用 – user710818 2012-07-07 03:46:22

1

可以提高與PRAGMA EXCEPTION_INIT任何錯誤代碼。

DECLARE 
    e_no_more_data EXCEPTION 
    pragma exception_init(e_no_more_data , -17410 ); 
BEGIN 
    RAISE e_no_more_data; 
END; 
/

不知道它是否真的模擬了錯誤。

相關問題