You are viewing an old version of this page. View the current version.
Compare with Current
View Version History
Version 1
Next »
Yellowfinの各ノードは「クラスタ対応」するためにClusterManagementサーブレットを持たなくてはいけません。ClusterManagementサーブレットは、各ノードのweb.xmlファイルに追加の構成ブロックを加えることで有効化されます。
アプリケーションメッセージングは、実装モードに応じて異なる動きをします。現状、REPOSITORY、DYNAMIC、LEGACYの3つのモードを利用することができます。
マルチキャストクラスタメッセージング(DYNAMICモード)
Yellowfinのアプリケーションメッセージングは、JGroupと呼ばれるマルチキャストメッセージングライブラリにより制御されています。このメソッドを使用することで、同一のYellowfinデータベースを共有する他のノードを自動的に検出します。
JGroupのデフォルト設定では、グループメンバーシップと新ノードの決定にUDPマルチキャストメッセージを使用します。このようなタイプのメッセージを送信できない可能性のある環境があります。例えば、Amazonでは内部ネットワークのノード間でのマルチキャストパケットを許可していません。マルチキャストクラスタメッセージングアダプタを使用すると、XML構成ファイルを渡してJGroupを構成し、ノードを検出する他の方法に使用することができます。このファイルは、ClusterManagementサーブレット内のBroadcastConfigurationサーブレットパラメーターへパスを渡すことで参照できるようになります。
DYNAMICモードのweb.xmlへの変更
各ノードのweb.xmlに、以下のサーブレット定義を追加しなくてはいけません。
<!-- Cluster Management -->
<servlet>
<servlet-name>ClusterManagement</servlet-name>
<servlet-class>com.hof.mi.servlet.ClusterManagement</servlet-class>
<init-param>
<param-name>ClusterType</param-name>
<param-value>DYNAMIC</param-value>
</init-param>
<init-param>
<param-name>SerialiseWebserviceSessions</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>CheckSumRows</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>EncryptSessionId</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>EncryptSessionData</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>AutoTaskDelegation</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>11</load-on-startup>
</servlet>
レポジトリディスカバリー付きマルチキャスト(REPOSITORYモード)
レポジトリディスカバリーはDYNAMICモードの実装ですが、共有されたYellowfinレポジトリ経由でノードを検出するために、カスタムプラグインが付属しています。これは、マルチキャストパケットが機能しない環境でクラスタリングを有効化する場合に有効です。
この機能は、RepositoryDiscoveryサーブレットパラメーターをtrueに設定したDYNAMICモードで有効化することもできます。
REPOSITORYモードのweb.xmlへの変更
各ノードのweb.xmlに、以下のサーブレット定義を追加しなくてはいけません。
<!-- Cluster Management -->
<servlet>
<servlet-name>ClusterManagement</servlet-name>
<servlet-class>com.hof.mi.servlet.ClusterManagement</servlet-class>
<init-param>
<param-name>ClusterType</param-name>
<param-value>REPOSITORY</param-value>
</init-param>
<init-param>
<param-name>SerialiseWebserviceSessions</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>CheckSumRows</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>EncryptSessionId</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>EncryptSessionData</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>AutoTaskDelegation</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>11</load-on-startup>
</servlet>
Webサービスクラスタメッセージング(LEGASYモード)
Yellowfinのレガシークラスタメッセージングは、AXIS webサービスにより制御されます。これは、起動時にすべてのノードが定義されていないてはならず、各ノードのweb.xmlファイルでエンドポイント、ポート番号、ユーザー、パスワードが定義されていなくてはいけません。レガシーモードでは、クラスタインスタンスは同一ホスト上に存在することができません。
LEGACYモードのweb.xmlへの変更
各ノードのweb.xmlに、以下のサーブレット定義を追加しなくてはいけません。
<!-- Cluster Management -->
<servlet>
<servlet-name>ClusterManagement</servlet-name>
<servlet-class>com.hof.mi.servlet.ClusterManagement</servlet-class>
<init-param>
<param-name>ServiceUser</param-name>
<param-value>admin@yellowfin.com.au</param-value>
</init-param>
<init-param>
<param-name>ServicePassword</param-name>
<param-value>test</param-value>
</init-param>
<init-param>
<param-name>ServiceAddress</param-name>
<param-value>/services/AdministrationService</param-value>
</init-param>
<init-param>
<param-name>ServicePort</param-name>
<param-value>80</param-value>
</init-param>
<init-param>
<param-name>ClusterHosts</param-name>
<param-value>
192.168.4.184
</param-value>
</init-param>
<init-param>
<param-name>SerialiseWebserviceSessions</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>CheckSumRows</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>EncryptSessionId</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>EncryptSessionData</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>11</load-on-startup>
</servlet>
web.xmlファイルパラメーター
以下のプロパティは、ClusterManagementサーブレット定義のオプションです。
プロパティ | 値 |
ClusterType | DYNAMIC、またはLEGACY。DYNAMICは、マルチキャストメッセージングを使用し、クラスタ内の他のノードを自動的に検知します。LEGACYはデフォルト設定であり、定義されたクラスタノードの一覧とコミュニケーションをするために、webサービスを使用します。 |
BroadcastConfiguration | JGroups構成ファイルです。これは、マルチキャストネットワーキングの機能しない環境で、使用されるJgroups設定をカスタマイズすることができます。これは、DYNAMICモードのみで使用し、設定はオプションです。デフォルトでは、JGroupはudp.xml内で定義された設定を使用します。 |
ServiceUser | 他ノードへのwebサービス接続を検証するユーザーです。LEGACYモードでのみ使用します。 |
ServicePassword | ServiceUserのパスワードです。LEGACYモードでのみ使用します。 |
ServicePasswordEncrypted | True/False ServicePasswordのコンテンツは暗号化されているかどうか。 |
ServiceAddress | Yellowfin webサービスのアドレスです。LEGACYモードでのみ使用します。 |
ServicePort | Yellowfinが実行されているポート番号です。LEGACYモードでのみ使用します。 |
ClusterHosts | クラスタ内のすべてのノードをコンマ区切りで表示した一覧です。これには、IPアドレス、またはホスト名を含めることができます。LEGACYモードでのみ使用します。 |
SerialiseWebserviceSessions | True/False クラスタでシングルサインオンを使用している場合に必要となります。データベースへのトークンをシリアル化することで、トークンは任意のノードからアクセスできるます。 |
CheckSumRows | True/False データベース内のシリアル化されたwebサービスセッションレコードの合計を確認するセキュリティオプションです。これは、Yellowfinでの不正なセッション作成につながる可能性のあるテーブルへの変更を防ぐことができます。 |
EncryptSessionId | True/False データベースへシリアル化されたwebサービスセッションIDを暗号化するセキュリティオプションです。これは、Yellowfinでの不正なセッション作成につながる可能性のあるテーブルへの変更を防ぐことができます。 |
EncryptSessionData | True/False データベースへシリアル化されたwebサービスセッションレコードを暗号化するセキュリティオプションです。これは、Yellowfinでの不正なセッション作成につながる可能性のあるテーブルへの変更を防ぐことができます。 |
AutoTaskDelegation | True/False これは、DYNAMICモードのみで使用し、設定はオプションです。 これを有効化すると、クラスタはバックグラウンドタスクを実行するために、ノードを自動的に割り当てます。これを有効化することで、バックグラウンドタスクを実行するために、手動でノードを設定する必要がありません。Yellowfinは、他のノードが既にタスクを実行している場合は、起動時にノード上のシステムタスクを停止します。 |
SessionReplication | True/False コンテナレベルレプリケーション |
RepositoryDiscovery | True/False This option is for DYNAMIC mode only. This enables RepositoryDiscovery on builds prior to the REPOSITORY mode being supported. REPOSITORY mode is an alias for DYNAMIC mode with RepositoryDiscovery enabled. |
![](https://yellowfinjp.atlassian.net/wiki/plugins/servlet/confluence/placeholder/unknown-macro?name=horizontalrule&locale=en_GB&version=2)
![](https://yellowfinjp.atlassian.net/wiki/plugins/servlet/confluence/placeholder/unknown-macro?name=styleclass&locale=en_GB&version=2)