15 マルチキャスト構成のトラブルシューティング
IPマルチキャストを使用すると、クラスタ内の複数のOracle WebLogic Serverインスタンスで、単一のIPアドレスとポート番号を共有できます。この機能により、クラスタのすべてのメンバーを単一のエンティティとして扱うことができ、クラスタのメンバー間の通信が可能になります。
クラスタ内でのマルチキャストの使用および構成については、「クラスタの構成とconfig.xml」を参照してください
マルチキャスト・アドレスをコンソールから構成する方法は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのクラスタ: 構成: マルチキャストを参照してください。
クラスタの一般的なトラブルシューティングについては、「一般的な問題のトラブルシューティング」を参照してください。
この章の内容は次のとおりです。
- マルチキャスト・アドレスおよびポートの構成の検証
マルチキャストで問題が発生した場合のトラブルシューティングの最初のステップは、マルチキャストのアドレスとポートが正しく構成されているかどうかを検証します。マルチキャスト・アドレスは、クラスタごとに正しく構成されている必要があります。 - ネットワーク構成の問題の特定
マルチキャスト・アドレスおよびポートが正しく構成されていることが確認できたら、ネットワークの問題が原因でマルチキャスト通信が不通になっていないかを検証します。 - MulticastTestユーティリティの使用
マルチキャスト・アドレスおよびポートが正しく構成されており、ネットワークに物理的な問題や構成の問題がないことを確認できたら、utils.MulticastTest
を使用してさらに検証します。このユーティリティを使用すると、マルチキャストが機能しているかどうかを検証したり、クラスタ間で不必要なトラフィックが発生していないかを確認したりできます。 - マルチキャスト機能のチューニング
WebLogic Serverで使用できる様々なマルチキャスト機能をチューニングする方法を学習します。 - マルチキャストのデバッグ
このトラブルシューティングのヒントを実行してもマルチキャスト・アドレスの問題が解決しない場合は、マルチキャストのデバッグ情報を収集します。 - その他の問題
マルチキャストで発生する可能性のあるその他の問題について検討します。 - マルチキャスト構成のトラブルシューティングに関するその他のリソース
マルチキャストの問題を解決する際には、特定のリソースが役立つ場合があります。
マルチキャスト・アドレスおよびポートの構成の検証
マルチキャストで問題が発生した場合のトラブルシューティングの最初のステップは、マルチキャストのアドレスとポートが正しく構成されているかどうかを検証します。マルチキャスト・アドレスは、クラスタごとに正しく構成されている必要があります。
クラスタが起動しなかったり、サーバーがクラスタに参加できなかったりする場合、最も一般的な原因の1つが、このマルチキャスト・アドレスおよびポートの構成の問題です。マルチキャスト・アドレスについては、次の点を考慮に入れてください。
-
マルチキャスト・アドレスとして使用できるのは、224.0.0.0から239.255.255.255までの範囲のIPアドレスか、またはその範囲内のIPアドレスを持つホスト名のみです。
-
WebLogic Serverで使用されるデフォルトのマルチキャスト・アドレスは、239.192.0.0です。
-
x.0.0.1 (
x
は0 - 9の数字)というマルチキャスト・アドレスはいずれも使用できません。
起こり得るエラー
マルチキャスト構成の問題により、一般的に次のタイプの問題が発生します。
-
クラスタリングのためのマルチキャスト・ソケットを作成できない
-
マルチキャスト・ソケットの送信エラー
-
マルチキャスト・ソケットの受信エラー
親トピック: マルチキャスト・アドレスおよびポートの構成の検証
マルチキャスト・アドレスおよびポートの確認
-
WebLogic Server管理コンソールを使用して、クラスタのマルチキャスト・アドレスとポートを確認します。
-
config.xml
内の<cluster>
要素のマルチキャスト情報を確認します。
親トピック: マルチキャスト・アドレスおよびポートの構成の検証
ネットワーク構成の問題の特定
マルチキャスト・アドレスおよびポートが正しく構成されていることが確認できたら、ネットワークの問題が原因でマルチキャスト通信が不通になっていないかを検証します。
物理的な接続
ネットワーク内に物理的な問題がないか確認します。
-
クラスタ内のサーバーをホストする各マシンのネットワーク接続を確認します。
-
ネットワークのすべてのコンポーネント(ルーター、DNSサーバーを含む)が正しく接続され、正しく機能していることを確認します。
親トピック: ネットワーク構成の問題の特定
アドレスの競合
ネットワーク内でアドレスが競合していると、マルチキャスト通信が不通になる場合があります。
-
netstat
ユーティリティを使用して、そのクラスタ・マルチキャスト・アドレスが他のネットワーク・リソースによって使用されていないことを確認します。 -
各マシンのIPアドレスが一意になっていることを確認します。
親トピック: ネットワーク構成の問題の特定
UNIXシステムのnsswitch.confの設定
UNIXシステムでは、UnkownHostExceptions
エラーが発生する場合があります。このエラーは、サーバーに過大な負荷がかかっていない場合でさえ何回も発生する可能性があります。このエラーを回避するには、/etc/nsswitch.conf
を確認し、その順序を'files,DNS,NIS'
に変更します。
使用しているシステムのnsswitch.conf
のmanページを参照してください。
親トピック: ネットワーク構成の問題の特定
MulticastTestユーティリティの使用
マルチキャスト・アドレスおよびポートが正しく構成されており、ネットワークに物理的な問題や構成の問題がないことを確認できたら、utils.MulticastTest
を使用してさらに検証します。このユーティリティを使用すると、マルチキャストが機能しているかどうかを検証したり、クラスタ間で不必要なトラフィックが発生していないかを確認したりできます。
MulticastTestユーティリティの詳細は、『Oracle WebLogic Serverコマンド・リファレンス』の「MulticastTest」
を参照してください。
MulticastTestがうまく機能せず、そのマシンがマルチホームである場合は、プライマリ・アドレスが使用されているかどうかを確認してください。詳細は、「マルチキャストとマルチホーム・マシン」を参照してください
ノート:
デュアルIPv4/IPv6スタックを実行しているLinuxマシン上でマルチキャスト・アドレスについてIPv4形式のアドレスを指定する場合は、-Djava.net.preferIPv4Stack=true
を設定してください。
親トピック: マルチキャスト構成のトラブルシューティング
マルチキャスト機能のチューニング
WebLogic Serverで使用できる様々なマルチキャスト機能をチューニングする方法を学習します。
親トピック: マルチキャスト構成のトラブルシューティング
マルチキャスト・タイムアウト
マルチキャスト・タイムアウトは、ネットワーク・インタフェース・カード(NIC)がフェイルオーバーする際に発生します。タイムアウト時に以下のようなエラー・メッセージが生成される場合があります:
<Error><Cluster><Multicast socket receive error: java.io.InterruptedIOException: Receive timed out>
このエラーが発生した場合は、次を行うことができます。
-
NICのフェイルオーバーを無効にします。
-
igmp snooping
スイッチを無効にします。このスイッチは、IGMP (Internet Group Management Protocol)の一部で、管理対象スイッチでのマルチキャストのフラッディングを回避するために使用します。 -
Windowsプラットフォームの場合は、IGMPのレベルをチェックして、マルチキャスト・パケットがサポートされていることを確認します。
-
マルチキャストTTLを次のように設定します:
MulticastTTL=32
詳細は、「マルチキャスト存続時間(TTL)を構成する」を参照してください。
親トピック: マルチキャスト機能のチューニング
クラスタ・ハートビート
WebLogic Serverでは、クラスタ内の個々のサーバー・インスタンスが使用可能であることを通知するために、マルチキャストを使用して定期的にハートビート・メッセージがブロードキャストされます。クラスタ内のサーバー・インスタンスは、ハートビート・メッセージをモニターすることにより、どの時点でサーバー・インスタンスに障害が発生したかを特定します。
次の項では、クラスタのハートビートに問題が発生した場合の解決策について説明します。
マルチキャスト送信遅延
マルチキャスト送信遅延は、サーバーがマルチキャストを使用してメッセージ・フラグメントを送信するために待機する時間を示します。これにより、OSレベルのバッファ・オーバーフローを回避できます。マルチキャスト送信遅延は、クラスタMBeanのMulticastSendDelay属性で設定できます。『Oracle WebLogic Server MBeanリファレンス』を参照してください。
親トピック: クラスタ・ハートビート
オペレーティング・システム・パラメータ
-
xdp_xmit_hiwat
-
udp_recv_hiwat
これらのパラメータが低い値(たとえば8K)に設定されている場合は、マルチキャスト・パケットのサイズが最大値(32K)に設定されていると問題が発生する可能性があります。これらのパラメータを64Kに設定してみてください。
親トピック: クラスタ・ハートビート
マルチキャスト・ストーム
マルチキャスト・ストームとは、マルチキャスト・パケットがネットワーク上で繰返し転送される現象です。マルチキャスト・ストームが発生すると、ネットワークとそのネットワークに接続されているステーションに負荷がかかり、末端のステーションでハングや障害が発生するおそれがあります。
マルチキャスト・バッファのサイズを増やすと、通知が送信および受信されるレートが改善されて、マルチキャスト・ストームを防止できます。「マルチキャスト・バッファのサイズを構成する」を参照してください
親トピック: マルチキャスト機能のチューニング
マルチキャストとマルチホーム・マシン
マルチホーム環境内でマルチキャストを使用する場合は、次の点を考慮に入れてください。
-
WebLogic Server管理コンソールから
UnixMachine
のインスタンスを構成し、マルチキャスト・トラフィックを処理するために各サーバー・インスタンスのInterfaceAddress
を指定する必要があります。 -
/usr/sbin/ifconfig -a
を実行して、マルチホーム環境内の各マシンのMACアドレスを確認します。各マシンのMACアドレスは、必ず一意のアドレスにしてください。複数のマシンが同じMACアドレスを使用していると、マルチキャストに問題が生じる可能性があります。
親トピック: マルチキャスト機能のチューニング
別々のサブネットでのマルチキャスト
クラスタ・メンバーが別々のサブネットに配置されているケースでマルチキャストで問題が発生した場合は、マルチキャスト存続時間を構成する必要があります。クラスタのマルチキャストTTLパラメータの値は、マルチキャスト・パケットが最終的な宛先に届くまでにルーターがパケットを破棄しないような大きさにする必要があります。
マルチキャストTTLパラメータには、パケットが破棄されるまでにマルチキャスト・メッセージが経由できるネットワーク・ホップ数を設定します。マルチキャスト存続時間パラメータを適切に設定することにより、クラスタ内のサーバー・インスタンス間で送受信されるマルチキャスト・メッセージが消失するリスクが少なくなります。
「マルチキャスト存続時間(TTL)を構成する」を参照してください。
親トピック: マルチキャスト機能のチューニング
マルチキャストのデバッグ
このトラブルシューティングのヒントを実行してもマルチキャスト・アドレスの問題が解決しない場合は、マルチキャストのデバッグ情報を収集します。
デバッグ・ユーティリティ
次のユーティリティを使用して、マルチキャスト構成の問題をデバッグできます。
MulticastMonitor
MulticastMontiorは、特定のマルチキャスト・アドレスおよびポートのマルチキャスト・トラフィックをモニターするスタンドアロンJavaコマンド行ユーティリティです。このコマンドの構文は次のとおりです。
java weblogic.cluster.MulticastMonitor <multicast_address> <multicast_port> <domain_name> <cluster_name> <domain_directory>
親トピック: デバッグ・ユーティリティ
MulticastTest
MulticastTestユーティリティは、WebLogicクラスタの構成時にマルチキャストに関する問題をデバッグする場合に便利です。このユーティリティは、マルチキャスト・パケットを送信し、ネットワーク上で、マルチキャストがどのくらい効果的に機能しているかについての情報を返します。
親トピック: デバッグ・ユーティリティ
デバッグ・フラグ
次のデバッグ・フラグは、マルチキャスト専用です。
-
DebugCluster
-
DebugClusterHeartBeats
-
DebugClusterFragments
コマンド行でデバッグ・フラグを設定する
これらのフラグをコマンド行から設定する場合は、サーバーの起動時に次のオプションを追加します。
-
-Dweblogic.debug.DebugCluster=true
-
-Dweblogic.debug.DebugClusterHeartBeats=true
-
-Dweblogic.debug.DebugClusterFragments=true
親トピック: デバッグ・フラグ
WLSTを使用したデバッグ属性の設定
次のWLSTコマンドを使用してデバッグ属性を設定します:
connect() edit() startEdit() servers=cmo.getServers() for s in servers: d=s.getServerDebug() d.setDebugCluster(true) activate()
親トピック: デバッグ・フラグ
その他の問題
マルチキャストで発生する可能性のあるその他の問題について検討します。
親トピック: マルチキャスト構成のトラブルシューティング
ファイル記述子の問題
オペレーティング・システムによっては、開かれているファイル記述子の数が問題になる場合があります。UNIXでは、loses
を使用して、1つのプロセスがディスク上のファイルをいくつ開いているかを確認できます。この問題が発生した場合は、マシン上のファイル記述子の数を増やすことを検討してください。
親トピック: その他の問題
マルチキャスト構成のトラブルシューティングに関するその他のリソース
マルチキャストの問題を解決する際には、特定のリソースが役立つ場合があります。
-
Oracle Fusion Middlewareリリース・ノート for Microsoft Windows
-
Oracleサポート:
https://support.oracle.com/
-
Oracleフォーラム:
http://forums.oracle.com/
親トピック: マルチキャスト構成のトラブルシューティング