Hitachi

Hitachi System Information Capture リファレンス 


6.4.4 送信編集UOC

機能

テスト対象システムへ電文送信時にUOCを実行します。テスト対象システムへ送信する要求電文の編集を行うことが出来ます。

形式

ANSI C、C++の形式

#include <esrpc.h>
ESLONG uoc_func(ESRPC_UOC_REQUEST_TBL *parm)

説明

テスト対象システムへ電文送信時に呼び出されるUOCです。テスト対象システムへ電文送信時に呼び出されるUOCです。

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

表6‒5 送信編集UOC実行比較

-

本番環境

テスト環境

要求電文

応答電文

要求電文

応答電文

並行実行

×

×

×

蓄積実行

×

×

×

×

並行+蓄積実行

×

×

×

リプレイ実行

×

×

×

PCAP実行

×

×

×

凡例

○:UOCが実行される

×:UOCは実行されない

ユーザオウンコーディング(UOC)が起動される入力電文は、RPC電文とRAPのAPI代理実行電文です。

システムテスト支援は、uoc_func(送信編集UOC)を呼び出すとき、次に示す所定のパラメタをparmに設定します。「uoc_func」部分には、システム内で一意の名称を指定してください。

パラメタの内容

ESRPC_UOC_REQUEST_TBLのパラメタ内容

typedef struct es_rpc_uoc_request {
  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 out_len;       ………… 応答データ長
  char    *edit_in;      ………… 編集要求データアドレス
  ESCOM_AREA usr_clt_area; ……… クライアント単位ユーザ領域
} ESRPC_UOC_REQUEST_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_REQUEST:要求電文

rpc_model

RPC形態を設定します。

ESRPC_MODEL_NOFLAGS:同期応答型

ESRPC_MODEL_NOWAIT非同期応答型

ESRPC_MODEL_NOREPLY:非応答型

group

既存システムのRPCの引数に指定したサービスグループ名称を設定します。

service

既存システムのRPCの引数に指定したサービス名称を設定します。

in

既存システムのRPCの引数に指定した要求データの先頭アドレスを設定します。

in_len

既存システムのRPCの引数に指定した要求データの長さを設定します。

out_len

既存システムのRPCの引数に指定した応答データの長さを設定します。

edit_in

テスト対象システムへ送信するデータの先頭アドレスを設定します。

usr_clt_area

クライアント識別子単位で共有するユーザ領域を設定します。

各メンバには以下の値を設定します。

  • 領域サイズ

    クライアント単位ユーザ領域のサイズを設定します。

  • ユーザ領域先頭アドレス

    クライアント単位ユーザ領域の先頭アドレスを設定します。

    対象の領域が当該クライアントで新規に割り当てられた場合、クライアント単位ユーザ領域はすべて0で初期化されています。

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

group

テスト対象システムのサービスグループ名称を設定してください。

service

テスト対象システムサービス名称を設定してください。

in_len

テスト対象システムへ送信するデータの長さを設定してください。

out_len

テスト対象システムから受け取る応答データの長さを設定してください。

edit_in

編集後のユーザデータを設定してください。

リターン値

次のコードでリターン値を設定してください。

ESRPC_UOC_OK

ユーザが編集した内容を使って、送信します。

ESRPC_UOC_OK_IN

編集する前の内容を使って、送信します。

ESRPC_UOC_NG

対象メッセージを送信しません。

上記以外

指定リターン値以外でリターンした場合、対象メッセージを送信しません。

注意事項

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

編集後要求データアドレスに8Mbyteを超えるデータを格納した場合、要求電文その後の処理は保証しません。

編集前後要求データ長、または編集前後応答データ長に0以下、または8MBを超える値が設定されている場合はエラーと見なし、要求電文を送信しません。