Hitachi

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


11.1.3 関数リターン値の設定

OpenTP1が提供する関数のリターン値として任意の値を返す場合,あらかじめ関数リターン値ファイルを作成して,リターン値を設定します。

また,XATMI関数のtpsend関数とtprecv関数のイベントタイプや,マルチノード機能で使用する関数に渡す出力データ(ノード識別子,サーバ名)も設定できます。

定義方法や記述形式は,オフラインテスタ環境定義と同じです。

〈この項の構成〉

(1) 形式

(a) リターン値を設定する場合

{関数名|プログラム名(要求コード)} = リターン値 {,|;}

(b) イベントタイプを設定する場合

{tpsend|tprecv} = TPEEVENT,
{tpsend(event)|tprecv(event)} = イベントタイプ {,|;}

(c) 出力データを設定する場合

{マルチノード機能で使用する関数名(node_id)|マルチノード機能で使用する関数名(sv_name)} = {ノード識別子|サーバ名}{,|;}

(2) 機能

OpenTP1提供関数のリターン値として返す,任意の値を定義します。

また,XATMI関数のtpsend関数とtprecv関数のイベントタイプや,TP1/Multiの関数に渡す出力データ(ノード識別子,サーバ名)の値を定義します。

(3) オペランド

(a) リターン値を設定する場合

  • 関数名 | プログラム名(要求コード)

    リターン値を返す関数名,またはプログラム名(要求コード)を指定します。

    関数名

    C言語の関数に対するリターン値を設定します。

    プログラム名(要求コード)

    COBOL言語のプログラムに対するリターン値を設定します。( )の中には要求コードを設定します。

  • リターン値  〜〈1〜39文字の英数字〉

    関数,またはプログラムによって返されるリターン値(COBOL言語ではリターンコード)を設定します。リターン値は,定数名を大文字で設定します。TX関数でCOBOL言語のリターンコードを設定する場合は,定数名でも設定します。

    また,リターン値は,定数名を使わないで数値(10進数)でも設定できます。数値で指定する場合に指定できる範囲を,次に示します。

    インタフェース

    指定できる数値の範囲

    C言語インタフェース

    -99999〜99999

    COBOL言語インタフェース

    0〜99999

    範囲外の場合は,文字列と見なします。

    注※

    TX関数については,-99999〜99999の範囲で指定できます。

なお,定義されていない定数名が指定された場合や,数値が誤って指定された場合(数字以外の指定など)は,関数が正常にリターンしたと見なします。

(b) イベントタイプを設定する場合

  • {tpsend | tprecv}=TPEEVENT

    イベントタイプを設定することを示します。

  • tpsend(event) | tprecv(event)

    イベントタイプを設定する関数を指定します。

    tpsend(event):tpsend関数にイベントタイプを設定します。

    tprecv(event):tprecv関数にイベントタイプを設定します。

  • イベントタイプ

    tpsend関数またはtprecv関数に設定する,イベントタイプを設定します。

    イベントタイプの設定を省略した場合は,TPEV_SVCERRを仮定します。

(c) 出力データを設定する場合

  • マルチノード機能で使用する関数名(node_id) | マルチノード機能で使用する関数名(sv_name)

    出力データを設定する関数名と,出力データの種別を設定します。

    node_id:出力データとしてノード識別子を設定します。

    sv_name:出力データとしてサーバ名を設定します。

    設定できる関数名と,それに対応する出力データの種別を,次に示します。

    関数名

    出力データの種別

    dc_adm_get_nd_status_next関数

    node_id

    dc_adm_get_sv_status_next関数

    sv_name

    dc_adm_get_nodeconf_next関数

    node_id

    dc_adm_get_node_id関数

    node_id

  • ノード識別子 | サーバ名

    設定するノード識別子,またはサーバ名を設定します。

    関数リターン値ファイル内のノード識別子とサーバ名の設定順序は,UAPで発行するマルチノード機能の関数の発行順序と対応します。

    設定を省略した場合や設定に誤りがあった場合,その行は無視されます。したがって,ノード識別子やサーバ名はないものとして処理され,その個数はカウントされません。

    関数リターン値ファイルに設定したノード識別子やサーバ名の個数より,UAPで発行した対応する関数の個数が多い場合,余分の関数のリターン値としてDCADMER_NO_MORE_ENTRYが返されます。ただし,dc_adm_get_node_id関数は除きます。

(4) 定義例

(a) C言語の場合

dc_jnl_ujput  = 0,
dc_dam_open   = DCDAMER_PROTO,
#dc_trn_begin = DC_OK,
dc_dam_read   = -1600,
tpsend        = TPEEVENT,
tpsend(event) = TPEV_DISCONIMM,
dc_adm_get_nd_status_next(node_id) = ND01
        :
        :
dc_logprint   = DC_OK;

(b) COBOL言語の場合

CBLDCJNL(UJPUT)  = 0,
#CBLDCTRN(BEGIN) = 905,
CBLDCDAM(READ)   = 1600,
        :
        :
CBLDCLOG(PRINT)  = 1905;

(5) 注意事項