![]() |
![]() |
|
|
BEA TOP END クライアントから /Q へのメッセージ登録
BEA TOP END クライアントは、tp_rtq_put(3T) を呼び出してメッセージを BEA Tuxedo の /Q キューに登録します。BEA TOP END システムが要求を TEDG または別の RTQ サーバにルーティングするには、queue_info パラメータを使用します。queue_info パラメータは RTQ グループ、RTQ キュー名、および RTQ ターゲットを指定します。
BEA Tuxedo の管理者は qmadmin(1) を使用して /Q キュー・スペースを作成し、その QSPACE 内で利用できるキュー名を作成する必要があります。BEA TOP END システムで BEA Tuxedo の /Q キュー・スペースを利用するためには、キュー・スペースに対する QSPACE エントリを DMCONFIG ファイルの DM_LOCAL_SERVICES セクションで定義し、TE_RTQGROUP、TE_RTQNAME、および TE_TARGET パラメータを指定しなければなりません。TEDG は BEA TOP END システムとの接続時にこれらのパラメータを宣言します。BEA Tuxedo ドメイン内の個々のキュー・スペースの可用性は、接続がアクティブの間はトラッキングされません。
TEDG は要求を受信すると、(RTQ グループ、キュー名、およびターゲットを定義する) queue_info パラメータを使用して、キュー・スペースを決定します。ターゲットが指定されていない場合、ルックアップではターゲットなしが使われます。tp_rtq_put サービス・パラメータによって /Q キュー名が決定されます。TEDG はメッセージのプロダクト、関数、ターゲット、および関数修飾子と一致する QNAME エントリを DM_LOCAL_SERVICES セクションで検索します。取得したキュー・スペースおよびキュー名パラメータを使用し、tpenqueue(3c) と同等の関数を呼び出してメッセージをキューに登録します。デフォルト値が tpenqueue のオプションのパラメータに使用されます。たとえば、RTQ 要求から優先順位はマッピングできません。したがって、デフォルトが使用されます。メッセージがキューに登録された後、BEA Tuxedo の管理者は qmadmin を使って /Q キューの属性およびその中のメッセージを変更できます。
TEDG は TMQUEUE(5) サーバによって返されるステータスをマッピングし、BEA TOP END クライアントに返します。要求をキューに登録すると、TEDG はクライアントに返すための一意の RTQ request_id を割り当てます。request_id は要求のステータスをトラッキングする目的でのみ提供されます。ほかの管理目的に使用することはできません。
/Q キューに登録されたメッセージの受信側では、tpdequeue(3c) を呼び出すか、または TMQFORWARD(5) でメッセージをサービス要求に変換して、通常の方法でメッセージにアクセスします。受信するバッファ・タイプは、送信されるメッセージ型および DMCONFIG パラメータで決まります。TPQCTL 構造体のフィールドには適切な値が設定されますが、優先順位、相関識別子、応答キュー、異常終了キュー、ユーザ戻りコードなどの機能は TEDG ではサポートされていません。これらの機能に対しては値が設定されないか、またはデフォルト値が設定されます。appkey および cltid フィールドには、メッセージを送信したクライアントの BEA Tuxedo ユーザ ID (リモート・ドメインの DOMAINID) が設定されます。
TEDG と BEA TOP END クライアントの動作
BEA TOP END クライアントでは、TEDG を介してメッセージを BEA Tuxedo の /Q キューに登録するために tp_rtq_put(3T) 呼び出しを使用します。
BEA TOP END クライアントのプログラマは次の情報を把握していることが必要です。
CARRAY および X_OCTET タイプのバッファでは、異なるタイプの BEA TOP END ノードによって TEDG に送信される場合、データ・マーシャリングはサポートされていません。BEA Tuxedo サービスが FML32 入力をサポートしている場合、BEA TOP END クライアントは BEA Tuxedo FML32 バッファ・タイプを使用します。FML32 は、TEDG と異なるタイプの BEA TOP END ノード間を送信される場合、TEDG と BEA TOP END システムでデータ・マーシャリングがサポートされているため有用です。
BEA TOP END サービスはこれらのバッファ・タイプの 1 つ以上をサポートしています。
tp_rtq_put 要求を行うには、目的の BEA Tuxedo キュー名に関連するプロダクト、関数、MSR ターゲット (オプション)、および関数修飾子 (オプション) を service パラメータに指定することが必要です。
TEDG によるクライアント RTQ 要求のマッピング
クライアント要求にはトランザクションに関与するものとしないものがあります。次の表は、BEA TOP END クライアントの RTQ フラグおよびパラメータがどのようにマッピングされるかを示しています。これらのフラグおよびパラメータのマッピングにより、通常 BEA TOP END システムで行われるタスクを TEDG で実行することができます。TP_RTQ_HELD フラグと TP_RTQ_NON_TRANSACT_SCHED フラグ、トランザクション・キー機能、およびパラメータ tag_length、tag_text、input_format、attach_info は TEDG ではサポートされていないため、TEDG への要求では使用しないでください。
エラー値 TEDG、BEA Tuxedo システム、または BEA Tuxedo TMQUEUE サーバに問題がある場合、通常の BEA TOP END エラー・ステータス・メッセージおよびその他のステータス・メッセージが BEA TOP END クライアントに返されます。1 つのエラー・ステータス・メッセージは、複数の原因のうちの 1 つにしかすぎない場合があることに注意してください。 TEDG が宣言する RTQ キューは実際の BEA Tuxedo キュー・スペースの可用性に基づくわけではないので、実際にはそのキュー・スペースが利用できない BEA Tuxedo ノードにメッセージがルーティングされることもあります。その場合、ほかのルーティング決定では要求は正常に行われても、エラー・ステータス TP_RTQ_UNAVAIL が返されます。RTQ キューを複数のノードで利用できる場合、BEA Tuxedo アプリケーション、BEA TOP END アプリケーション、および TEDG の設計ではこの種の障害が発生する可能性を考慮する必要があります。複数の再起動可能なサーバを定義したアプリケーションであれば、このようなエラーが発生する可能性は低くなります。
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|