30日間の無料評価版をお試しいただけます。

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

 

Yellowfinの各ノードは「クラスタ対応」するために「ClusterManagement」サーブレットを有効化しなくてはいけません。ClusterManagementサーブレットは、各ノードのweb.xmlファイルに追加の設定を加えることで有効化されます。

アプリケーションメッセージングは、実装モードに応じて異なる動きをします。現状、REPOSITORY、DYNAMIC、LEGACYの3つのモードを利用することができます。

 

 

マルチキャストクラスタメッセージング(DYNAMICモード)

Yellowfinのアプリケーションメッセージングは、JGroupと呼ばれるマルチキャストメッセージングライブラリにより制御されています。このメソッドを使用することで、同一のYellowfinデータベースを共有するクラスタ内の他のノードを自動的に検出します。

JGroupのデフォルト設定では、グループメンバーシップと新ノードの決定にUDPマルチキャストメッセージを使用します。このようなタイプのメッセージを送信できない環境もあります。例えば、Amazonでは内部ネットワークのノード間でのマルチキャストパケットを許可していません。マルチキャストクラスタメッセージングアダプタを使用すると、XML設定ファイルを渡してJGroupを構成し、ノードを検出する他のメソッドを使用することができます。このファイルは、ClusterManagementサーブレット内のBroadcastConfigurationサーブレットパラメーターへパスを渡すことで参照できるようになります。

 

各ノードの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モードで有効化することもできます。

 

各ノードの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ファイルでエンドポイント、ポート番号、ユーザー、パスワードが定義されていなくてはいけません。レガシーモードでは、クラスタインスタンスは同一ホスト上に存在することができません。

 

各ノードの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

コンテナレベルセッションレプリケーションを有効にする場合は、trueに設定します。これは、クラスタ内のセッションを破壊するために使用されるロジックを変更します。

RepositoryDiscovery

True/False

これは、DYNAMICモードでのみ使用します。これにより、REPOSITORYモードがサポートされる前に、ビルドでRepositoryDiscoveryを有効にします。REPOSITORYモードは、RepositoryDiscoveryが有効化されたDYNAMICモードのエイリアスです。

 

 

 

追加のパラメーター

いくつかの環境では、DYNAMICモードが機能しない場合があります。これは通常、サーバ上のネットワーク構成が原因です。デフォルトでJGroupは、利用可能であればIPv6を使用します。IPv4を強制的に実行することで、正常に動作するようになる場合もあります。以下のコマンドを、catalina.sh、またはcatalina.batファイルに追加します。

 

ファイルコマンド
Catalina.sh
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
Catalina.bat
set JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true

 

 

 

デフォルトのJGroup設定(udp.xml)を使用している場合は、マルチキャストアドレスとポート番号を設定することもできます。これは、クラスタノードがお互いを検出しない環境で役立ちます。

 

ファイルコマンド
Catalina.sh
JAVA_OPTS="$JAVA_OPTS -Djgroups.udp.mcast_addr=228.0.0.5 -Djgroups.udp.mcast_port=47885"
Catalina.bat
set JAVA_OPTS=%JAVA_OPTS% -Djgroups.udp.mcast_addr=228.0.0.5 -Djgroups.udp.mcast_port=47885

前項:クラスタのインストール

 

後項:バックグラウンドタスク

 

  • No labels