Windows環境でORACLEデータベースを使用しており、TomcatでJSP/サーブレットWebアプリケーションを実行しています。アプリケーションでいくつかの操作を行った後、次のエラーが発生します。
ORA-12518、TNS:リスナーはクライアント接続をハンドオフできませんでした
誰かが私がこの問題の理由を特定し、私に解決策を提案するのを手伝ってくれるでしょうか?
この質問の解決策は、プロセスの数を増やすことです:
1. Open command prompt
2. sqlplus / as sysdba; //login sysdba user
3. startup force;
4. show parameter processes; // This shows 150(some default) processes allocated, then increase the count to 800
5. alter system set processes=800 scope=spfile;
試してテストしたとおり。
私の場合、アプリケーションでデータベース接続を適切に閉じていないことが原因であることがわかりました。開いている接続が多すぎるため、Oracle はこれ以上接続できません。これはリソースの制限です。後でオラクル フォーラムを確認すると、この問題について言及されているいくつかの理由がわかりました。それらのいくつかはそうです。
2 番目の場合は、large_pool_size を確認するか、ディスパッチャーがすべての接続に十分であることを確認してください。
詳細については、以下のリンクを参照してください。 https://community.oracle.com/message/1874842#1874842
私は同じ問題に出くわしました.私の場合、それはエラーを与えていた新しいデスクトップへのOracleクライアントの新規インストールであり、他のクライアントが動作していたので、データベース構成の修正ではないことがわかっていました. tnsping は正常に機能しましたが、sqlplus は ora-12518 リスナー エラーで失敗しました。
service_name の代わりに SID を持つ tnsnames.ora エントリがありましたが、それを修正しても同じエラーが発生し、service_name も間違っていることがわかりました。それを修正したら、エラーはなくなりました。
アプリケーションでクエリを実行するときに同じ問題が発生しました。Ruby on Rails で Oracle クライアントを使用しています。
問題は、誤って DB との接続をいくつか開始し、それらを閉じなかったときに始まりました。
これを修正すると、すべてが再び正常に機能し始めました。
これが同じ問題を抱えている別の人に役立つことを願っています。