2012-04-23 112 views
5

我有一些單元測試與Oracle-11g XE對話。獨立運行的每個測試工作正常,但是當我運行它們,前幾關,並試圖建立數據庫連接時,其餘的失敗,此錯誤:JDBC連接失敗ORA-12516

ORA-12516, TNS:listener could not find available handler with matching protocol stack 

出現這種情況,無論我跑什麼樣的順序測試,所以問題似乎是我在DB服務器上使用某種資源。

我試着運行測試慢慢地,並與檢查使用的連接#運行期間:

select count(*) from v$session; 

的會話#總是26和28之間徘徊,並限制設置爲49,所以我不確定問題是什麼。

如果我快速運行測試,問題也會變得更糟。當我運行它們而沒有任何額外的延遲時,90%會因此錯誤而失敗。我在tearDown()中睡了一覺,以更好地瞭解發生了什麼,在這種情況下,只有大約10%失敗。

回答

0

看看會議和V $參數工藝限制,同時也alert.log中和LISTENER.LOG 答案是在外面有

3

你可能需要增大PROCESSES參數的值。還要執行「lsnrctl servcies」命令以查看該服務是否顯示爲已阻止。我記得類似的問題,其中聽衆很聰明,並計算出服務請求的連接數。在PMON通知它之前,收聽者不會了解斷開連接。這可能是5或10分鐘後。所以聽衆認爲你有很多開放的聯繫,並決定積極主動,不再發布任何連接 - 直到PMON告知。如果您增加PROCESSES參數,您可能會碰到您在窗口中可能建立的連接數。

UPDATE:此鏈接描述它:https://forums.oracle.com/forums/thread.jspa?threadID=360226