サーバプログラムを起動する/停止する
fusion_place のサーバプログラムは、インストール先のコンピュータの起動およびシャットダウンに伴い、自動的に起動および停止するように、初期設定されています。そのため、ユーザは、 fusion_place の使用開始/終了に際して、サーバを起動/停止する必要はありません。意図してサーバを停止する必要があるのは、データベースをバックアップする時などです。
また、fusion_place が用いているH2 データベースエンジンは、1 日 24 時間・1 年 365 日連続稼働を前提とした、いわゆる「高可用性」データベースエンジンではありません。Web サーバベースで運用されている場合、サーバ機は電源を落とさず稼働させ続けることもあると思いますが、上記の観点からも、時折、サーバプログラムを停止/再起動することをお勧めします(定期的にバックアップを取得する運用とすれば、その都度、サーバプログラムを停止/再起動することにもなります)。停止/再起動を自動化する手段としてコマンドラインから fusion_place サーバを停止する方法もご説明します。
手動でサーバプログラムを起動/停止する
サーバを起動または停止するには、Windows のスタートメニューからサーバ管理ツールを起動します。
スタートメニューから 以下の項目(プログラム)を選択してください。
⇒ 「fusion_place server Properties」ダイアログボックスが表示されます(エラーメッセージが表示される場合には、「サーバ管理ツールを起動できない場合の対処」をご覧ください)。
コマンドラインからサーバプログラムを起動/停止する
Windows のコマンドラインプログラム「sc」を用いて、コマンドラインから、fusion_place サーバを起動/停止することもできます。この機能を用いれば、サーバの停止と再起動を自動化することも可能です(コマンドの自動実行には、Windows のタスクマネージャ等を用いることができます)。
サーバプログラムを安全に停止するために
fusion_place 7.0 で、サーバプログラムおよびデータベースを停止する際の安全性を高めるために、サーバプログラムの停止処理が改善されました。
サーバプログラム停止の流れ
以下に Windows 上のサーバプログラムの停止の流れを示します。サーバプログラムの停止には、Windows サービスの管理プログラムである Service Control Manager(SCM)と fusion_place サーバ(Tomcat)プロセスが関わっています。
(1) [SCM] fusion_place プロセスに対して停止するように要求を送信する
(2) [fusion_place] (1) の要求を受信する
(3) [fusion_place] プロセスの安全な停止手続きを開始する
(4) [fusion_place] 管理下のスレッドを停止する[1]
(5) [fusion_place] データベースを停止する[2]
(6) [SCM] fusion_place プロセスがタイムアウト時間内[3]に停止しなければ、強制終了させる
サーバプログラムの停止に長い時間がかかる場合の注意事項
サーバプログラム稼働中のデータの流量や入出力の回数が多い場合に、H2 データベースの停止処理に長い時間がかかる場合があります。また、fusion_place のデータ反映処理に時間がかかる場合もあります。サービス管理プログラムのタイムアウト時間や OS のシャットダウン時のタイムアウトにより、これらの処理が途中で終了された場合、データベースのインデックスファイルが壊れる場合があります[4]。インデックスファイルの破損を回避するために、以下の点に留意してください。
-
SCM のタイムアウト時間を無制限または十分大きくする
-
「SCM のタイムアウト時間 > スレッドプール終了タイムアウト時間 × 2 + データベース停止時間」となるように調整する
-
OS のシャットダウンの前にサーバプログラムを停止する