このセクションでは、2つのTIBCO EBX®インスタンスを使用した基本的なD3アーキテクチャの構成を紹介します。開始する前に、各インスタンスが独自のリポジトリで正しく機能することを確認してください。
EBX®を2つの異なるWebアプリケーションコンテナにデプロイします。両方のインスタンスが同じホストで実行されている場合は、すべての通信TCPポートが異なることを確認してください。
目的は、プライマリノードから既存のデータスペースを構成してブロードキャストすることです。
この構成は、D3インフラストラクチャ全体(プライマリノードとレプリカノードを含む)で実行されます。
ebx.properties
プライマリノード構成ファイルを次のように更新します。
キー ebx.d3.mode
でD3モードをプライマリ
として定義します。
プライマリノードは、構成後に開始できます。
ビルトインの管理者として認証した後、[管理]タブ内を移動します。
前提条件:ノードがプライマリノードとして構成されていることを確認します([アクション]メニューで[システム情報]を使用し、[D3モード]を確認します)。
「[D3]プライマリ構成」管理機能を開きます。
ブロードキャストするデータスペースを「配信データスペース」テーブルに追加し、許可されたプロファイルを宣言します。
配信プロファイルを「配信プロファイル」テーブルに追加し(論理名に対応している必要があります)、配信モードを宣言します。可能な値は、クラスターモードまたはフェデレーションモードです。
配信プロファイルを使用して配信データスペースを「配信マッピング」テーブルにマッピングします。
これで、プライマリノードは、配信プロファイルでレプリカノードを登録する準備が整いました。
D3ブロードキャストメニューがデータスペースまたはそのスナップショットの1つの[アクション]メニューに表示されることを確認します。
目的は、配信プロファイルと通信設定に基づいてレプリカノードを構成および登録することです。
ebx.properties
レプリカノード構成ファイルを次のように更新します。
キーebx.d3.mode
でD3モードをレプリカ
として定義します。
ebx.d3.delivery.profilesにプライマリノードで設定する配信プロファイル
を定義します(配信プロファイルはカンマとスペースで区切る必要があります)。
ノード通信のためのプライマリノードユーザー認証(ビルトイン管理者プロファイルが必要)をebx.d3.master.username
および ebx.d3.master.password
に定義します。
プロパティキーebx.d3.master.urlの値を設定して、プライマリノード通信用のHTTP/TCPプロトコル
を定義します。
(例:http://localhost:8080/ebx-dataservices/Connector
)
ノード通信のためのレプリカノードのユーザー認証(ビルトインの管理者プロファイルが必要)をebx.d3.slave.username
およびebx.d3.slave.password
に定義します。
プロパティキーebx.d3.slave.urlの値を設定して、レプリカノード通信用のHTTP/TCPプロトコル
を定義します。
(例:http://localhost:8090/ebx-dataservices/Connector
)
レプリカノードは、構成後に開始できます。
ビルトインの管理者として認証した後、[管理]タブ内に移動します。
前提条件:ノードがレプリカノードとして構成されていることを確認します([アクション]メニューで[システム情報]を使用し、[D3モード]を確認します)。
[D3レプリカ構成]管理機能を開きます。
[一次情報]画面で情報を確認します。「N/A」の値を持つフィールドはありません。
ブロードキャストする前に、モデルが使用可能であることを確認してください(データモデルアシスタントから、公開する必要があります)。
これで、レプリカノードをブロードキャストする準備が整いました。
配信データスペースと配信プロファイルの宣言は、次の表がある[管理]領域から[[D3]プライマリ構成]機能を選択することによって行われます。
配信データスペース | ブロードキャストできるデータスペースの宣言。 |
配信プロファイル | レプリカノードがサブスクライブできるプロファイル。配信モードは、配信プロファイルごとに定義する必要があります。 |
配信マッピング | 配信データスペースと配信プロファイルの間の関連付け。 |
上記の表は、一部のブロードキャストが保留中または進行中の間は読み取り専用です。
このセクションでは、EBX®メイン構成ファイルでノードを構成する方法について詳しく説明します。
プライマリノードとして機能するには、EBX®のインスタンスがメインの構成ファイルで次のプロパティを宣言する必要があります。
ebx.d3.mode=master
ノードの構成例:
################################################################## ## D3 configuration ################################################################## ################################################################## # Configuration for master, hub and slave ################################################################## # Optional property. # Possibles values are single, master, hub, slave # Default is single meaning the server will be a standalone instance. ebx.d3.mode=master
ハブノード(プライマリノード構成とレプリカノード構成の組み合わせ)として機能するには、EBX®のインスタンスがメイン構成ファイルで次のプロパティを宣言する必要があります。
ebx.d3.mode=hub
ノードの構成例:
################################################################## ## D3 configuration ################################################################## ################################################################## # Configuration for master, hub and slave ################################################################## # Optional property. # Possibles values are single, master, hub, slave # Default is single meaning the server will be a standalone instance. ebx.d3.mode=hub ################################################################## # Configuration dedicated to hub or slave ################################################################## # Profiles to subscribe to # Mandatory property if ebx.d3.mode=hub or ebx.d3.mode=slave ebx.d3.delivery.profiles= # User and password to be used to communicate with the master. # Mandatory properties if ebx.d3.mode=hub or ebx.d3.mode=slave ebx.d3.master.username= ebx.d3.master.password= # User and password to be used by the master to communicate with the hub or slave. # Mandatory property if ebx.d3.mode=hub or ebx.d3.mode=slave ebx.d3.slave.username= ebx.d3.slave.password=
レプリカノードとして機能するには、EBX®のインスタンスがメインの構成ファイルで次のプロパティを宣言する必要があります。
ebx.d3.mode=slave
ノードの構成例:
################################################################## ## D3 configuration ################################################################## ################################################################## # Configuration for master, hub and slave ################################################################## # Optional property. # Possibles values are single, master, hub, slave # Default is single meaning the server will be a standalone instance. ebx.d3.mode=slave ################################################################## # Configuration dedicated to hub or slave ################################################################## # Profiles to subscribe to # Mandatory property if ebx.d3.mode=hub or ebx.d3.mode=slave ebx.d3.delivery.profiles= # User and password to be used to communicate with the master. # Mandatory properties if ebx.d3.mode=hub or ebx.d3.mode=slave ebx.d3.master.username= ebx.d3.master.password= # User and password to be used by the master to communicate with the hub or slave. # Mandatory property if ebx.d3.mode=hub or ebx.d3.mode=slave ebx.d3.slave.username= ebx.d3.slave.password=
このセクションでは、EBX®メイン構成ファイルでノードのネットワークプロトコルを構成する方法について詳しく説明します。
HTTP(S)ネットワークプロトコルを使用したebx.d3.mode=hub
またはebx.d3.mode=slave
ノードの構成例:
################################################################## # HTTP(S) and TCP socket configuration for D3 hub and slave ################################################################## # URL to access the data services connector of the master # Mandatory property if ebx.d3.mode=hub or ebx.d3.mode=slave and JMS for D3 is not activated. # This property will be ignored if JMS for D3 is activated. # The URL must follow this pattern: [protocol]://[master_host]:[master_port]/ebx-dataservices/connector # Where the possible values of 'protocol' are 'http' or 'https'. ebx.d3.master.url= # URL to access the data services connector of the slave # Mandatory property if ebx.d3.mode=hub or ebx.d3.mode=slave and JMS for D3 is not activated. # This property will be ignored if JMS for D3 is activated. # The URL must follow this pattern: [protocol]://[slave_host]:[slave_port]/ebx-dataservices/connector # Where the possible values of 'protocol' are 'http' or 'https'. ebx.d3.slave.url= # Minimum port to use to transfer archives on TCP mode. # Must be a positive integer above zero and below 65535. # If not set, a random port will be used. #ebx.d3.slave.socket.range.min= # Max port to use on TCP mode to transfer archives. # Must be a positive integer above ebx.d3.slave.socket.range.min and below 65535. # Mandatory if ebx.d3.slave.socket.range.min is set. #ebx.d3.slave.socket.range.max=
JMSがアクティブ化されている場合、D3ノードのJMS機能を有効にするために、次のプロパティを定義できます。
JMSネットワークプロトコルを使用するすべてのD3ノードの構成例:
################################################################## ## JMS configuration for D3 ################################################################## # Taken into account only if Data Services JMS is configured properly ################################################################## # Configuration for master, hub and slave ################################################################## # Default is false, activate JMS for D3 ## If activated, the deployer must ensure that the entries ## 'jms/EBX_D3ReplyQueue', 'jms/EBX_D3ArchiveQueue' and 'jms/EBX_D3CommunicationQueue' ## are bound in the operational environment of the application server. ## On slave or hub mode, the entry 'jms/EBX_D3MasterQueue' must also be bound. ebx.jms.d3.activate=false # Change the default timeout when using reply queue. # Must be a positive integer that does not exceed 3600000. # Default is 10000 milliseconds. #ebx.jms.d3.reply.timeout=10000 # Time-to-live message value expressed in milliseconds. # This value will be set on each message header 'JMSExpiration' that defines the # countdown before the message deletion managed by the JMS broker. # Must be a positive integer equal to 0 or above the value of 'ebx.jms.d3.reply.timeout'. # The value 0 means that the message does not expire. # Default is 3600000 (one hour). #ebx.jms.d3.expiration=3600000 # Archive maximum size in KB for the JMS body message. If exceeds, the message # is transferred into several sequences messages in a same group, where each one does # not exceed the maximum size defined. # Must be a positive integer equals to 0 or above 100. # Default is 0 that corresponds to unbounded. #ebx.jms.d3.archiveMaxSizeInKB= ################################################################## # Configuration dedicated to hub or slave ################################################################## # Master repository ID, used to set a message filter for the concerned master when sending JMS message # Mandatory property if ebx.jms.d3.activate=true and if ebx.d3.mode=hub or ebx.d3.mode=slave #ebx.jms.d3.master.repositoryId=
プライマリノードを管理するサービスは、レプリカノードの[D3プライマリノード構成]の下の[管理]領域、および[配信データスペース]テーブルと[登録済みレプリカノード]テーブルで利用できます。サービスは次のとおりです。
リプレイの再起動 | フェデレーションの配信を待機しているすべてのリプレイをすぐに再開します。 |
レプリカノード配信データスペースの削除 | 選択したレプリカノードの配信データスペースを削除するか、D3プライマリノードの構成から登録を解除します。 サービスにアクセスするには、プライマリノードの[配信データスペース]テーブルから配信データスペースを選択し、ウィザードを起動します。 |
完全に再同期 | 最後にブロードキャストされたスナップショットの全コンテンツを、登録されたレプリカノードにブロードキャストします。 |
レプリカノードのサブスクライブ | 選択したレプリカノードのセットをサブスクライブします。 |
レプリカノードの非アクティブ化 | 選択したレプリカノードをブロードキャストスコープから削除し、それらの状態を「使用不可」に切り替えます。 注意「進行中」のブロードキャストコンテキストはロールバックされます。 |
レプリカノード登録の解除 | 選択したレプリカノードをプライマリノードから切断します。 注意「進行中」のブロードキャストコンテキストはロールバックされます。 |
上記のプライマリノードサービスは、一部のブロードキャストが保留中または進行中の間は非表示になります。
D3レプリカの構成ノードの下の[管理]領域でサービスを利用して、プライマリノードへのサブスクリプションを管理し、その他のアクションを実行できます。
レプリカノードの登録 | レプリカノードが登録解除されている場合は、プライマリノードに再サブスクライブします。 |
レプリカノード登録の解除 | レプリカノードをプライマリノードから切断します。 注意「進行中」のブロードキャストコンテキストはロールバックされます。 |
スナップショットを閉じて削除 | レプリカノード配信データスペースをクリーンアップします。 サービスにアクセスするには、レプリカノードの[配信データスペース]テーブルから配信データスペースを選択し、ウィザードに従って、作成日に基づいてスナップショットを閉じて削除します。 注:最後のブロードキャストスナップショットは自動的に選択から除外されます。 |
最後のブロードキャストスナップショットは、データスペースのスナップショットテーブルで強調表示され、最初の列に表示されるアイコンで表されます。
いくつかのテーブルは、プライマリノードの「管理」領域の「D3プライマリノード構成」の下にあるプライマリノードの管理コンソールを構成します。それらは次のとおりです。
登録されたレプリカノード | プライマリノードに登録されているレプリカノード。この表から、各レコードでいくつかのサービスを利用できます。 |
公開履歴 | 行われた公開操作の履歴。 |
レプリカノード登録ログ | 行われた初期化操作の履歴。 |
詳細な履歴 | 行われたアーカイブ配信の履歴。関連する配信アーカイブのリストには、選択ノードを使用して、テーブル「ブロードキャスト履歴」および「初期化履歴」からアクセスできます。 |
「[D3]プライマリノード構成」の下のプライマリノードの「管理」領域で使用できます。サービスは次のとおりです。
レプリカノード情報の確認 | レプリカノードと、レプリカノードの状態、関連する配信プロファイル、配信されたスナップショットなどの関連情報を一覧表示します。 |
明確な履歴コンテンツ | 「ブロードキャスト履歴」、「レプリカノード登録ログ」、「詳細履歴」など、すべての履歴テーブルのすべてのレコードを削除します。 |
レプリカノード監視クラスを作成して、レプリカノードのステータスが「使用可能」または「使用不可」に切り替わったときにトリガーされるアクションを実装できます。そのためには、NodeMonitoring
インターフェイスを実装する必要があります。このクラスは、EBX®モジュールの外部にあり、「ebx.jar」のクラスローダーからアクセスできる必要があり、その完全なクラス名は「D3レプリカノード構成」で指定する必要があります。
D3管理者は、ブロードキャストイベントを受信するようにメール通知を設定できます。
ブロードキャスト失敗時。
フェデレーションブロードキャストで、リプレイが指定されたしきい値を超えた場合。
メールには、詳細へのオプションのリンクを含むイベントの表が含まれています。
通知を有効にするには、「管理」領域から「[D3]プライマリノード構成」データスペースを開き、「グローバル構成」の下の「通知」グループを構成します。
「電子メールから」および「URL定義」オプションも、「電子メール構成」リンクを使用して構成する必要があります。
技術的な監視は、EBX®メイン構成ファイルで宣言されているログカテゴリ「ebx.d3」を介して実行できます。例:
ebx.log4j.category.log.d3= INFO, Console, ebxFile:d3
交換されたアーカイブ、SOAPメッセージ、ブロードキャストキュー(...)などの一部の一時ファイルが作成され、EBX®一時ディレクトリに書き込まれます。この場所は、EBX®メイン構成ファイルで定義されています。
################################################# ## Directories for temporary resources. ################################################# # When set, allows specifying a directory for temporary files different from java.io.tmpdir. # Default value is java.io.tmpdir ebx.temp.directory = ${java.io.tmpdir} # Allows specifying the directory containing temporary files for cache. # If unset, the used directory is ${ebx.temp.directory}/ebx.platform. #ebx.temp.cache.directory = ${ebx.temp.directory}/ebx.platform # When set, allows specifying the directory containing temporary files for import. # If unset, the used directory is ${ebx.temp.directory}/ebx.platform. #ebx.temp.import.directory = ${ebx.temp.directory}/ebx.platform