ORA-12516:リスナーが必要なサービスプロトコルスタックを見つけることができませんハンドラ(rpm)であることを

はじめに
、本番環境での展開プロジェクトの後のシーン、2台のアプリケーション・サーバーの合計、nginxのによって行われ、インストールされた各3 Tomcatのクラスタリングとロードバランシング、テスト今日を記述簡単に、同じコードは、単一のアプリケーション・サーバーで見つかりました、tomcat1通常のTOMCAT2、およびアクセスはタイムズ404エラーtomcat3、データベース・サーバが問題を発見された次のログを参照してください。

 


次にどのような状況、およびログオンすると、次のエラーを報告しFOUNDを見ることがDBサーバーにログオン:

 


実際にはまだログオンしていないプロセスのOracleとのセッションに達するかさえ、あなたが解決策について詳しく説明し、最大値を超えたため、根本的な理由があります。

ビューprocress&パラメータ値との占有値セッション
により、あなたが署名するので、DBAログインがオンになっていないとして、SYSを使用することはできません最大接続を超えると、上記の、あなた占有procressを切断する最初の必要性は、つまり、いくつかのTomcatの接続を解放することができます停止しました、あなたは、ログインすることができます。ここで私は、すべてのTomcatを停止し、その後、sysユーザーによるパラメータ値と占有値procressとのセッションを見てSQLPLUSログインします。

 


プログラムがデータベースに接続されていない時点で占有は値のprocressを見ることができない18で、パラメータ値は300で、すべてのこの時間は、フットプリントは、各アプリケーションサーバーを見て、Tomcatアプリケーションサーバを起動し、[次へ、それぞれ、小さいです最初の二つのTomcatアプリケーションサーバーと1件の下で3のTomcatのアプリケーションサーバ1の後にTomcatの1の下の最初の1、、〜のprocress占有値を変更
Tomcatの開始後のホーム・ページにアクセスします。

 


ホームページを訪問した後、第二Tomcatを起動します。

 


Tomcatはホームページを訪問した後、第三起動します。


不难发现每次process的值都增加了60,此时应用服务器1的tomcat已全部启动,那么也意味着应用服务器2的第二台tomcat启动后,process的值已超过300(198+120=318),所以当再启动应用服务器2的第3台tomcat时就无法登录了,所以我们仅需要修改process和session的最大值即可,修改语句如下:

alter system set processes=1000 scope=spfile;
alter system set sessions=1105 scope=spfile;

 


注意一下processes的值和sessions的值,Oracle官方文档中要求:

sessions=processes*1.5+5

 


也就是说sessions的值是根据processes的值计算后得到的,这里需要注意一下,最后重启一下Oracle服务即可,此时再分别开启应用服务器2的3个tomcat并依次访问主页后再看一下process和session的参数值和占用值情况:

 


如上图,可以看到process的值已经成功修改为1000,而此时开启了6个tomcat所占用的process值为378,session的占用值为375,都远远小于参数值,所以至此项目均已可以正常访问。

总结
简单记录一下这个Oracle异常的解决方案,希望对遇到同样问题的朋友有所帮助,The End。

原文链接:https://blog.csdn.net/wlwlwlwl015/article/details/51837669

おすすめ

転載: www.cnblogs.com/cgy-home/p/11307271.html