この問題は2014 Summer(Honoka)で修正されました。(要件[4618])
ただし、注意に記載されている内容に変更はありません。
【条件】
以下の条件を全て満たした場合に発生します。
・アプリケーションサーバが複数台の分散環境であること。
・全アプリケーションサーバのスペックがほぼ同一であること。
・全アプリケーションサーバがほぼ同時に停止処理を実行すること。
【原因】
iAPでサーバの停止を別のサーバが検出するとサービスの再選出を行うようになっています。
複数のサーバを同時に停止した場合、サービスの再選出が停止処理と並列して実行されてしまいアプリケーションが正しく停止できない場合があります。
【回避策】
アプリケーションサーバが複数台ある場合、時間差を置いて順次停止してください。
※停止までの時間差は環境によって左右されます。
例えば、ジョブの実行や非同期処理が動作している可能性もあるためな時間は変わっていきます。
【対応】
要件[4618]にて停止処理が行われているサーバに対してサービスが起動しないようになりました。
https://issue.intra-mart.jp/issues/4618
■注意
この現象は、アプリケーション層で動作する弊社製品(iAP)のみが起因するわけでなく、下位レベルの層(※1)が起因となり、本現象を発生させる可能性があります。
弊社製品(iAP)の今後対応予定のアップデート版を適用しても、必ず本現象が回避される可能性はありません。
(※1)例えば、ネットワーク層において、ネットワークのタイムアウトにより、本現象が発生する可能性があります。
-- 対象 ------------------------------------------------------------------------
iAP/Accel Platform/全アップデート
--------------------------------------------------------------------------------
FAQID:433
分散環境においてサーバを同時に停止すると、アプリケーションの停止処理と並列でジョブスケジューラ等のサービスの再選出・開始処理が実行されてしまい正常に停止できない場合があります。