TIBCO Rendezvous コントロールとイベント ジェネレータ ユーザーズ ガイド
![]() |
![]() |
![]() |
![]() |
TIBCO® RendezvousTM (TIBCO: www.tibco.com の製品) により、配信プラットフォームで稼動するアプリケーション間でデータを交換することができます。TIBCO Rendezvous (TIBCO RV) イベント ジェネレータは、WebLogic Integration Administration Console から作成することができる WebLogic IntegrationTM イベント ジェネレータの 1 つです。TIBCO RV イベント ジェネレータはあるサブジェクトのメッセージをリスンし、目的のメッセージを受け取ったらすぐに、メッセージ ブローカにイベントを発生させます。
注意 : TIBCO RV イベント ジェネレータ (EG) は WebLogic Integration の使用許諾を受けた場合にのみ、WebLogic WorkshopTM で使用できます。
BEA WebLogic Integration と共に TIBCO RV コントロールおよびイベント ジェネレータを使用しても、「ダイナミック ライブラリ」を含む TIBCO Rendezvous を使用する権限が付与されるわけではありません。これらの TIBCO 製品を使用するには、TIBCO RV コントロールとイベント ジェネレータのユーザは TIBCO から有効なライセンスを取得する必要があります。Rendezvous のライセンス取得方法については、http://www.tibco.com
を参照してください。
TIBCO RV イベント ジェネレータにより、WebLogic Integration はメッセージ ブローカ チャネルにイベントを作成することができます。メッセージは、Rendezvous でサポートされるほとんどの形式で受信され、バイナリに変換されて、WebLogic Integration メッセージ ブローカに発行されます。
TIBCO RV イベント ジェネレータを使用すると、ベース Rendezvous および認証されたメッセージ (CM) 転送によりメッセージを受信することができます。認証されたメッセージは、単一または分散キューで受信することが可能で、分散キュー処理のクラスタリングをサポートしています。各メッセージの受信は、黙示的または明示的に確認することができます。
詳細については、下記の URL にある『WebLogic Integration ソリューションの管理』の「Event Generators」を参照してください。
http://edocs.bea.com/wli/docs85/manage/evntgen.html
TIBCO RV イベント ジェネレータはロード バランシング、高可用性、およびフェイルオーバ機能のあるクラスタにデプロイすることができます。TIBCO RV イベント ジェネレータは、分散キューを使用してクラスタ機能をサポートします。すべてのイベント ジェネレータは WebLogic Integration Administration Console からすべての管理サーバにデプロイされます。
クラスタの上の TIBCO RV イベント ジェネレータは、単一の RV デーモンマシン、分散キューオプションおよびイベント ジェネレータ作成時に入力される distinct CM 名のあるサブジェクトにサブスクライブします。分散キューはスケジューラとワーカの概念で動作します。1 つのキューがスケジューラとして、他のキューはワーカとして機能します。スケジューラはメッセージをワーカにラウンドロビン方式で配信し、メッセージがいずれか 1 つのワーカによって受信されたことを確認します。これは「1 回限りの配信」とも呼ばれます。
スケジューラ ノードはラウンドロビン方式でメッセージをワーカ ノードに送信します。これは各ワーカ エンドにある未処理のタスクを確認することによって行われます。どのワーカが比較的空いているかによって、スケジューラはタスクを割り当てます。これをロード バランシングと言います。
どのインスタンスでも、ワーカとスケジューラ ノードが常に使用可能であることを意味します。管理サーバのダウンに伴いワーカ ノードがダウンした場合でも、別のワーカを使用することができます。管理サーバのダウンに伴いスケジューラ ノードがダウンした場合、別のワーカがスケジューラ ノードの役割を引き継ぎます。
これはたとえワーカ ノードがメッサージの受信を確認する前にダウンしても、スケジューラ ノードが次に利用できるワーカ ノードにタスクを再割り当てすることを示します。
WebLogic Platform に TIBCO RV イベント ジェネレータを追加する前に、以下を実行します。
デプロイメントが正常に完了したら、WebLogic Integration コンソールからイベント ジェネレータを作成できるようになります。
注意: クラスタ環境で、管理サーバにのみ TibRVEG.ear
ファイルをデプロイします。
以下の手順を実行して、TIBCO RV イベント ジェネレータを作成します。
http://localhost:port/wliconsole
注意: イベント ジェネレータを作成している間、Rendezvous に関連する値で誤ったものが入力されると (ネットワーク、デーモン等)、イベント ジェネレータが作成されますが、実行時例外エラーが表示されます。
これらの Rendezvous プロパティは、フォーム送信の段階では検証されません。これらの値はアプリケーションが特定の Rendezvous デーモンに接続しようとする場合、つまり実行時エラーの場合にのみ使用されます。
イベント ジェネレータが正常に作成されると、WLI_TIBRV_
event-gen
.jar
ファイルが WebLogic サーバ ドメイン フォルダに作成されます。ここでは、event-gen
は上記の手順 4 で指定されたようにイベント ジェネレータのユニークな名前です。このファイルは、「チャネル ルール定義」フォームで指定されたとおり Rendezvous デーモンに接続し、サブジェクトにリスナを作成します。
注意 : それぞれのユニーク イベント ジェネレータ用に単一のルール定義を毎回作成します。イベント ジェネレータが複数のチャネル ルール定義で作成されるときは必ず、最初のチャネル ルール定義だけが、記録され使用されます。
明示的な確認は、メッセージ ブローカに発行した後、リスナにメッセージの配送を明示的に確認するよう指示します。明示的確認機能を使うには、イベント ジェネレータのルールの定義中に [Confirm Message] オプションを選択します。
明示的確認が OAM コンソールで選択されると、TIBCO RV イベント ジェネレータはサブスクライブされた JPD が正常に完了した場合にのみメッセージを確認します。
注意 : JPD は明示的な確認をする同期サブスクリプションを持っている必要があります。
サブスクライブされた JPD のいずれかが例外のエラーを送出すると、TIBCO RV イベント ジェネレータはメッセージを確認しません。
イベント ジェネレータが一度作成されると、サブスクライブされたサブジェクトにあるメッセージの WebLogic Integration メッセージ ブローカ チャネルへの発行が開始されます。そのチャネルにサブスクライブされたアプリケーションは、未加工データ形式でメッセージを受け取ります。メッセージの内容を検索するには、下記のコードを perform ノードに挿入します。
TibrvMsg RecvdMsg = new TibrvMsg(receivedData.byteValue());
receivedData
は、タイプcom.bea.data.RawData
で TIBCO RV イベント ジェネレータによって発行されたメッセージを含んでいます。
さらに、JPD ファイルで以下の注釈を編集する必要があります:
/**
* @jpd:mb-static-subscription channel-name="/Soak/reply/TibcoDataChannel" message-body="{x0}"
*/
次のようになります。
/**
* @jpd:mb-static-subscription channel-name="/Soak/reply/TibcoDataChannel" message-body="{x0}" message-metadata="{x1}"
*/
重要: また、注釈に使用されるパラメータをメソッド定義に追加する必要があります。サンプルについては、「TIBCO RV イベント ジェネレータ ヘッダからの情報検索」を参照してください。
この節では、ヘッダから情報を検索するための TIBCO RV イベント ジェネレータ ヘッダのスキーマとコード例を示します。
<?xml version="1.0"?>
<xs:schema targetNamespace="http://www.bea.com/wli/control/TibHeaders" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.bea.com/wli/control/TibHeaders" elementFormDefault="qualified">
<xs:element name="TibHeaders">
<xs:complexType>
<xs:sequence>
<xs:element name="ReplySubject" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="SendSubject" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="TibrvTransport" type="Transport" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="Transport">
<xs:sequence>
<xs:element name="Service" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Network" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Daemon" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
下記は TIBCO RV イベント ジェネレータ ヘッダから replySubject
を検索するためのコード例です。
/**
* @jpd:mb-static-subscription channel-name="/Soak/reply/TibcoDataChannel" message-body="{x0}" message-metadata="{x1}"
*/
public void subscription(com.bea.data.RawData x0, com.bea.xml.XmlObject x1)
{
//#START: CODE GENERATED - PROTECTED SECTION - このメソッドのこのコメントより前であれば、安全にコードを追加できる。#//
// 入力変換
// パラメータの割り当て
this.recievedBytes = x0;
this.Header = x1;
//#END : CODE GENERATED - PROTECTED SECTION - このメソッドのこのコメントより後であれば、安全にコードを追加できる。#//
TibHeaders tibHeader=TibHeadersDocument.Factory.newInstance().addNewTibHeaders();
tibHeader.set(this.Header);
String replySubject=tibHeader.getReplySubject();
}
![]() ![]() |
![]() |
![]() |