標準では、この組み込みのCoherenceキャッシュはマルチキャストノード探索用に構成されていますが、サブネットに唯一のクラスタしかない場合、マルチキャストパケットはルーター境界を越えることはないので、この構成で通常は問題ありません。しかし、サブネット内に複数のクラスタがある場合や、ルーターがマルチキャストパケットを転送する場合、例えば独立した2個のSOAクラスタがCoherenceから両方とも確認できる場合、デプロイ時に問題が発生します。ログファイルをチェックしてみましょう、以下のようなメッセージが現れているはずです。
このログは、マシンblah1がマシンblah2が所有するクラスタを発見したというもので、両者が同じマルチキャストの情報を持っていることが発生の理由です。この結果、blah1へのデプロイメントが応答を停止し、最終的にはWebLogic Serverからスタックスレッドの警告が出ます。これを防ぐためには、両者が通信できなくすればよいのですが、それには2つの方法があります。[SOA_server1] [ERROR] [] [Coherence] [] [] [APP: soa-infra] 2011-08-01 00:00:00.000/0000.000 Oracle Coherence GE 3.6.0.4(thread=Cluster, member=1): This senior Member(Id=1, Timestamp=2011-08-01 00:00:00.000, Address=10.10.10.10:8088, MachineId=43868, Location=site:blah,machine:blah1,process:15875, Role=WeblogicServer) appears to have been disconnected from another senior Member(Id=1, Timestamp=2011-07-01 00:00:00.000, Address=10.11.11.11:8088, MachineId=43815, Location=site:blah,machine:blah2,process:18955, Role=WeblogicServer); stopping cluster service.
- 組み込みのCoherenceのユニキャストオプションを変更し、Well-Known Addressing(WKA)を使うことができます。これは高可用性ガイドに記述があります。
Oracle® Fusion Middleware High Availability Guide
Configuring Oracle Coherence for Deploying Composites
http://download.oracle.com/docs/cd/E21764_01/core.1111/e10106/ha_soa.htm#ASHIA3848
日本語はこちら。
Oracle® Fusion Middleware高可用性ガイド
コンポジットのデプロイでのOracle Coherenceの構成
http://download.oracle.com/docs/cd/E23549_01/core.1111/b55898/ha_soa.htm#CHDFHAJE
1ノードの環境の場合、wka1としてのlocalhostと同時に"localhost"を指定すれば、他の環境と分離することができます。
- Coherenceがリスニングしているマルチキャストアドレスとポートを再構成することが出来ます。上記のWKAを使わずに、-Dtangosol.coherence.clusteraddress と -Dtangosol.coherence.clusterport で指定できます。(そうでなければ、あなたがこれらのプロパティをどこに設定すべきかという指示に従ってください)。
これらは、通常はCoherenceマルチキャストクラスタアドレッシングのルールに従います(特に、アドレスがマルチキャストIPアドレスの範囲にあり、Coherenceクラスタの中で一意になる必要があります)。通常はポート番号を変えるだけでなく、両方アドレスがユニークになるようにすることをお勧めします。それは、異なるポートのソケットでは互いのソケットが「みえてしまう」というOSレベルの問題があるからです。
原文はこちら。
http://blogs.oracle.com/ateamsoab2b/entry/coherence_in_soa_suite_11g
0 件のコメント:
コメントを投稿