Pro C連線中斷測試 Oracle 9i

2021-08-22 14:01:42 字數 1473 閱讀 2716

為了測試應用程式的健壯性,故意對正常連線的pro*c應該程式進行了中斷,從而觀察它們的表現。

測試的方法為:

1、在編譯pro*c應用的時候加上cpool=no或cpool=yes,測試有連線池和沒連線池的不同表現;

2、啟動應用程式後等待輸入,將流程掛起;

3、在資料庫中查詢此測試程式的session:

select*fromv$sessionwhereprogram='testconnpool.exe';

4、生成殺掉session的**:

select'alter system kill session ''' || sid || ',' || serial# || ''';'

fromv$session

whereprogram='testconnpool.exe';

5、執行sql殺掉session:

altersystemkillsession'23,1308';

…..

6、按任意鍵讓應用程式繼續執行,檢視錯誤資訊。

7、發生錯誤的時候嘗試重新連線。

以下是各種情況下的測試結果:

測試情況

呼叫時的錯誤碼

能否重連

不使用連線池,使用kill session人為斷開連線

ora-00028 your session has been killed

使用連線池,使用kill session人為斷開所有連線

ora-03114: 未連線到oralce

不能。連線池被破壞,只有重啟程序。重新連線的時候顯示這個錯誤:

ora-00022 invalid session id; access denied

使用連線池,使用kill session人為斷開連線池連線

不報錯。很奇怪的現象,照理說物理連線都被斷開了,結果仍然能夠正常執行。

使用連線池,使用kill session人為斷開非連線池連線

ora-03114: 未連線到 oralce

能。

不使用連線池,拔掉網線後恢復網路連線

ora-12571:tns:packet writer failure

能。這個錯誤是客戶端錯誤,重新連線後建立了新的session,舊的session仍在oracle的session列表中。(猜想如果應用程式頻繁崩潰和重啟,可能導致oracle的連線耗盡)

使用連線池,拔掉網線後恢復網路連線

ora-12571:tns:packet writer failure

能。oracle重新建立了連線池的物理連線,但是沒有建立新的邏輯連線。

Pro C連線中斷測試 Oracle 9i

為了測試應用程式的健壯性,故意對正常連線的pro c應該程式進行了中斷,從而觀察它們的表現。測試的方法為 1 在編譯pro c應用的時候加上cpool no或cpool yes,測試有連線池和沒連線池的不同表現 2 啟動應用程式後等待輸入,將流程掛起 3 在資料庫中查詢此測試程式的session s...

PowerDesigner連線Oracle資料庫

引用 一。注意 1.powerdesigner的安裝目錄不能有空格,否則測試連線時報錯uable to connect,sqlstate 08004,ora 12154 tns 無法解析指定的連線識別符號 二。建立連線,win7系統,64位,oracle伺服器在遠端11g,本地僅安裝32位10g的o...

使用 proc測試

下面所示清單為乙個簡單的 proc 使用範例,這段 在模組載入函式中建立 proc 檔案節點,在模組解除安裝函式中撤銷 proc 節點,檔案中儲存了乙個32位無符號整形值。include include include static struct proc dir entry proc entry ...