分散環境で intra-mart Accel Platform の初期化(非同期タスクサービスのデータ移行)に失敗して起動できません。

 

【発生条件】
複数のサーバで構成された分散環境では、intra-mart Accel Platform の起動時にサーバマネージャが稼働状態になる前に起動処理が進んだ場合に発生します。
起動に失敗したサーバでは、以下のエラーログが出力されます。

<pre>
  java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
    at jp.co.intra_mart.system.asynchronous.update.TaskMessageMigrator.start(TaskMessageMigrator.java:41)
    at jp.co.intra_mart.system.servlet.PlatformServletContextListener.contextInitialized(PlatformServletContextListener.java:150)
</pre>

複数のサーバをほぼ同時に起動した場合のほか、起動済みのサーバがある状態でサーバを1台ずつ時間をあけて起動した場合にも発生します。
発生はアプリケーションの起動タイミングに依存するため、同じ構成・同じ手順でも毎回発生するとは限りません。
サービスを追加する製品・アプリケーションを導入している環境では、サーバマネージャが稼働状態になるまでの時間が長くなるため、発生しやすくなります。

【原因】
アプリケーションの起動時には、非同期タスクの情報をストレージからデータベースへ移行する処理が実行されます。
この処理はサーバマネージャが稼働していることを前提としていたため、
サーバマネージャの再選出中で稼働しているサーバマネージャがいない場合にエラーとなり、アプリケーションの起動に失敗していました。

【回避方法】
本修正を適用していない環境では、以下の方法で一時的に回避できます。
 ・起動に失敗したサーバを再起動してください。
 ・各サーバは、先に起動したサーバの起動完了を待ち、間隔をあけて1台ずつ起動してください。
   (発生頻度は下がりますが、完全には回避できません。)

【対応方法】
分散環境での各アプリケーションの起動時のタスク移行処理で、サーバマネージャが検出できない場合でも、起動に失敗しないように修正します。
以下のバージョンで対応します。
 ・2027 Spring im_service 8.0.31 (2027-04-01 リリース)
 ・2026 Spring im_service 8.0.30_PATCH-001、2026 Autumn im_service 8.0.29_PATCH-002 (2026-10-30 リリース)

上記より前のバージョン(2015 Summer ~ 2025 Autumn)をご利用の場合は、
本FAQに添付のユーザモジュール(im_service-8_0_11-8_0_28-PATCH_999-1.0.0.zip)をプロジェクトに追加し、
WARファイルを作成し直してデプロイしてください。
本ユーザモジュールは、2015 Summer ~ 2025 Autumn の全バージョンで共通です。

[ユーザモジュールの適用後について]
 ・非同期タスクの移行が必要な場合(ストレージで非同期タスクを管理していた 2015 Spring 以前のバージョンからアップデートした場合)で、
   サーバマネージャが1分以内に稼働状態にならなかったときは、以下の警告ログを出力して移行をスキップし、起動を続けます。
   移行は、サーバマネージャとなるサーバが次に起動したときに行われます。
     Skipped the migration process of the asynchronous tasks because the ServerManager did not become active. ...
 ・非同期タスクの移行ファイルが正常でない場合、すべてのノードで起動に失敗します。
   移行対象ファイルの読み込みでエラーが発生して intra-mart Accel Platform の起動に失敗する場合は、ファイルが破損している可能性があります。
   <SYSTEM_STORAGE_PATH>/queue ディレクトリ配下の移行ファイルを退避もしくは修正して起動してください。
 ・本修正を含むバージョン(上記の正式リリース版・パッチ)へアップデートする場合は、プロジェクトから本ユーザモジュールを削除してください。


 -- 対象 -------------------------------------------------------------------------
 iAP/Accel Platform/2015 Summer~2025 Autumn
 --------------------------------------------------------------------------------



FAQID:1536

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
Powered by Zendesk