BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   ATMI アプリケーションでの BEA Tuxedo TOP END Domain Gateway の使用   |   先頭へ   |   前へ   |   次へ   |   目次

 


BEA TOP END クライアントから BEA Tuxedo サーバへのメッセージ送信

BEA TOP END クライアントは、要求/応答モードと同じように、会話モードで要求を BEA Tuxedo サーバに送信します。TEDG は 以下の表に基づいてサーバとの会話を管理します。

会話型メッセージング・プロセス:BEA TOP END クライアントから BEA Tuxedo サーバへ

状況

処理内容

クライアント要求に対して検索された DM_LOCAL_SERVICES SERVICE エントリが会話型 (CONV=Y) に設定されている

TEDG は要求を擬似会話要求として処理します。クライアント対話のコンテキストが存在する前の初期要求の場合、TEDG は tpconnect(3c) と同等の関数を呼び出してサーバとの会話を開始し、(もしあれば) データと TPRECVONLY フラグをサーバに送信して、制御権をサーバに与えます。

サーバが TPRECVONLYL フラグを設定し tpsend(3c) を呼び出して応答する

TEDG は TP_APPL_CONTEXT フラグを設定して BEA TOP END クライアントに応答し、会話を保持します。

TP_DISSOLVE フラグがクライアントによって設定された

サーバの応答をクライアントに返した後 (TP_DISSOLVE、および TP_APPL_CONTEXT なし)、TEDG はサーバに対して tpdiscon(3c) と同等の関数を呼び出します。

サーバで TPRECVONLY フラグが設定されない、または TPSENDONLY が設定される

注記 BEA TOP END 擬似会話から BEA Tuxedo 会話へのマッピングにおいて、BEA Tuxedo サーバは応答に関する会話の制御権を放棄するよう要求されます。

TEDG はエラーを記録し、tpdiscon(3c) を使って会話を終了します。BEA TOP END 対話はリセットされます (TP_RESET)。

サーバが TPSUCCESS を設定して会話を終了する (tpreturn(3c))

TEDG は TP_APPL_CONTEXT フラグを設定せずに BEA TOP END クライアントに応答します。

サーバが TPFAIL または TPEXIT を設定して会話を終了する (tpreturn(3c))

TEDG は対話をリセットし、TP_RESET および拡張ステータス TP_EXT_SERVER_APPL をBEA TOP END クライアントに返します。

クライアントが空白のプロダクトと空白の関数パラメータを指定してコンテキストを継続する

対話を介して BEA TOP END アプリケーション・コンテキストを継続するクライアント要求は、TPRECVONLY フラグを設定した tpsend(3c) と同等の関数を使用して、同じ会話に送られます。

注記 TEDG でマップされる会話について、BEA TOP END クライアントは function_qualifier を使用して、マルチステップ対話のステップを指定することはできません。この情報はクライアント・メッセージで渡す必要があります。

クライアントが関数スイッチを実行して (プロダクトと関数を指定して) コンテキストを切断する

TEDG は TP_DISCONNECT を受信し、tpdiscon(3c) と同等の関数を使って会話を終了します。切断ステータスについて BEA TOP END システムに肯定応答します。


 

TEDG と BEA TOP END クライアントの動作

クライアントの動作は任意の BEA TOP END クライアントで使用する関数と同じ関数でプログラミングされます。

使用する関数

目的

tp_client_send

非同期要求の作成

tp_client_signon

非同期要求の作成

tp_client_receive

応答の受信


 

これらの関数を通常の方法で使用し、TEDG を介して BEA Tuxedo サーバにサービス要求を行います。

BEA TOP END クライアントのプログラマは次の情報を把握していることが必要です。

TEDG によるクライアント要求のマッピング

クライアント要求にはトランザクションに関与するものと関与しないものがあります。応答は必ず必要です。次の表は、BEA TOP END クライアントのフラグがどのようにマッピングされるかを示しています。これらのフラグのマッピングにより、通常 BEA TOP END システムで行われるタスクを TEDG で実行することができます。TEDG への要求では、input_format および attach_info パラメータを使用しないでください。これらのパラメータはサポートされていません。

BEA TOP END クライアントのフラグのマッピング

BEA TOP END クライアントのフラグ

動作

TP_DISSOLVE

TEDG は対話を終了し、サーバ応答を返します。次に、tpdiscon(3c) 呼び出しを発行して会話を終了します。

TP_NON_TRANSACT

TEDG 側では、CSI ライブラリによって要求がクライアントのトランザクションから除外されるという事実が保持されます。

TP_NO_RESPONSE

このフラグは擬似会話に対してはサポートされていません。TEDG は対話をリセットし、TP_RESET および拡張ステータス TP_EXT_SERVER_APPL を返します。

TP_FML_BUF

TEDG はユーザ・データを FML32 バッファとして渡します。


 

BEA TOP END クライアントに返されるステータス値および拡張されたステータス値は、標準の値です。エラー値のマッピングについては、「エラー値」を参照してください。

TEDG は BEA Tuxedo システムまたはサーバの応答を、tp_client_receive(3T) 呼び出しを介して BEA TOP END クライアントがアクセスする応答にマッピングします。BEA Tuxedo サーバは、CARRAYX_OCTETFML32 のいずれかのバッファ・タイプで応答を送信する必要があります。CARRAY または X_OCTET バッファは TEDG によって raw メッセージにマッピングされます。FML32 バッファは BEA TOP END FML32 メッセージにマッピングされます。管理者は応答バッファのタイプを CARRAYX_OCTET、または FML32のいずれかに制限できます。BEA Tuxedo サービスが互換性のないバッファを返すと、TEDG は TP_RESET ステータスを返します。

TEDG と BEA Tuxedo サーバの動作

BEA Tuxedo サーバに対し、TEDG は会話型 BEA Tuxedo クライアントの機能を果たします。つまり、マッピングされた BEA TOP END クライアント要求を通常の方法で受信します。TEDG はメッセージを送信した後、常に制御権を放棄します。その結果、

受信するバッファのタイプは CARRAYX_OCTET、または FML32 のいずれかであり、クライアントから送信されるメッセージに依存します。BEA Tuxedo サーバは要求を通常の方法で処理します。クライアント要求にはトランザクションに関与するものとしないものがあります。

BEA Tuxedo サーバはクライアント要求に対し通常の方法で応答します。会話を継続する場合、TPRECVONLY フラグおよびデータとともに tpsend(3c) を呼び出します。この場合、サーバはさらに tprecv(3c) を呼び出して、次のクライアント・メッセージ、エラー表示、または会話が終了したことの通知 (TPEV_DISCONIMM) を受信しなければなりません。会話の最後のメッセージを送信するには、TPSUCCESS フラグを設定して tpreturn(3c) を呼び出します。会話を終了してエラーを示すには、TPFAIL フラグを設定して tpreturn() を呼び出します。応答メッセージは tpsend または TPSUCCESS でのみサポートされます。アプリケーション定義の戻りコード rcode は TEDG ではサポートされていません。

BEA TOP END システム、TEDG コンフィギュレーション、および BEA TOP END クライアントでサポートされているバッファ・タイプに応じて、BEA Tuxedo サーバのバッファは CARRAYX_OCTET、または FML32 バッファのいずれかになります。このバッファは、「TEDG によるクライアント要求のマッピング」 で説明するとおり BEA TOP END メッセージにマッピングされます。サーバは、TPFAIL を呼び出すかまたは応答バッファにアプリケーション定義のフィールド値を設定して応答することにより、エラーを示します。BEA TOP END クライアントはそれに従ってプログラミングされなければなりません。会話を終了するには、クライアントは tp_client_signoff(3T) を呼び出すか、または別のサービスを呼び出す関数スイッチを実行して、対話を終了します。

BEA TOP END メッセージは 30K バイトに制限されているため、BEA Tuxedo サーバの応答はこのサイズを超えることはできません。FML32 メッセージに対しては、FML インデックスを除いたメッセージにこの制限が適用されます。

TEDG による BEA Tuxedo サーバのフラグのマッピング

次の表は、フラグが BEA Tuxedo サーバ応答を送信する関数 tpsend(3c) にどのようにマッピングされるかを示しています。ほかのすべてのフラグ (TPNOBLOCKTPNOTIMETPSIGRSTRT) はアプリケーションにローカルであるか、または BEA Tuxedo システム内のサーバと TEDG 間対話にのみ影響します。

BEA Tuxedo サーバのフラグのマッピング

BEA Tuxedo サーバのフラグ

動作

TPRECVONLY

このフラグには on を設定しなければなりません。設定しないと、TEDG は対話をリセットし、TP_RESET および拡張ステータス TP_EXT_SERVER_APPL を返します。

TPSENDONLY

TEDG は対話をリセットし、TP_RESET および拡張ステータス TP_EXT_SERVER_APPL を返します。


 

エラー値

TEDG、BEA Tuxedo システム、または BEA Tuxedo サーバに問題がある場合、通常の BEA TOP END エラー・ステータス・メッセージおよびその他のステータス・メッセージが BEA TOP END クライアントに返されます。1 つのエラー・ステータス値は、複数の原因のうちの 1 つにしかすぎない場合があることに注意してください。

TEDG が宣言するサービスは実際の BEA Tuxedo サービスの可用性に基づくわけではないので、実際にはそのサービスが利用できない BEA Tuxedo ノードにメッセージがルーティングされることもあります。その場合、ほかのルーティング決定では要求は正常に行われても、TP_SERVICE エラーが返されます。サービスを複数のノードで利用できる場合、BEA Tuxedo アプリケーション、BEA TOP END アプリケーション、および TEDG の設計ではこの種の障害が発生する可能性を考慮する必要があります。複数の再起動可能なサーバを定義したアプリケーションであれば、このようなエラーが発生する可能性は低くなります。

BEA TOP END クライアントに返されるエラー値

BEA TOP END エラー・ステータス

原因

TP_SERVICETP_EXT_MSR_FAILURE

TEDG SERVICE エントリのルックアップに失敗しました。ターゲットは見つかりませんでした。

TP_SERVICETP_EXT_NO_SUCH_SERV

TEDG SERVICE エントリのルックアップに失敗しました。プロダクトまたは関数は見つかりませんでした (RDOM がアクセスしないエントリは無視します)。

TP_SERVICETP_EXT_NO_SUCH_SERV

TPENOENT が BEA Tuxedo システムによって返されました。

TP_RESETTP_EXT_SERVER_APPL

入力バッファ・タイプが、SERVICE エントリの INBUFTYPE フィールドで指定されるタイプと一致しません。

TP_RESETTP_EXT_SERVER_APPL

サーバ応答のバッファ・タイプが、SERVICE エントリの OUTBUFTYPE フィールドで指定されたタイプと一致していないか、TEDG でサポートされているタイプではありません。(FML32CARRAY、および X_OCTETがサポートされています。)

TP_RESETTP_EXT_SERVER_APPL

(FML バッファの FML インデックスを除いた) サーバ応答バッファが最大メッセージ・サイズの 30K バイトを超えています。

TP_RESETTP_EXT_SERVER_APPL

サーバが異常終了し TPFAIL を返しました。

TP_RESETTP_EXT_SERVER_APPL

サーバ応答に TPRECVONLY が指定されていないか、または TPSENDONLY が設定されています。

TP_RESETTP_EXT_SERVER_APPL

ほかのすべての tperrno 値。

TP_RESETTP_EXT_SERVER_APPL

公開鍵/秘密鍵による暗号化が原因のエラー。

BEA Tuxedo システムが暗号化を要求するように設定され、TEDG は BEA TOP END システムに送信する前にメッセージを解読できなかったため、クライアント入力が BEA Tuxedo サーバによって拒否されました。

TP_RESETTP_EXT_SERVER_APPL

デジタル署名が原因のエラー。

BEA Tuxedo システムがデジタル署名を要求するように設定され、TEDG は BEA TOP END システムに送信する前にメッセージからデジタル署名を削除できなかったため、クライアント入力が BEA Tuxedo サーバによって拒否されました。

TP_RESETTP_EXT_SERVER_FAIL

TEDG の内部エラー。


 

関連項目

 

先頭へ戻る 前のトピックへ 次のトピックへ