38.2. 専用対称ライブおよびバックアップクラスター
注記
JBoss Enterprise Application Platform には、このトポロジーのサンプル設定が含まれ、
$JBOSS_HOME/extras/hornetq/resources/examples/cluster-with-dedicated-backup に存在します。
専用対称トポロジーでは、バックアップサーバーが別のライブサーバーと共存するのではなく別の JBoss Enterprise Application Platform に存在します。
つまり、JBoss Enterprise Application Platform インスタンスはパッシブであり、バックアップがライブになるまで使用されません。したがって、パッシブインスタンスは純粋な JMS アプリケーションの場合にのみ役に立ちます。
以下の図は、これに関する設定を示しています。
例38.3 単一インスタンス、純粋な JMS、専用対称設定
EAP1 ノード上の HornetQ ライブサーバーが応答を停止した場合、 EAP1(B) ノード上の HornetQ バックアップインスタンスはアクティベートされ、ライブサーバーになります。リモート JMS クラスターは、HornetQ ライブノード向けのすべてのメッセージを HornetQ バックアップノードにルーティングします。
例38.3「単一インスタンス、純粋な JMS、専用対称設定」 は、専用対称トポロジーが、純粋の JMS であり、JMS コンポーネント (たとえば、Message Driven Bean) を持たないアプリケーションとどう動作するかを示しています。
JMS コンポーネントを含むトポロジーの場合は、JMS コンポーネントを含む専用対称クラスターに対して使用できる 2 つの方法が存在します。
- 専用 JCA サーバー (例38.4「専用 JCA サーバー」 を参照)
- リモート JCA サーバー (例38.5「リモート JCA サーバー」 を参照)。
38.2.1. 専用 JCA ライブサーバー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
例38.4 専用 JCA サーバー
EAP1(B) および EAP2(B) インスタンスは、バックアップ HornetQ インスタンスのみ実行しているため、これらのインスタンスで任意のアプリケーションをホストすることは適切ではありません。アプリケーションは、代わりに EAP1 と EAP2 でホストされ、ライブ HornetQ インスタンスと近接します。
ライブ HornetQ サーバーが EAP1 で失敗すると、トラフィックはバックアップ HornetQ サーバー EAP1(B) にフェイルオーバーします。リモート JMS クライアントは、HornetQ クラスター接続を使用して、ライブサーバーの Java EE コンポーネントが送信元または送信先のメッセージをバックアップサーバーに再ルーティングします。
ライブサーバー設定は、実際には 「共存ライブサーバー」 と同じです。唯一の違いは、ライブ HornetQ インスタンスを実行している同じ JBoss Enterprise Application Platform ノードにバックアップがないことです。このトポロジーには、複数の JBoss Enterprise Application Platform インスタンスが必要です。
手順38.7 専用ライブサーバープロファイルの作成
重要
ノードがお互いを検出できない場合は、ファイアウォールと UDP ポートが正常に設定されていることを確認してください。ネットワーク設定では、クラスターのノードがお互いに通信できる必要があります。
production プロファイルのコピー作成して、ライブサーバー設定をカスタマイズする必要があります。
重要
カスタムプロファイルのために直接編集するのではなく、含まれたプロファイルを常にコピーします。設定時に重大な間違いを犯した場合は、いつでも基本設定に戻ることができます。
$JBOSS_HOME/server/に移動します。productionプロファイルをコピーして、HornetQ_Dedicatedに名前を変更します。
手順38.8 共有ストアとジャーナリングの設定
以下の手順に従って、フェイルオーバーのために共有ストアを使用する HornetQ を指定し、ライブバックアップグループ内の各 HornetQ インスタンスが使用するジャーナルファイルの場所を定義します。
$JBOSS_HOME/server/HornetQ_Dedicated/deploy/hornetq/に移動します。hornetq-configuration.xmlを開きます。- <shared-store> element 要素を <configuration> 要素の子として追加します。
<shared-store>true</shared-store>
<shared-store>true</shared-store>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - バインディング、ジャーナル、および大きなメッセージパスの場所がライブバックアップグループがアクセスできる場所に設定されていることを確認します。例で示されたように絶対パスを設定したり、設定ファイルに存在する JBoss パラメーターを使用したりできます。パラメーターオプションを選択し、これらのパラメーターが解決されるデフォルトのパスを使用しない場合は、サーバーを起動する度にバインディング、ジャーナル、および大きなメッセージが存在するパスを指定する必要があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記
ネットワークのライブバックアップグループにアクセス可能なパスを指定してください。
手順38.9 JMS クライアントの正常シャットダウンの設定
以下の手順に従って、サーバーが正常にシャットダウンした場合に JMS クライアントがどのように接続を再確立するかを設定します。
$JBOSS_HOME/server/HornetQ_Dedicated/deploy/hornetq/に移動します。hornetq-configuration.xmlを開きます。- 手順38.2「共有ストアとジャーナリングの設定」 で記述されたようにジャーナルディレクトリ設定付近の領域に <fail over-on-shutdown> 要素を指定します。
<failover-on-shutdown>true</failover-on-shutdown>
<failover-on-shutdown>true</failover-on-shutdown>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記
hornetq-configuration.xmlファイルに要素を置く場所の制限はありません。ただし、ファイルの上部に詳細レベルが低い設定があると、見つけやすくなります。 - ファイルを保存し、閉じます。
手順38.10 HA 接続ファクトリーの設定
$JBOSS_HOME/server/HornetQ_Dedicated/deploy/hornetq/に移動します。hornetq-jms.xmlを開きます。- 以下で示されたように以下の属性と値を追加します。
- <ha>true</ha>
- クライアントが高可用性をサポートし、フェイルオーバーを実行するために常に true になるように指定します。
- <retry-interval>1000</retry-interval>
- クライアントがサーバーに再接続するまでクライアントが待機する時間 (ミリ秒単位) を指定します。
- <retry-interval-multiplier>1.0</retry-interval-multiplier>
- 以降の各再接続の一時停止に対して使用される乗数 <retry-interval> を指定します。この値を
1.0に設定すると、再試行間隔が各クライアント再接続要求で同じになります。 - <reconnect-attempts>-1</reconnect-attempts>
- クライアントが失敗する前に行う再接続試行の回数を指定します。
-1と設定すると、再接続が無制限で試行されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 指定されたファイルに以下のいずれかの設定ブロックを追加することにより、マスターノードとバックアップノードの両方で新しいキューを定義します。
production/deploy/hornetq/hornetq-jms.xmlの場合<queue name="testQueue"> <entry name="/queue/testQueue"/> <durable>true</durable> </queue>
<queue name="testQueue"> <entry name="/queue/testQueue"/> <durable>true</durable> </queue>Copy to Clipboard Copied! Toggle word wrap Toggle overflow production/deploy/customName-hornetq-jms.xmlの場合注記
XML ネームスペースが存在し、指定されたようにファイルで正しいことを確認して、XML 検証の観点からファイルの形式が適切であることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow