![]() |
![]() |
|
|
BEA Tuxedo クライアントから RTQ へのメッセージ登録
BEA Tuxedo クライアントは、tpenqueue(3c) を呼び出してメッセージを BEA TOP END の RTQ キューに登録することができます。呼び出しで指定されたキュー・スペース (QSPACE) パラメータに基づいて、BEA Tuxedo アプリケーションは要求を TEDG にルーティングします。BEA Tuxedo クライアントに関して、TEDG は TMQUEUE(5) サーバの機能を果たします。
BEA TOP END 管理者は RTQ キューを BEA TOP END システムで作成する必要があります。RTQ キューの作成については、『BEA TOP END Recoverable Transaction Queuing Guide』を参照してください。RTQ キューを BEA Tuxedo のキュー・スペースとして宣言するには、TEDG の DMCONFIG ファイルの DM_REMOTE_SERVICES セクションに、そのキュー・スペースの QSPACE エントリが定義されていなければなりません。BEA TOP END システムの RTQ キューのステータス、つまりキューに対する RTQ サーバが利用可能かどうかは、接続がアクティブの間はトラッキングされません。TEDG でサポートされているキュー・スペースは qmadmin では定義されません。 キュー・スペースは BEA Tuxedo の /Q キューに対して定義されます。
TEDG はキュー・スペースエントリの TE_RTQGROUP、TE_RTQNAME、およびオプションの TE_TARGET パラメータを使って、対応する BEA TOP END キューを決定します。RTQ 要求のサービス名を決定するには、tpenqueue() 関数のキュー名 (qname) パラメータを使用します。キュー名に一致する QNAME エントリを DM_REMOTE_SERVICES セクションで検索します。関連する 4 つのパラメータ (TE_PRODUCT、TE_FUNCTION、TE_TARGET、および TE_QUALIFIER) の値を取得し、BEA TOP END システムに送信するメッセージに指定します。BEA TOP END システムに対して、TEDG は tp_rtq_put 要求と同じ処理を行います。
キュー・スペースが正常にマッピングされないと、TEDG は TPENOENT を返します。qname がマッピングされないと、tpenqueue() の戻りコード TPEDIAGNOSTIC および診断値 QMEBADQUEUE が返されます。BEA TOP END システムによって返されるステータスは BEA Tuxedo 戻り値にマッピングされ、BEA Tuxedo クライアントに送信されます。
RTQ キューに登録されるメッセージは RTQ によってスケジューリングされ、受信側サーバは通常の方法でメッセージにアクセスします。要求に関連するクライアント識別子は TEDG ローカル・ドメイン ID です。ほかの RTQ メッセージ同様、サーバは終了時に RTQ に応答しますが、データを返すことはできません。サーバの応答が必要な場合は、クライアントとサーバが応答キュー情報を実際のクライアント・メッセージ内で送信し、BEA Tuxedo システムの /Q 機能による応答処理をエミュレートすることが必要です。
TEDG と BEA Tuxedo クライアントの動作
BEA Tuxedo クライアントでは、TEDG を介してメッセージを BEA TOP END の RTQ キューに登録するために tpenqueue() 関数を使用します。
BEA Tuxedo クライアントのプログラマは次の情報を把握している必要があります。
BEA TOP END サービスが FML32 入力をサポートしている場合、BEA Tuxedo クライアントは BEA Tuxedo FML32 バッファ・タイプを使用します。FML32 は、TEDG と異なるタイプの BEA TOP END ノード間を送信される場合、TEDG と BEA TOP END システムでデータ・マーシャリングがサポートされているため有用です。
BEA TOP END サービスはこれらのバッファ・タイプの 1 つ以上をサポートしています。
BEA TOP END の RTQ メッセージは 30,000 バイトに制限されているため、クライアント要求はこのサイズを超えることはできません。FML32 メッセージに対しては、FML インデックスを除いたメッセージにこの制限が適用されます。
TEDG によるクライアント要求のマッピング
クライアント要求にはトランザクションに関与するものとしないものがあります。次の表は、BEA Tuxedo クライアントの tpenqueue のフラグおよび関連するパラメータが BEA TOP END の RTQ 要求にどのようにマッピングされるかを示しています。これらのフラグおよびパラメータのマッピングにより、通常 BEA Tuxedo システムで行われるタスクを TEDG で実行することができます。
ほかの tpenqueue() のオプションのフラグは次のとおりです。これらのフラグは TEDG でサポートされていません。TPQCTL の urcode フィールドもサポートされていません。
tpenqueue() 呼び出しで BEA Tuxedo クライアントに返される tperrno 値は標準の値です。TEDG は TMQUEUE サーバとして機能するので、TEDG および RTQ 関連のエラーは TPEDIAGNOSTIC tperrno と TPQCTL 診断フィールドの対応する値の両方にマッピングされます。
エラー値
TEDG、BEA TOP END システム、または BEA TOP END サーバに問題がある場合、次のエラー値が BEA Tuxedo クライアントに返されます。1 つのエラー値は、複数の原因のうちの 1 つにしかすぎない場合があることに注意してください。
TEDG が宣言する QSPACE は、キュー処理を行う実際の BEA TOP END の RTQ サーバの可用性に基づくわけではないので、実際にはそのキュー・スペースを利用できない BEA TOP END ノードにメッセージがルーティングされることもあります。その場合、ほかのルーティング決定では要求は正常に行われても、tperrno に TPENOENT が設定されます。キュー・スペースを複数のノードで利用できる場合、BEA Tuxedo アプリケーション、BEA TOP END アプリケーション、および TEDG の設計ではこの種の障害が発生する可能性を考慮する必要があります。複数の再起動可能なサーバを定義したアプリケーションであれば、このようなエラーが発生する可能性は低くなります。
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|