1

Windowsでは、Tomcatを停止すると、アプリケーションはTomcatで停止するため、アプリケーションはデータベースの保持を解放します...しかし、Ubuntuでは、Tomcatアプリケーションを停止しても、データベースへのアクセスは解放されません。

で試しました

sudo /etc/init.d/tomcat6 stop
sudo service tomcat6 stop

プロセスを強制終了すると、データベース サーバーへの接続も解放されるため、pkill を使用できません。手動で開始する必要があります。アプリケーションからデータベースへのアクセスを解放したいだけです。どうすればいいですか?

Tomcat がアプリケーションを保持している場所はありますか? または保留中の他のプロセスはありますか?

Windows と Ubuntu の違いは何ですか?

4

1 に答える 1

0

正常なシャットダウンを可能にする方法で tomcat を停止するのではなく、急に強制終了して tomcat を停止すると、ネットワーク パケットを送信して PostgreSQL に接続が閉じられたことを伝えることができなくなります。PostgreSQL が次の tomcat リクエストをリッスンしている場合、非常に長い時間待機し、tomcat が停止したという手がかりがありません。

TCP には「キープアライブ」と呼ばれる構成可能な機能があり、接続がアイドル状態のときにリスナーが定期的にパケットを送信して、接続がまだ良好かどうかをテストします。「tcp_keepalives_」で始まる接続構成設定を参照してください。次のようなものを試すことをお勧めします。

tcp_keepalives_idle = 60
tcp_keepalives_interval = 1

これにより、PostgreSQL は切断された接続を 1 分強で検出できますが、オーバーヘッドはあまり発生しません。これにより、接続がまだ良好かどうかをテストするために余分なパケットを送信する前にアイドル接続で 60 秒間待機し、再試行を 1 秒間隔で送信するように PostgreSQL に指示します。(9 回試行したと思います。) どのパケットにも応答がない場合、PostgreSQL は接続を閉じ、プロセスは正常に終了します。

于 2012-08-01T11:27:52.107 に答える