はじめに
、本番環境での展開プロジェクトの後のシーン、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