Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 テスタ・UAPトレース使用の手引


3.3.1 サービス要求データファイル

〈この項の構成〉

(1) RPC要求データファイル

RPCインタフェースのクライアントUAPシミュレート機能使用時,utosppsvcコマンドで指定したサービスのサービス関数に渡すデータを格納します。一つのファイルには,一つのデータを作成します。

(a) ファイルの構造

[図データ]

(b) ファイルの内容

項目

位置

長さ(バイト)

内容

データ長

0

4

サービス関数に渡すデータの長さを指定します

(1〜DCRPC_MAX_MESSAGE_SIZEの指定値)。

応答領域長

4

4

サービス関数に渡す応答領域長を指定します

(1〜DCRPC_MAX_MESSAGE_SIZEの指定値)。

データ

8

n

サービス関数に渡すデータを指定します。

(c) 注意事項

  • サービス関数の引数との関係を次に示します。

    [図データ]

    1. データ

    2. データ長

    3. 応答領域長

  • RPC要求データファイルは,オフラインテスタのファイルも使用できます。

  • データ長に満たないデータを指定した場合は,エラーとなります。また,データ長を超えた部分のデータは無視されます。

(2) XATMI要求データファイル

XATMIインタフェースのクライアントUAPシミュレート機能使用時,サービスに対応したサービス関数に渡すデータを格納します。一つのファイルには,一つのデータを作成します。

(a) ファイルの構造

[図データ]

(b) ファイルの内容

項目

位置

長さ(バイト)

内容

呼び出し種別

0

8

サービスを呼び出す際に,呼び出し元の関数の種別を指定します。

call:tpcall関数からの呼び出し

acall:tpacall関数からの呼び出し

connect:tpconnect関数からの呼び出し

タイプ

8

8

バッファタイプとして,次の文字列のどれかを指定します。

  • X_OCTET

  • X_COMMON

  • X_C_TYPE

サブタイプ

16

16

サブタイプを16文字以下の文字列で指定します。ただし,タイプに'X_OCTET'を指定した場合は,サブタイプはヌル文字とします。

フラグ

32

4

サービス関数に渡す次のフラグを,16進数で指定します。呼び出し情報での指定によって限定されます。

0x00000000:0(call,acall指定時だけ)

0x00000004:TPNOREPLY(acall指定時だけ)

0x00000008:TPNOTRAN

0x00000100:TPNOCHANGE(call,acall指定時だけ)

0x00000800:TPSENDONLY(connect指定時だけ)

0x00001000:TPRECVONLY(connect指定時だけ)

なお,サービス要求時にTPNOTIMEとTPSIGRSTRTは必ず設定されます。TPNOBLOCKは設定しません。

データ長

36

4

サービス関数に渡すデータの長さを指定します(0〜524288)。データがない場合は0を指定します。

0を指定すると,タイプ,サブタイプの指定は無視されます。

データ

40

n

サービス関数に渡すデータを指定します。

(c) 注意事項

  • サービス関数の引数との関係を次に示します。

    void tpservice(svcinf)
         TPSVCINFO *svcinf;
     
         struct TPSVCINFO {
                   char name[32];
                   char *data;       →1.
                   long len;         →2.
                   long flags;
                   int cd;
                }
    1. タイプ,サブタイプにマッピングされたデータが格納されているアドレス

    2. dataで示すデータの長さ

  • utoxsppsvcコマンドで発行するXATMI関数との関係を次に示します。

    idata=tpalloc (type, subtype, ilen);
                    2.      3.      4.
    tpcall (svc, idata, ilen, odata, olen, flags);
      1.                  4.                 5.
    tpacall (svc, idata, ilen, flags);
      1.                   4.    5.
    tpconnect (svc, idata, ilen, flags);
        1.                   4.     5.
    1. 呼び出し種別に対応したXATMI関数

    2. タイプ名

    3. サブタイプ名

    4. データ長

    5. フラグ(指定したフラグを実際のフラグの値に変換して指定)

  • XATMI要求データファイルは,オフラインテスタのファイルも使用できます。

  • データ長に満たないデータを指定した場合は,エラーとなります。また,データ長を超えた部分のデータは無視されます。

  • サブタイプ名が16文字に満たない場合,サブタイプ名の後ろにヌル文字を付けて指定してください。

  • タイプがX_OCTET以外の場合,ファイル内で指定したサブタイプのデータ長と,utoxsppsvcコマンドで指定するサブタイプのデータ長が異なると,XATMI要求データファイルのデータ不正になります。

  • フラグにはTPNOCHANGEのコードを指定できますが,無視されます。

  • タイプ,サブタイプを指定した場合のデータ長とデータは,スタブで定義したデータ構造(構造体)と同じでなければなりません。

    また,スタブで定義したデータ構造は,バウンダリ調整が行われます(合計長は4の整数倍となります)。そのため,ファイルで指定するデータはその調整部分を考慮して作成する必要があります。

    バウンダリ調整の内容は,stbmakeコマンドで作成したスタブソース,およびstbmakeコマンドに-pオプションを指定した場合の出力結果を参照して,確認してください。