Hitachi

Hitachi System Information Capture リファレンス 


6.4.8 蓄積ファイル内容表示コマンドデータ編集UOC

機能

蓄積ファイル内容表示コマンド編集時にUOCを実行します。

形式

ANSI C、C++の形式

#include <esafl.h>
ESLONG es_afl_data_mask( char *userobj, ESLONG protocol, void *parm, ESLONG flags);

説明

蓄積ファイル表示コマンドに指定した関数名で、表示すべき電文を蓄積ファイルから読み込むごとに実行します。編集UOCは必要であれば引数に指定したユーザデータを更新することができます。更新した内容で蓄積ファイル表示コマンドは、ユーザデータを出力します。コマンドに編集UOC名を指定しなかった場合(デフォルト名で関数を作成した場合を除く)やesaflfillsコマンドに「-d」オプションを指定しなかった場合、又はユーザデータが存在しない電文の場合は編集UOCを実行しません。

関数名(es_afl_data_mask)はデフォルト名であり、任意の関数名で作成可能です。その場合はコマンドのオプションに指定してください。

パラメタの内容

ESAFLUOCRPCのパラメタ内容

typedef struct es_afl_uoc_rpc {
  char    key[32];        ………… 電文キー
  char    group[32];      ………… サービスグループ名
  char    service[32];    ………… サービス名
  char    *data;          ………… ユーザデータ
  ESULONG datalen;        ………… ユーザデータ長
  ESLONG  telegram_type;  ………… 電文種別
} ESAFLUOCRPC;

ESAFLUOCCOMのパラメタ内容

typedef struct es_afl_uoc_com {
    char    key[32];       ………… 電文キー
    char    *data;         ………… ユーザデータ
    ESULONG datalen;       ………… ユーザデータ長
    ESLONG  telegram_type; ………… 電文種別
    char    yobi[48];      ………… 予備領域
} ESAFLUOCCOM;

ESAFLUOCIIOPのパラメタ内容

typedef struct es_afl_uoc_iiop {
    char    key[32];       ………… 電文キー
    char    byte_order;      ……… バイトオーダー
    char    yobi1[7];        ……… 予備
    char    *objectkey;      ……… オブジェクトキー
    ESULONG objectkey_size;  ……… オブジェクトキー長
    char    yobi2[4];        ……… 予備
    char    *operation;      ……… オペレーション名
    ESULONG operation_size;  ……… オペレーション名長
    char    yobi3[4];        ……… 予備
    void    *context;        ……… サービスコンテキスト
    ESULONG context_size;    ……… サービスコンテキスト長
    char    yobi4[4];        ……… 予備
    char    *data;           ……… プロトコル電文
    ESULONG datalen;         ……… プロトコル電文長
    ESULONG proto_datalen;   ……… プロトコルヘッダ長
    ESULONG user_datalen;    ……… ユーザデータ長
    ESLONG  telegram_type;    ……… 電文種別
} ESAFLUOCIIOP;

システムテスト支援が設定するパラメタ項目

userobj

起動UOCで指定されたアドレスを設定します。

起動UOCがない場合はNULLを設定します。

protocol

電文のプロトコルを設定します。

  • RPC/RAPプロトコルの場合:ESAFL_PROTOCOL_RPC

  • TCPプロトコルの場合:ESAFL_PROTOCOL_TCP

  • HTTPプロトコルの場合:ESAFL_PROTOCOL_HTTP

  • IIOPプロトコルの場合:ESAFL_PROTOCOL_IIOP

parm
RPC/RAPプロトコルの場合

構造体ESAFLUOCRPCのアドレスを設定します。構造体の各メンバ変数には以下の値を設定します。

  • key

    電文キーを設定します。

  • group

    サービスグループ名を設定します。要求電文の場合は、要求時に指定したサービスグループ名となります。応答電文の場合は、受け付けたサービスグループ名となります。

  • service

    サービス名を設定します。要求電文の場合は、要求時に指定したサービス名となります。応答電文の場合は、受け付けたサービス名となります。

  • data

    ユーザデータの先頭アドレスを設定します。

  • datalen

    電文キーが示す電文のユーザデータ長を設定します。

  • telegram_type

    電文種別を設定します。

    要求電文のとき …… ESAFL_TYPE_REQUEST

    応答電文のとき …… ESAFL_TYPE_RESPONSE

TCP/HTTPプロトコルの場合

構造体ESAFLUOCCOMのアドレスを設定します。構造体の各メンバ変数には以下の値を設定します。

  • key

    電文キーを設定します。

  • data

    ユーザデータの先頭アドレスを設定します。

  • datalen

    電文キーが示す電文のユーザデータ長を設定します。

  • telegram_type

    電文種別を設定します。

    要求電文のとき …… ESAFL_TYPE_REQUEST

    応答電文のとき …… ESAFL_TYPE_RESPONSE

IIOPプロトコルの場合

構造体ESAFLUOCIIOPのアドレスを設定します。応答電文のときは、リプライステータスがNO_EXCEPTION(正常応答)の場合のみ編集UOCを実行します。構造体の各メンバ変数には以下の値を設定します。

  • key

    電文キーを設定します。

  • byte_order

    プロトコル電文のバイトオーダーを設定します。

    ビッグエンディアンの場合 …… ESAFL_BIG_ENDIAN

    リトルエンディアンの場合 …… ESAFL_LITTLE_ENDIAN

  • objectkey

    オブジェクトキーの格納領域アドレスを設定します。

  • objectkey_size

    オブジェクトキー長を設定します。オブジェクトキーがないときは0を設定します。

  • operation

    オペレーション名の格納領域アドレスを設定します。

  • operation_size

    オペレーション名長を設定します。オペレーション名がないときは0を設定します。

  • context

    サービスコンテキストの格納領域アドレスを設定します。バイトオーダーを考慮して参照してください。

  • context_size

    サービスコンテキスト長を設定します。サービスコンテキストがないときは0を設定します。

  • data

    プロトコル電文の先頭アドレスを設定します。バイトオーダーを考慮して参照してください。

    [図データ]

  • datalen

    プロトコルヘッダを含んたプロトコル電文長を設定します。

  • proto_datalen

    プロトコルヘッダ長を設定します。

  • user_datalen

    ユーザデータ長を設定します。

  • telegram_type

    電文種別を設定します。

    要求電文のとき…… ESAFL_TYPE_REQUEST

    応答電文のとき……ESAFL_TYPE_RESPONSE

注意事項

IIOPプロトコルの未サポート電文については、蓄積ファイル内容表示コマンドデータ編集UOCを実行しません。

flags

ESNOFLAGSを設定します。

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

data

必要に応じてデータ更新してください。その更新内容にしたがってダンプ出力します。

なお、入力情報のユーザデータ長以降の領域は参照・更新しないでください。

datalen

コマンドの「-d」オプションで指定した電文長と本設定値のうち、小さいサイズでダンプ出力します。

入力情報のユーザデータ長より大きい値を設定しても無視します。

リターン値

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

ES_UOC_OK

コマンドは処理続行します。

ES_UOC_NG

コマンドを中断します。

上記以外

コマンドを中断します。