簡體   English   中英

使用Oracle的ASP .Net連接池

[英]ASP .Net Connection Pooling With Oracle

大家好,各位天才,謝謝。

我有一個Asp.NET Web服務,它提供了大約20到30種方法。 對於數據庫,我正在使用Delete重復的wordNet和DB操作的單個類來使用Oracle數據庫,對於每個請求,我打開連接並確定完成其工作后就關閉它,這意味着我將關閉那里的所有連接我的代碼中沒有連接泄漏。 我已經檢查了10次,但是當我檢查數據庫(Oracle 11G)時,有超過20小時處於非活動狀態的會話。 我正在V $ Session表中查找這些會話,但是我很困惑,即使關閉所有連接,它們也不會在長時間后被破壞。

請與我分享您的答案,因為我可以關閉所有連接,並且我做得很好,但是仍然有20多個小時的非活動會話。 這怎么可能 ?

在asp.net mvc項目中,我們與連接到Oracle數據庫(帶有池)存在類似的問題。

很長一段時間后,我們發現問題出在oracle db-links。 如果調用使用oracle db-link的存儲過程 ,則必須調用DBMS_SESSION.CLOSE_DATABASE_LINK('db_link_name'); 存儲過程開始

例如:

PROCEDURE simple_procedure(refCur out SYS_REFCURSOR) AS BEGIN

    /* we don't really know if db-link is open or not */
    BEGIN
        DBMS_SESSION.CLOSE_DATABASE_LINK('dblink_name');
        EXCEPTION WHEN OTHERS THEN null;
    END;

    /* call db-link */
    OPEN refCur FOR SELECT * FROM DUAL@dblink_name

    EXCEPTION WHEN NO_DATA_FOUND THEN null;

END simple_procedure;

之后,會話問題就消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM