sql >> データベース >  >> RDS >> Oracle

接続エラー時にODP.NET接続プールをクリアするにはどうすればよいですか?

    odac(odp) 11gを使用できる場合 、プールの接続の検証を設定しています。使用する前に接続を検証できます。

    接続の検証 属性は、プールから出てくる接続を検証します。この属性は、アプリケーションに提供される直前に各接続を検証するためにデータベースへのラウンドトリップが発生するため、絶対に必要な場合にのみ使用する必要があります。無効な接続が一般的でない場合、開発者は、Validate Connection属性を使用する代わりに、独自のイベントハンドラーを作成して、新しい接続を取得および検証できます。これにより、通常、パフォーマンスが向上します。

    十分ではない場合は、オラクルからこのドキュメントを試すことができます。

    接続プール管理

    ODP.NET接続プール管理は、ODP.NETアプリケーションに明示的な接続プール制御を提供します。アプリケーションは、接続プール内の接続を明示的にクリアできます。

    接続プール管理を使用すると、アプリケーションは次のことを実行できます。

    注:これらのAPIは、.NETストアドプロシージャではサポートされていません。 ClearPoolを使用して接続プールから接続をクリアします メソッド。

    ClearAllPools を使用して、アプリケーションドメイン内のすべての接続プールの接続をクリアします メソッド。

    接続がプールからクリアされると、ODP.NETは、少なくとも接続文字列の最小プールサイズで設定された接続数を持つ新しい接続をプールに再設定します。新しい接続は、必ずしもプールに有効な接続があることを意味するわけではありません。たとえば、ClearPoolまたはClearAllPoolsが呼び出されたときにデータベースサーバーがダウンした場合、ODP.NETは新しい接続を作成しますが、データベースが後で起動した場合でも、データベースに接続できないため、これらの接続は無効です。

    アプリケーションがデータベースへの有効な接続を作成できるようになるまで、ClearPoolとClearAllPoolsを呼び出さないことをお勧めします。NET開発者は、有効なデータベース接続を作成できるかどうかを継続的にチェックするコードを開発し、これが真になるとClearPoolまたはClearAllPoolsを呼び出すことができます。

    また、この投稿がお役に立てば幸いです。

    更新 :@MPelletierが指摘しているように、Oracle12の場合はリンクが異なります。



    1. 製品レビュー–MySQLのステラ修復

    2. ORA-01460:実装されていない、または不当な変換が要求されました

    3. MySQLは自動的に文字列を数値にキャスト/変換しますか?

    4. PL / SQLで文字列を分割する機能はありますか?