Hitachi

Hitachi System Information Capture リファレンス 


6.4.6 受信電文UOC

機能

テスト対象システムから受信した応答電文を参照することができます。

応答電文の情報を次に送信する要求電文に引き継ぎたい場合に使用します。

本UOCは応答待ちタイムアウト等の要因で、応答電文を受信できなかった場合も呼び出されます。その場合、応答データアドレスにNULL、応答データ長に0が設定されます。

形式

#include <esrpc.h>
void uoc_func(ESRPC_UOC_RECEIVE_TBL *parm)

説明

テスト対象システムからの電文受信時に呼び出されるUOCです。

各実行形態と入力電文によるUOC実行の有無を以下の表に示します

表6‒7 受信電文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で初期化されています。

ユーザが設定するパラメタ項目

ありません。

リターン値

リターン値はありません。

注意事項

応答データアドレス、要求データアドレスで電文編集を行った場合、その後の処理の保障はしません。