JMS サーバクラスタ起動失敗への対応

事象説明

JMS サーバクラスタを構成する各JMSサーバの設定が一致していない場合、JMS サーバが起動しないことがあります。

状況の確認方法

以下の操作を実行することで、JMS サーバクラスタ内の JMS サーバの状態を確認することができます。

結果表示例

---------------------------------------------
Broker ID Address State
---------------------------------------------
BROKER1 SVR1:9700 BROKER_DOWN
BROKER2 SVR1:9800 OPERATING
BROKER3 SVR2:9900 OPERATING


上記の表示例では、State が "OPERATING" と表示されている JMS サーバが起動しており、"BROKER_DOWN"と表示されている JMS サーバが起動していないことを示しています。

原因の特定
  1. JMS サーバのプロパティが一致していない場合、クラスタが構成されません。一致していない場合、JMS サーバの起動時に、以下のようなメッセージがログファイル (wojmsserver.log) に出力されることがあります。
    [ERROR] エラー[B3097]: 設定の不一致: "wojms.cluster.masterbroker" の設定プロパティが一致しないためにブローカ [ host1/xxx.xxx.xxx.xxx:2222 (jms2 [pjms2], wojms://xxx.xxx.xxx.xxx:2222/, [8953739944805325824]) ] との接続を中止します。


  2. 同一ホストで JMS サーバクラスタを構成する場合、JMS サーバインスタンス識別子はホスト内で一意にしておく必要があります。一意になっていない場合、JMS サーバの起動時に、以下のようなメッセージがログファイル (wojmsserver.log) に出力されることがあります。
    [WARNING] 警告 [B2062]: resid = queue:MyQueue_0 のロックリクエストがタイムアウトになりました。
    ブローカが応答しませんでした :
            xxx.xxx.xxx.xxx/xxx.xxx.xxx.xxx:9900 (wojmsbroker, wojms://xxx.xxx.xxx.xxx:9900/, [8061182766261607680])




復旧方法
  1. JMS サーバのプロパティが一致するように設定を変更してください。

    また、JMS サーバクラスタを構成する場合は、server.jms-service.enableCluster の値は true にしてください。

  2. 同一ホストで JMS サーバクラスタを構成する場合、JMS サーバインスタンス識別子はホスト内で一意になるように設定してください。

関連情報