この章では、IPマルチキャスト構成の問題を解決するためのヒントを提供します。IPマルチキャストを使用すると、クラスタ内の複数のWebLogic Server 10.3.6インスタンスで、単一のIPアドレスとポート番号を共有できます。この機能により、クラスタのすべてのメンバーを単一のエンティティとして扱うことができ、クラスタのメンバー間の通信が可能になります。
この章の内容は次のとおりです。
クラスタ内でのマルチキャストの使用および構成については、「クラスタの構成とconfig.xml」を参照してください。
マルチキャスト・アドレスをコンソールから構成する方法は、Oracle WebLogic Server管理コンソール・ヘルプの「クラスタ: 構成: マルチキャスト」を参照してください。
クラスタの一般的なトラブルシューティングについては、第12章「一般的な問題のトラブルシューティング」を参照してください。
マルチキャストで問題が発生した場合のトラブルシューティングは、まずマルチキャストのアドレスとポートが正しく構成されているかどうかの検証から始めます。マルチキャスト・アドレスは、クラスタごとに正しく構成されている必要があります。
クラスタが起動しなかったり、サーバーがクラスタに参加できなかったりする場合、最も一般的な原因の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サーバーを含む)が正しく接続され、正しく機能していることを確認します。
マルチキャスト・アドレスおよびポートが正しく構成されており、ネットワークに物理的な問題や構成の問題がないことを確認できたら、utils.MulticastTest
を使用してさらに検証します。このユーティリティを使用すると、マルチキャストが機能しているかどうかを検証したり、クラスタ間で不必要なトラフィックが発生していないかを確認したりできます。
MulticastTestユーティリティの使用の詳細は、『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のレベルをチェックして、マルチキャスト・パケットがサポートされていることを確認します。
マルチキャスト存続時間を次のように設定します。
MulticastTTL=32
詳細は、「マルチキャスト存続時間(TTL)を構成する」を参照してください。
WebLogic Serverでは、クラスタ内の個々のサーバー・インスタンスが使用可能であることを通知するために、マルチキャストを使用して定期的にハートビート・メッセージがブロードキャストされます。クラスタ内のサーバー・インスタンスは、ハートビート・メッセージをモニターすることにより、どの時点でサーバー・インスタンスに障害が発生したかを特定します。
次の項では、クラスタのハートビートに問題が発生した場合の解決策について説明します。
マルチキャスト・ストームとは、マルチキャスト・パケットがネットワーク上で繰返し転送される現象です。マルチキャスト・ストームが発生すると、ネットワークとそのネットワークに接続されているステーションに負荷がかかり、末端のステーションでハングや障害が発生するおそれがあります。
マルチキャスト・バッファのサイズを増やすと、通知が送信および受信されるレートが改善されて、マルチキャスト・ストームを防止できます。「マルチキャスト・バッファのサイズを構成する」を参照してください。
マルチホーム環境内でマルチキャストを使用する場合は、次の点を考慮に入れてください。
WebLogic Server管理コンソールからUnixMachine
のインスタンスを構成し、マルチキャスト・トラフィックを処理するために各サーバー・インスタンスのInterfaceAddress
を指定する必要があります。
/usr/sbin/ifconfig -a
を実行して、マルチホーム環境内の各マシンのMACアドレスを確認します。各マシンのMACアドレスは、必ず一意のアドレスにしてください。複数のマシンが同じMACアドレスを使用していると、マルチキャストに問題が生じる可能性があります。
クラスタ・メンバーが別々のサブネットに配置されているケースでマルチキャストで問題が発生した場合は、マルチキャスト存続時間を構成する必要があります。クラスタのマルチキャスト存続時間パラメータの値は、マルチキャスト・パケットが最終的な宛先に届くまでにルーターがパケットを破棄しないような大きさにする必要があります。
マルチキャスト存続時間パラメータには、パケットが破棄されるまでにマルチキャスト・メッセージが経由できるネットワーク・ホップ数を設定します。マルチキャスト存続時間パラメータを適切に設定することにより、クラスタ内のサーバー・インスタンス間で送受信されるマルチキャスト・メッセージが消失するリスクが少なくなります。
詳細は、「マルチキャスト存続時間(TTL)を構成する」を参照してください。
これまでに説明したトラブルシューティングのヒントを実行してもマルチキャスト・アドレスの問題が解決しない場合は、マルチキャストのデバッグ情報を収集します。
次のユーティリティを使用して、マルチキャスト構成の問題をデバッグできます。
次の項では、マルチキャストで発生する可能性のあるその他の問題について説明します。
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 Fusion Middlewareリリース・ノート for Microsoft Windows
Oracleサポート: https://support.oracle.com/
Oracleフォーラム: https://forums.oracle.com/forums/category.jspa?categoryID=193