IP マルチキャストを使用すると、クラスタ内の複数の WebLogic Server インスタンスで、単一の IP アドレスとポート番号を共有できます。この機能により、クラスタのすべてのメンバーを単一のエンティティとして扱うことができ、クラスタのメンバー間の通信が可能になります。
以下の節では、IP マルチキャスト コンフィグレーションの問題をトラブルシューティングするためのヒントを提供します。
クラスタ内でのマルチキャストの使用およびコンフィグレーションについては、「クラスタのコンフィグレーションと config.xml」を参照してください。
コンソールからのマルチキャスト アドレスのコンフィグレーションについては、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「クラスタ : コンフィグレーション : マルチキャスト」を参照してください。
クラスタの一般的なトラブルシューティングについては、「一般的な問題のトラブルシューティング」を参照してください。
マルチキャストで問題が発生した場合のトラブルシューティングは、まずマルチキャストのアドレスとポートが正しくコンフィグレーションされているかどうかの検証から始めます。マルチキャスト アドレスは、クラスタごとに正しくコンフィグレーションされている必要があります。
クラスタが起動しなかったり、サーバがクラスタに参加できなかったりする場合、最も一般的な原因の 1 つが、このマルチキャスト アドレスおよびポートのコンフィグレーションの問題です。マルチキャスト アドレスについては、以下の点を考慮に入れてください。
マルチキャスト アドレスとして使用できるのは、224.0.0.0 ~ 239.255.255.255 の範囲の IP アドレスか、またはその範囲内の IP アドレスを持つホスト名のみ。
WebLogic Server で使用されるデフォルトのマルチキャスト アドレスは、239.192.0.0。
x.0.0.1 (x
は 0 ~ 9 の数字) というマルチキャスト アドレスはすべて使用できない。
マルチキャスト コンフィグレーションに問題がある場合、通常は以下のような問題が発生します。
クラスタ化のためのマルチキャスト ソケットを作成できない
マルチキャスト ソケットの送信エラー
マルチキャスト ソケットの受信エラー
マルチキャスト アドレスおよびポートが正しくコンフィグレーションされていることが確認できたら、ネットワークの問題が原因でマルチキャスト通信が不通になっていないかを検証します。
ネットワーク内に物理的な問題がないか確認します。
クラスタ内のサーバをホストする各マシンのネットワーク接続を確認する。
ネットワークのすべてのコンポーネント (ルーター、DNS サーバを含む) が正しく接続され、正しく機能していることを確認する。
ネットワーク内でアドレスが衝突していると、マルチキャスト通信が不通になる場合があります。
netstat
ユーティリティを使用して、そのクラスタ マルチキャスト アドレスが他のネットワーク リソースによって使用されていないことを確認する。
各マシンの IP アドレスがユニークになっていることを確認する。
マルチキャスト アドレスおよびポートが正しくコンフィグレーションされており、ネットワークに物理的な問題やコンフィグレーションの問題がないことを確認できたら、utils.MulticastTest
を使用してさらに検証します。このユーティリティを使用すると、マルチキャストが機能しているかどうかを検証したり、クラスタ間で不必要なトラフィックが発生していないかを確認したりできます。
MulticastTest ユーティリティの使用手順については、『Oracle Fusion Middleware Oracle WebLogic Server コマンド リファレンス』の「Oracle WebLogic Server Java ユーティリティの使い方」の「MulticastTest
」を参照してください。
MulticastTest がうまく機能せず、そのマシンがマルチホームである場合は、プライマリ アドレスが使用されているかどうかを確認してください。詳細については、「マルチキャストとマルチホーム マシン」を参照してください。
以下の節では、WebLogic Server で使用できるさまざまなマルチキャスト機能をチューニングする方法について説明します。
マルチキャスト タイムアウトは、ネットワーク インタフェース カード (NIC) がフェイルオーバする際に発生します。タイムアウトが発生すると、次のようなエラー メッセージが生成されます。
<Error><Cluster><Multicast socket receive error: java.io.InterruptedIOException: Receive timed out>
このエラーが発生した場合は、以下を行うことができます。
NIC のフェイルオーバを無効にする。
igmp snooping
スイッチを無効にする。このスイッチは、IGMP (Internet Group Management Protocol) の一部で、管理対象スイッチでのマルチキャストのフラッディングを回避するために使用します。
Windows 2000 の場合は、IGMP のレベルをチェックして、マルチキャスト パケットがサポートされていることを確認する。
マルチキャスト存続時間 (TTL) を次のように設定する。
MulticastTTL=32
詳細については、「マルチキャスト存続時間 (TTL) をコンフィグレーションする」を参照してください。
WebLogic Server では、クラスタ内の個々のサーバ インスタンスが使用可能であることを通知するために、マルチキャストを使用して定期的にハートビート メッセージがブロードキャストされます。クラスタ内のサーバ インスタンスは、ハートビート メッセージをモニタすることにより、どの時点でサーバ インスタンスに障害が発生したかを特定します。
以下の節では、クラスタのハートビートに問題が発生した場合の解決策について説明します。
マルチキャスト送信遅延は、サーバがマルチキャストでのメッセージ フラグメントの送信を待機する時間を示します。この遅延によって、OS レベルのバッファ オーバーフローを防ぐことができます。マルチキャスト送信遅延は、クラスタ MBean の MulticastSendDelay 属性で設定できます。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server MBean Reference』を参照してください。
マルチキャスト ストームとは、マルチキャスト パケットがネットワーク上で繰り返し転送される現象です。マルチキャスト ストームが発生すると、ネットワークとそのネットワークに接続されているステーションに負荷がかかり、末端のステーションでハングや障害が発生するおそれがあります。
マルチキャスト バッファのサイズを増やすと、通知が送信および受信されるレートが改善されて、マルチキャスト ストームを防止できます。「マルチキャスト バッファのサイズをコンフィグレーションする」を参照してください。
マルチホーム環境内でマルチキャストを使用する場合は、以下の点を考慮に入れてください。
UnixMachine
インスタンスは必ず WebLogic Server コンソールからコンフィグレーションし、各サーバ インスタンスの InterfaceAddress
を指定してマルチキャスト トラフィックを処理できるようにする必要がある。
/usr/sbin/ifconfig -a
を実行して、マルチホーム環境内の各マシンの MAC アドレスを確認する。各マシンの MAC アドレスは、必ずユニークなアドレスにしてください。複数のマシンが同じ MAC アドレスを使用していると、マルチキャストに問題が生じる可能性があります。
クラスタ メンバーが別々のサブネットに配置されているケースでマルチキャストで問題が発生した場合は、マルチキャスト存続時間 (TTL) をコンフィグレーションする必要があります。クラスタのマルチキャスト存続時間パラメータの値は、マルチキャスト パケットが最終的な宛先に届くまでにルータがパケットを破棄しないような大きさにする必要があります。
マルチキャスト存続時間パラメータには、パケットが破棄されるまでにマルチキャスト メッセージが経由できるネットワーク ホップ数を設定します。マルチキャスト存続時間パラメータを適切に設定することにより、クラスタ内のサーバ インスタンス間で送受信されるマルチキャスト メッセージが消失するリスクが少なくなります。
詳細については、「マルチキャスト存続時間 (TTL) をコンフィグレーションする」を参照してください。
これまでに説明したトラブルシューティングのヒントを実行してもマルチキャスト アドレスの問題が解決しない場合は、マルチキャストのデバッグ情報を収集します。
以下のユーティリティを使用して、マルチキャスト コンフィグレーションの問題をデバッグできます。
MulticastMontior は、特定のマルチキャスト アドレスおよびポートのマルチキャスト トラフィックをモニタするためのスタンドアロン Java コマンドライン ユーティリティです。このコマンドの構文は次のようになります。
java weblogic.cluster.MulticastMonitor <multicast_address
> <multicast_port
> <domain_name
> <cluster_name
>
以下の節では、マルチキャストで発生する可能性のあるその他の問題について説明します。
AIX バージョン 5.1 では、IPv4 でマッピングされたマルチキャスト アドレスはサポートされません。IPv4 マルチキャスト アドレスを使用している場合は、IPv6 に切り替えてもマルチキャスト グループに参加できません。AIX で MulticastTest を実行する場合は、次の例に従ってコマンドラインからコマンドを入力してください。
java -Djava.net.preferIPv4Stack=true utils.Multicast <options>
また、クラスタの動作を正しくコンフィグレーションするため、AIX の以下の設定も確認してください。
次のコマンドを実行してからマシンを再起動することで、MTU サイズを 1500 に設定する。
chdev -1 lo0 -a mtu=1500 -P
/etc/netsvc.conf:
に次の行が追加されていることを確認する。
hosts=local,bind4
この行は、IP を解決するためのネーム サービスに、IPv4 アドレスのみが送信されるようにするために必要です。
マルチキャストの問題を解決する場合は、以下のリソースも参照してください。
Oracle サポート : http://www.oracle.com/support/index.html
Oracle フォーラム