6.4.6 受信電文UOC
機能
テスト対象システムから受信した応答電文を参照することができます。
応答電文の情報を次に送信する要求電文に引き継ぎたい場合に使用します。
本UOCは応答待ちタイムアウト等の要因で、応答電文を受信できなかった場合も呼び出されます。その場合、応答データアドレスにNULL、応答データ長に0が設定されます。
形式
#include <esrpc.h> void uoc_func(ESRPC_UOC_RECEIVE_TBL *parm)
説明
テスト対象システムからの電文受信時に呼び出されるUOCです。
各実行形態と入力電文によるUOC実行の有無を以下の表に示します
実行方式 |
本番環境 |
テスト環境 |
||
---|---|---|---|---|
要求電文 |
応答電文 |
要求電文 |
応答電文 |
|
並行実行 |
× |
× |
× |
○ |
蓄積実行 |
× |
× |
× |
× |
並行+蓄積実行 |
× |
× |
× |
○ |
リプレイ実行 |
× |
× |
× |
○ |
PCAP実行 |
× |
× |
× |
○ |
- (凡例)
-
○:UOCが実行される
×:UOCは実行されない
UOCが起動される入力電文は、RPC電文とRAPのAPI代理実行電文です。
システム検証支援基盤は、uoc_func(受信電文UOC)を呼び出すとき、次に示す所定のパラメタをparmに設定します。「uoc_func」部分には、システム内で一意の名称を指定してください。
パラメタの内容
ESRPC_UOC_RECEIVE_TBLのパラメタ内容
typedef struct es_rpc_uoc_receive { ESULONG running_mode; …… 実行形態 ESLONG protocol_type; …… プロトコル種別 ESLONG telegram_type; …… 電文種別 ESLONG rpc_model; …… RPC形態 char group[32]; …… サービスグループ名 char service[32]; …… サービス名 char *in; …… 応答データアドレス ESULONG in_len; …… 応答データ長 ESULONG request_len; …… 要求データ長 char *request; …… 要求データアドレス ESCOM_AREA usr_clt_area; … クライアント単位ユーザ領域 } ESRPC_UOC_RECEIVE_TBL;
ESCOM_AREAのパラメタ内容
typedef struct es_com_area { ESULONG size; ………………… 領域サイズ char reserve[4]; ………………… 予備領域 char *data; ………………… 領域先頭アドレス } ESCOM_AREA;
システムテスト支援が設定するパラメタ項目
- running_mode
-
システム検証支援基盤の実行形態を設定します。以下の値の論理和を設定します。
ESCLT_RUNMODE_P:並行実行
ESCLT_RUNMODE_A:蓄積実行
ESCLT_RUNMODE_R:リプレイ実行
ESCLT_RUNMODE_C:PCAP実行
- protocol_type
-
プロトコル種別を設定します。
ESRPC_TYPE_RPC:rpc
ESRPC_TYPE_RAP:rap
- telegram_type
-
電文種別を設定します。
ESRPC_TELEGRAM_REPLY:応答
- rpc_model
-
RPC形態(RAPの場合はdc_rpc_callの代理実行形態)を設定します。
ESRPC_MODEL_NOFLAGS:同期応答型
ESRPC_MODEL_NOWAIT:非同期応答型
- group
-
テスト対象システムのRPCの引数に指定したサービスグループ名称を設定します。
- service
-
テスト対象システムのRPCの引数に指定したサービス名称を設定します。
- in
-
テスト対象システムから受信した応答データの先頭アドレスを設定します。
応答待ちタイムアウト等の要因で、応答電文を受信できなかった場合、NULLを設定します。
- in_len
-
テスト対象システムから受信した応答データの長さを設定します。
応答待ちタイムアウト等の要因で、応答電文を受信できなかった場合、0を設定します。
- request
-
テスト対象システムへ送信した要求データの先頭アドレスを設定します。
- request_len
-
テスト対象システムへ送信した要求データの長さを設定します。
- usr_clt_area
-
クライアント識別子単位で共有するユーザ領域を設定します。
各メンバには以下の値を設定します。
-
領域サイズ
クライアント単位ユーザ領域のサイズを設定します。
-
ユーザ領域先頭アドレス
クライアント単位ユーザ領域の先頭アドレスを設定します。
対象の領域が当該クライアントで新規に割り当てられた場合、
クライアント単位ユーザ領域はすべて0で初期化されています。
-
ユーザが設定するパラメタ項目
ありません。
リターン値
リターン値はありません。
注意事項
応答データアドレス、要求データアドレスで電文編集を行った場合、その後の処理の保障はしません。