Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

tomcat 再起動

JAVAのServletのアプリケーションを作成しております。
ServletのJAVAアプリケーションで自分自身の再起動の必要性がでてきてしまい、
Process の実行でservice tomcat restartと実行しようとしたのですが、許可されていない操作です。
とされ実行できませんでした、他に方法はないのでしょうか?
C#でアプリケーションを再起動する
Application.Restart();
とういようなことができればよいのですが。

5

回答

3776

閲覧

5件の回答

評価

0

再起動を必要とする処理が発生する方が、おかしいと思うが。一体何のために再起動が必要なんだ。

評価

0

言葉たらずで申し訳ありません。
イニシャル時に、マスタテーブルの読み込み、設定の読み込み、ソケットの接続等を
行っているのですが、マスターテーブルの変更要求の依頼受信時に、アプリケーションの再起動
を行いたいというのが処理内容です。
変更要求の依頼受信時にマスタテーブルの読み込み、設定の読み込み、ソケットの接続等をすることも
考えられるのですが、処理スレッドがいくつも動作している状態で、イニシャル処理をするのは困難で、
アプリケーションの再起動を行いたいと考えました。

評価

0

1.先立って新規要求受け付けを停止する別のコマンドを発行する。十分時間を取った上で再読み込みコマンドを発行し、さらに受け付け開始コマンドを発行する。

2.再読み込みコマンドを受け付けた段階でフラグを立たせ、そのフラグでもって新規要求受け付けを停止する。処理中リクエストが捌けた段階で再読み込みを行い、完了し次第要求受け付けを再開する。

新規要求をシャットアウトしさえすれば、若干の待ち時間の後に処理中のない状態を作れるだろう。

評価

0

当然、ご指摘のような対応をするのが本筋かもしれませんが、数人のプロジェクトで、
指摘のような処理を入れる作業量、入れて発生する不具合の可能性、を考慮すると
再起動することをしたいと考えました。

評価

0

人的リソースを言い訳にすると後で苦労することが多いが、まあ人のプロジェクトなんでどうでもいいか。
1.Processでservice tomcat restartをファイルに吐いて、chmod 775とでもする。
2.cronで1のシェルを見つけたら実行する。で、削除する。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。