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

断続的なORA-12519(TNS:適切なハンドラーが見つかりません)エラーの原因

    これがみんなの答えになるかどうかはわかりませんが、少し掘り下げた後、これが私たちが思いついたものです。

    エラーは明らかにリスナーが接続を受け入れていなかったという事実によって引き起こされますが、他のテストが正常に接続できる場合(sqlplusを介して問題なく接続できる場合)になぜそのエラーが発生するのでしょうか?この問題の鍵は、接続できなかったことではなく、断続的であったことです。

    調査の結果、クラスのセットアップ中に作成された静的データがあり、テストクラスの存続期間中は接続を開いたままにして、新しい接続を作成していることがわかりました。これで、このクラスがスコープ外になったときにすべてのリソースが適切に解放されたとしても(もちろん、finally {}ブロックを介して)、実行中にこのクラスが使用可能なすべての接続を飲み込む場合がありました(大丈夫、悪い練習アラート-これは、プールを使用するのではなく直接接続する単体テストコードであったため、本番環境では同じ問題は発生しませんでした。

    修正は、そのクラスを静的にしてクラスセットアップで実行するのではなく、メソッドごとのsetUpメソッドとtearDownメソッドで使用することでした。

    したがって、自分のアプリでこのエラーが発生した場合は、その悪い男の子にプロファイラーを叩き、接続リークがあるかどうかを確認してください。お役に立てば幸いです。



    1. MariaDBでのCAST()のしくみ

    2. 休日を除く2つの日付の間の平日数を取得する関数

    3. MySQLをロックせずに選択する方法はありますか?

    4. Androidを使用してsqliteで行数を取得するにはどうすればよいですか?