![]() |
![]() |
|
|
BEA Tuxedo クライアントから BEA TOP END サーバへのメッセージの送信
BEA Tuxedo クライアントは、TEDG を介して BEA TOP END サービスにアクセスします。BEA Tuxedo クライアントに対し、TEDG はローカル・サーバの機能を果たします。TEDG は、DMCONFIG ファイルの DM_REMOTE_SERVICES セクションの SERVICE エントリで定義されるサービスを宣言します。クライアント・プログラムは、tpcall() を使用したローカル・サービスとの通信と同じように、tpcall(3c) を使用して要求を発行し、応答を受信します。非同期型の要求と応答は、tpacall(3c) および tpgetrply(3c) 関数によってサポートされます。DMCONFIG ファイルの DM_REMOTE_SERVICES セクションで、TEDG サービスに対する SERVICE エントリに CONV=N が指定されている場合、BEA Tuxedo クライアントはそのサービスと要求/応答モードでのみ通信できます(CONV=N はデフォルト値であり、設定する必要はありません)。
TEDG は要求されているサービス名から DM_REMOTE_SERVICES セクションの SERVICE エントリを検索し、マッピングされる BEA TOP END 要求に対し、対応する BEA TOP END プロダクト、関数、MSR ターゲット、および関数修飾子を決定します。必要に応じて、メッセージが BEA TOP END システムに送信される前に、TEDG でデータ・マーシャリングが行われます。次に、BEA TOP END システムはメッセージを受信した BEA TOP END ノード上のサーバに要求をルーティングします。必要に応じて、BEA TOP END サーバの応答はマーシャリング解除されます。TEDG は要求のステータスをマッピングし、応答を BEA Tuxedo クライアントに送信するためのバッファを準備します。
TEDG と BEA Tuxedo クライアントの動作
クライアントの動作は任意の BEA Tuxedo クライアントで使用する関数と同じ関数でプログラミングされます。
使用する関数 |
目的 |
---|---|
tpcall() |
同期型の要求および応答 |
tpacall() |
非同期型の要求および応答 |
tpgetreply() |
非同期型の要求および応答 |
これらの関数は通常の方法でプログラミングされます。 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 メッセージは 30K バイトに制限されているため、クライアント要求はこのサイズを超えることはできません。FML32 タイプのメッセージに対しては、FML インデックスを除いたメッセージにこの制限が適用されます。
TEDG によるクライアント要求のマッピング
クライアント要求には、トランザクションに関与するものと関与しないものがあります。また、応答を要求しないものもあります。次の表は、BEA Tuxedo クライアントのフラグが BEA TOP END 要求にどのようにマッピングされるかを示しています。ほかのすべてのフラグ (TPNOCHANGE、TPNOBLOCK、TPNOTIME、TPSIGRSTRT) およびサービス優先順位 (tpsprio() を参照) は、アプリケーションにローカルであるか、または BEA Tuxedo システム内のクライアントと TEDG 間対話にのみ影響します。次のフラグを処理することにより、通常 BEA Tuxedo システムで行われるタスクを TEDG で実行することができます。
詳細については、「エラー値」 を参照してください。
注記 tpurcode は TEDG ではサポートされていません。
TEDG は BEA TOP END システムまたはサーバの応答を、tpcall パラメータまたは tpgetrply 関数を介して BEA Tuxedo クライアントがアクセスする応答にマッピングします。BEA TOP END サーバは raw バッファか FML32 バッファの応答を送信します。raw バッファは、管理者が X_OCTET バッファにマッピングするように設定しない限り、通常は TEDG で CARRAY バッファにマッピングされます。さらに管理者は、応答バッファの型を CARRAY、X_OCTET、FML32 のいずれかに制限することができます。BEA TOP END サービスが互換性のないバッファを返すと、TEDG は TPEOTYPE が設定された tperrno を返します。
TEDG と BEA TOP END サーバの動作
BEA TOP END サーバに対し、TEDG は BEA TOP END クライアントの機能を果たします。つまり、マッピングされた BEA Tuxedo クライアント要求を通常の方法で tp_server_receive(3T) を介して受信します。受信されるバッファは、BEA Tuxedo クライアントから送信されるメッセージに応じて、raw バッファか FML32 バッファのいずれかになります。BEA TOP END サーバは次のいずれかのタイプの要求を受け取ります。
BEA TOP END サーバは、標準の BEA TOP END プログラミング要件に従って両方のタイプの要求を処理します。クライアント要求にはトランザクションに関与するものとしないものがあります。
TEDG による BEA TOP END サーバ送信フラグのマッピング
BEA TOP END サーバは tp_server_send(3T) を使用してクライアント要求に応答します。BEA TOP END アプリケーション、TEDG コンフィギュレーション、および BEA Tuxedo クライアントでのサポートに応じて、応答バッファは raw バッファか FML32 バッファのいずれかです。このバッファは、「TEDG によるクライアント要求のマッピング」で説明するとおり BEA Tuxedo クライアントのバッファにマッピングされます。
次の表は、BEA TOP END の tp_server_send(3T) フラグがどのようにマッピングされるかを示しています。サーバは、対話をリセットするかまたは応答バッファにアプリケーション定義のフィールド値を設定して応答することにより、エラーを示します。BEA Tuxedo クライアントは適切に応答するようにプログラミングされなければなりません。TEDG への応答で output_format および attach_info パラメータを使用しないでください。これらのパラメータはサポートされていません。
エラー値 TEDG、BEA TOP END システム、または BEA TOP END サーバに問題がある場合、次のエラー値が BEA Tuxedo クライアントに返されます。1 つの tperrno 値は、複数の原因のうちの 1 つにしかすぎない場合があることに注意してください。 TEDG が宣言するサービスは実際の BEA TOP END サービスの可用性に基づくわけではないので、実際にはそのサービスが利用できない BEA TOP END ノードにメッセージがルーティングされることもあります。その場合、ほかのルーティング決定では要求は正常に行われても、tperrno に TPENOENT が設定されます。サービスを複数のノードで利用できる場合、BEA Tuxedo アプリケーション、BEA TOP END アプリケーション、および TEDG の設計ではこの種の障害が発生する可能性を考慮する必要があります。複数の再起動可能なサーバを定義したアプリケーションであれば、このようなエラーが発生する可能性は低くなります。
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|