Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)


4.7.2 RPC要求の受信と組み立て

コネクションの確立後,OpenTP1からのRPC要求が,32キロバイトずつに分割された電文として送信されます。

RPC通信機能のリクエスト受け付けスレッドは,コネクション管理機能によって割り当てられたコネクションを使用して,分割された電文を順次受信し,一つの要求電文として組み立てます。

電文の受信と組み立ての流れを次の図に示します。

図4‒10 電文の受信と組み立ての流れ

[図データ]

TP1インバウンドアダプタでは,分割された電文を受信すると,データチェックを実行します。データチェックで正常と判定した電文について,組み立てを実行します。組み立て後,次の電文を受信します。最後の電文の場合は,最後のデータチェックを実行し,電文受信を終了します。なお,データチェックで電文の異常を検知した場合は,エラー応答を送信します。

要求電文の受信中に,ネットワーク障害やOpenTP1の障害などによってコネクションが切断された場合,TP1インバウンドアダプタはエラーメッセージ(KDJE58354-E)を出力して電文の受信処理を中断します。なお,OpenTP1では,コネクションの切断を検知すると,再度コネクションを確立して,送信の途中だった電文の送信をリトライします。TP1インバウンドアダプタでは,OpenTP1からのリトライに備え,受信済みの電文を電文組み立てリストに保持します。電文組み立てリストは,最大同時接続数分保持できます。このリストは,残りの電文をすべて受信し終えるか,またはRPC要求の受信タイムアウトが発生するまで保持されます。

コネクション障害が頻発することによって電文組み立てリストが蓄積して電文の組み立てができなくなると,新たなRPC要求の受信ができなくなります。この場合,エラーメッセージ(KDJE58359-E)が出力されます。また,呼び出し元のdc_rpc_call関数にはRPCエラー(トランザクショナルRPCでない場合はDCRPCER_NO_BUFS(-304),トランザクショナルRPCの場合はDCRPCER_NET_DOWN(-323))が返されます。

電文組み立てリストが不足した状態は,OpenTP1から残りの電文がすべて再送されるか,またはRPC要求の受信タイムアウトが発生すると,解消します。

RPC要求の受信時のエラー,および電文組み立てリストが不足した場合のエラーについては,「4.17 TP1インバウンドアダプタで発生するRPCエラー応答」を参照してください。

また,最大同時接続数,および要求電文の受信処理のタイムアウトの設定は,Connector属性ファイルに指定します。指定する項目は次のとおりです。

指定方法の詳細については,「4.12.2 リソースアダプタの設定」を参照してください。