Hitachi

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


14.1.1 関数のシミュレーション内容

シミュレート関数での,OpenTP1の提供する関数のシミュレーション内容一覧を,次の表に示します。

表14‒1 OpenTP1の提供する関数のシミュレーション内容一覧

機能名称

関数名

〔プログラム名

(要求コード)〕

<DML>

機能

トレース情報の取得可否

リターン値の設定可否

関数の処理

システム運用の管理(adm)

dc_adm_call_command関数

〔CBLDCADM(COMMAND)〕

運用コマンドの発行

○

○

運用コマンド結果データファイルから,データを入力して返します。

dc_adm_complete関数

〔CBLDCADM(COMPLETE)〕

ユーザサーバの開始完了報告

○

○

−

dc_adm_status関数

〔CBLDCADM(STATUS)〕

ユーザサーバの状態報告

○

○

正常時は,リターン値としてDCADM_STAT_START_NORMALを,リターンコードとして0を返します。

dc_adm_get_nd_status_begin関数

OpenTP1ノードのステータス取得処理開始

○

○

関数リターン値ファイルに設定したノード識別子の個数を取得します。

dc_adm_get_nd_status_next関数

OpenTP1ノードのステータス取得

○

○

関数リターン値ファイルに設定したノード識別子を取得します。正常時は,C言語のリターン値としてDCADM_STATUS_NORMALを返します。

dc_adm_get_nd_status_done関数

OpenTP1ノードのステータス取得処理終了

○

○

−

dc_adm_get_nd_status関数

OpenTP1ノードのステータス取得

○

○

正常時は,リターン値としてDCADM_STATUS_NORMALを返します。

dc_adm_get_node_id関数

システム共通定義からの自ノード識別子取得

○

○

関数リターン値ファイルに設定したノード識別子を取得します。

dc_adm_get_sv_status_begin関数

サーバのステータス取得処理開始

○

○

関数リターン値ファイルに設定したサーバ名の個数を取得します。

dc_adm_get_sv_status_next関数

OpenTP1ノード上のサーバのステータス取得

○

○

関数リターン値ファイルに設定したサーバ名を取得します。正常時は,C言語のリターン値としてDCADM_STATUS_NORMALを返します。

dc_adm_get_sv_status_done関数

サーバのステータス取得処理終了

○

○

−

dc_adm_get_sv_status関数

指定したサーバのステータス取得

○

○

正常時は,リターン値としてDCADM_STATUS_NORMALを返します。

dc_adm_get_nodeconf_begin関数

ノード識別子取得開始

○

○

関数リターン値ファイルに設定したノード識別子の個数を返します。

dc_adm_get_nodeconf_next関数

関数発行元が属するマルチノードエリア,または指定されたサブエリアの全ノード識別子取得

○

○

関数リターン値ファイルに設定したノード識別子を返します。

dc_adm_get_nodeconf_done関数

ノード識別子取得終了

○

○

−

DAMファイルサービス(dam)

dc_dam_close関数

〔CBLDCDAM(CLOS)〕

DAMファイルのクローズ

○

○

DAMファイルをクローズします。

dc_dam_create関数

〔CBLDCDMB(CRAT)〕

物理ファイルの割り当て

×

×

DAMファイルを生成し,そのファイル記述子を返します。

dc_dam_end関数

〔CBLDCDAM(END)〕

回復対象外ファイルの使用終了宣言

○

○

−

dc_dam_get関数

〔CBLDCDMB(GET)〕

物理ファイルのブロック読み込み

×

×

DAMファイルから指定ブロックを指定バッファに読み込みます。

dc_dam_hold関数

〔CBLDCDAM(HOLD)〕

DAMファイルの論理閉塞

○

○

DAMファイルのヘッダに閉塞のステータスを設定し,閉塞状態にします。

dc_dam_iclose関数

〔CBLDCDMB(CLOS)〕

物理ファイルのクローズ

×

×

DAMファイルをクローズします。

dc_dam_iopen関数

〔CBLDCDMB(OPEN)〕

物理ファイルのオープン

×

×

DAMファイルをオープンし,そのファイル記述子を返します。

dc_dam_open関数

〔CBLDCDAM(OPEN)〕

DAMファイルのオープン

○

○

DAMファイルをオープンし,そのファイル記述子を返します。また,ファイル排他の指定がある場合はファイルを排他します。

dc_dam_put関数

〔CBLDCDMB(PUT)〕

物理ファイルのブロック書き込み

×

×

DAMファイルの指定ブロックにバッファの内容を書き込みます。

dc_dam_read関数

〔CBLDCDAM(READ)〕

DAMファイルのブロック読み込み

○

○

DAMファイルの指定ブロックを指定バッファに読み込みます。また,ブロック排他の指定がある場合はファイルを排他します。

dc_dam_start関数

〔CBLDCDAM(STRT)〕

回復対象外ファイルの使用開始宣言

○

○

−

dc_dam_status関数

〔CBLDCDAM(STAT)〕

DAMファイル状態表示

○

○

DAMファイルの状態を返します。

dc_dam_release関数

〔CBLDCDAM(RLSE)〕

DAMファイルの閉塞解除

○

○

DAMファイルのヘッダが閉塞のステータスの場合,これをリセットし,閉塞を解除します。

dc_dam_rewrite関数

〔CBLDCDAM(REWT)〕

DAMファイルのブロック更新

○

○

DAMファイルの指定ブロックに指定バッファの内容を書き込みます。

dc_dam_write関数

〔CBLDCDAM(WRIT)〕

DAMファイルの出力

○

○

DAMファイルの指定ブロックに指定バッファの内容を書き込みます。

共用テーブルサービス(ist)

dc_ist_close関数

〔CBLDCIST(CLOS)〕

ISTテーブルのクローズ

○

○

ISTテーブルをクローズします。

dc_ist_open関数

〔CBLDCIST(OPEN)〕

ISTテーブルのオープン

○

○

ISTテーブルをオープンし,その記述子を返します。

dc_ist_read関数

〔CBLDCIST(READ)〕

ISTテ−ブルからのレコード読み込み

○

○

ISTテーブルから指定レコードを指定バッファに読み込みます。

dc_ist_write関数

〔CBLDCIST(WRIT)〕

ISTテーブルへのレコード書き込み

○

○

ISTテーブルへ指定されたレコードを書き込みます。

ユーザジャーナルの取得(jnl)

dc_jnl_ujput関数

〔CBLDCJNL(UJPUT)〕

UAP履歴情報の取得

○

○

−

資源の排他制御(lck)

dc_lck_get関数

〔CBLDCLCK(GET)〕

資源の排他要求

○

○

−

dc_lck_release_all関数

〔CBLDCLCK(RELALL)〕

全資源の排他解除要求

○

○

−

dc_lck_release_byname関数

〔CBLDCLCK(RELNAME)〕

資源名称指定による排他解除要求

○

○

−

メッセージログ管理(log)

dc_logprint関数

〔CBLDCLOG(PRINT)〕

ログメッセージ出力要求

○

○

−

メッセージ制御機能(mcf)

dc_mcf_execap関数

〔CBLDCMCF(EXECAP)〕

<SEND>

アプリケーションの起動

○

○

−

dc_mcf_mainloop関数

〔CBLDCMCF(MAINLOOP)〕

MCFサービス開始

○

○

オフラインテスタにサービスの開始を報告します。該当するMHPへのサービス要求があると,サービス関数を実行し,再度サービス要求待ちになります。オフラインテスタの終了などでUAPの終了要求を受け取ると,リターンします。

dc_mcf_receive関数

〔CBLDCMCF(RECEIVE)〕

<RECEIVE>

メッセージ受信

○

○

MCF受信メッセージファイルからセグメントを入力し,メッセージ受信領域に格納します。また,トランザクション通番をカウントアップします。

dc_mcf_reply関数

〔CBLDCMCF(REPLY)〕

<SEND>

応答メッセージの送信

○

○

−

dc_mcf_rollback関数

〔CBLDCMCF(ROLLBACK)〕

<ROLLBACK>

部分回復

○

○

この関数発行後の処理を別トランザクションとして動作するように指定したとき,トランザクション通番をカウントアップします。

dc_mcf_send関数

〔CBLDCMCF(SEND)〕

<SEND>

メッセージ送信

○

○

−

dc_mcf_open関数

〔CBLDCMCF(OPEN)〕

MCF通信サービス使用のための準備・初期化

○

○

−

dc_mcf_close関数

〔CBLDCMCF(CLOSE)〕

MCF通信サービス使用のための環境を消去

○

×

−

dc_mcf_sendrecv関数

〔CBLDCMCF(SENDRECV)〕

<SEND>

同期型メッセージ送受信

○

○

最終セグメントのトレースを出力後,MCF受信メッセージファイルからセグメントを入力し,メッセージ受信領域に格納します。

dc_mcf_recvsync関数

〔CBLDCMCF(RECVSYNC)〕

<RECEIVE>

同期型メッセージ受信

○

○

MCF受信メッセージファイルからセグメントを入力し,メッセージ受信領域に格納します。

dc_mcf_sendsync関数

〔CBLDCMCF(SENDSYNC)〕

<SEND>/<ENABLE>/<DISABLE>

同期型メッセージ送信

○

○

−

dc_mcf_tempget関数

〔CBLDCMCF(TEMPGET)〕

<RECEIVE>

継続問い合わせ応答用一時記憶データ受け取り

○

○

一時記憶データファイルからデータを入力し,メッセージ受信領域に格納します。ファイルがない場合は,ヌル文字を格納します。

dc_mcf_tempput関数

〔CBLDCMCF(TEMPPUT)〕

<SEND>

継続問い合わせ応答用一時記憶データ更新

○

○

一時記憶データファイルを更新します。ファイルがない場合は,ファイルを作成して更新します。

dc_mcf_contend関数

〔CBLDCMCF(CONTEND)〕

<DISABLE>

継続問い合わせ応答終了

○

○

一時記憶データファイルを削除します。

dc_mcf_regster関数

UOC関数アドレス登録

○

○

−

dc_mcf_resend関数

〔CBLDCMCF(RESEND)〕

メッセージの再送信

○

○

−

dc_mcf_commit関数

〔CBLDCMCF(COMMIT)〕

同期点取得

○

○

トランザクション通番をカウントアップします。

リモートプロシジャコール(rpc)

dc_rpc_call関数

〔CBLDCRPC(CALL)〕

遠隔サービス呼び出し

○

○

オフラインテスタにサービス関数の実行を要求します。DCRPC_NOWAIT指定の場合,リターン値としてディスクリプタ(正の整数)を返します。DCRPC_NOREPLY指定の場合,指定したサービス(関数)には応答長として0を返します。

dc_rpc_close関数

〔CBLDCRPC(CLOSE)〕

UAP終了処理

○

×

−

dc_rpc_mainloop関数

〔CBLDCRSV(MAINLOOP)〕

SPPサービス開始

○

○

オフラインテスタにサービスの開始を報告します。該当するSPPへのサービス要求があると,サービス関数を実行し,再度サービス要求待ちになります。オフラインテスタの終了などでUAPの終了要求を受け取ると,リターンします。

dc_rpc_open関数

〔CBLDCRPC(OPEN)〕

UAP開始処理

○

○

共用メモリを割り当てたあと,UAPの開始をオフラインテスタに報告します。

dc_rpc_poll_any_replies関数

〔CBLDCRPC(POLLANYR)〕

dc_rpc_call関数(DCRPC_NOWAIT指定)の応答を受信

○

○

flagsがDCNOFLAGSの場合,まだ応答受信されていないdc_rpc_call関数(DCRPC_NOWAIT指定)の中で最初に発行したdc_rpc_call関数のディスクリプタを返します。

flagsがDCRPC_SPECIFIC_MSGの場合,DC_OKを返します。SPP内で正常終了したdc_rpc_call関数が発行されていない場合,DCRPC_PROTOを返します。

dc_rpc_discard_further_replies関数

〔CBLDCRPC(DISCARDF)〕

dc_rpc_call関数(DCRPC_NOWAIT指定)の応答を取り消し

○

×

dc_rpc_call関数(DCRPC_NOWAIT指定)で返したすべてのディスクリプタを取り消します。

dc_rpc_get_callers_address関数

〔CBLDCRPC(GETCLADR)〕

クライアントのノードアドレス通知

○

×

クライアントのアドレスとして,ADDRESS(固定値)を返します。

dc_rpc_set_service_prio関数

〔CBLDCRPC(SETSVPRI)〕

サービス要求のスケジュールプライオリティ設定

○

×

−

dc_rpc_get_service_prio関数

〔CBLDCRPC(GETSVPRI)〕

サービス要求のスケジュールプライオリティ値の取得

○

×

dc_rpc_set_service_prio関数で設定したスケジュールプライオリティの値を返します。

dc_rpc_set_watch_time関数

〔CBLDCRPC(SETWATCH)〕

サービス応答待ち時間更新

○

○

サービス応答待ち時間を更新します。

dc_rpc_get_watch_time関数

〔CBLDCRPC(GETWATCH)〕

サービス応答待ち時間参照

○

×

dc_rpc_set_watch_time関数で設定した値を参照します。未発行時には180を返します。

TAMファイルサービス(tam)

dc_tam_close関数

TAMテーブルのクローズ

○

○

TAMテーブルファイルの排他を解除し,クローズします。

dc_tam_delete関数

〔CBLDCTAM(ERS,ERSR)〕

TAMテーブルからレコード削除

○

○

キー値で指定されたレコードをTAMテーブルから削除します。TAMテーブルファイルの内容も変更します。

dc_tam_get_inf関数

〔CBLDCTAM(GST)〕

TAMテーブルの情報取得

○

○

指定TAMテーブルファイルに対するオープン要求が関数発行元プロセスから発行されていればDCTAM_STS_OPNを,発行されていなければDCTAM_STS_CLSを返します。

dc_tam_open関数

TAMテーブルのオープン

○

○

テーブルIDでの指定TAMテーブルファイルをオープンし,そのファイル記述子をテーブルIDとして返します。TAMテーブル排他の指定がある場合,TAMテーブルファイルを排他します。

dc_tam_read関数

〔CBLDCTAM(FxxR,FxxU)〕

TAMテーブルのレコード検索

○

○

共用メモリ上のTAMテーブル(管理部,インデクス部)から該当するインデクスを検索し,そのインデクスに対応するレコードをTAMテーブルファイルから読み込みます。レコード排他の指定がある場合,TAMテーブルファイルを排他します。

dc_tam_read_cancel関数

TAMテーブルのレコード検索を取り消し

○

○

指定レコードを含むTAMテーブルファイルに対する排他を解除します。

dc_tam_rewrite関数

TAMテーブルのレコード検索前提の更新

○

○

指定バッファの内容をTAMテーブル上の指定レコードに書き込みます。

dc_tam_write関数

〔CBLDCTAM(MFY,MFYS,STR)〕

TAMテーブルのレコード更新・追加

○

○

共用メモリ上のTAMテーブル(管理部,インデクス部)から該当するインデクスを検索し,そのインデクスに対応する,TAMテーブルファイル上のレコードに,指定バッファの内容を書き込みます。

トランザクション制御(trn)

dc_trn_begin関数

〔CBLDCTRN(BEGIN)〕

トランザクションの開始

○

○

トランザクション通番をカウントアップします。

dc_trn_chained_commit関数

〔CBLDCTRN(C-COMMIT)〕

トランザクションのコミット(連鎖モード)

○

○

トランザクション通番をカウントアップします。

dc_trn_chained_rollback関数

〔CBLDCTRN(C-ROLL)〕

トランザクションのロールバック(連鎖モード)

○

○

トランザクション通番をカウントアップします。

dc_trn_info関数

〔CBLDCTRN(INFO)〕

現在のトランザクションの情報をリターン

○

○

関数リターン値ファイルの指定がなければ,0を返します。

dc_trn_unchained_commit関数

〔CBLDCTRN(U-COMMIT)〕

トランザクションのコミット(非連鎖モード)

○

○

−

dc_trn_unchained_rollback関数

〔CBLDCTRN(U-ROLL)〕

トランザクションのロールバック(非連鎖モード)

○

○

−

TXインタフェース(tx_〜)

tx_begin関数

〔TXBEGIN〕

トランザクションの開始

○

○

トランザクション通番をカウントアップし,TXINFO情報を初期化します。

tx_close関数

〔TXCLOSE〕

リソースマネジャ集合のクローズ

○

○

−

tx_commit関数

〔TXCOMMIT〕

トランザクションのコミット

○

○

連鎖モードの場合,トランザクション通番をカウントアップします。

tx_info関数

〔TXINFORM〕

現在のトランザクションの情報をリターン

○

○

関数リターン値ファイルの指定がなければ,0を返します。

tx_open関数

〔TXOPEN〕

リソースマネジャ集合のオープン

○

○

−

tx_set_commit_return関数

〔TXSETCOMMITRET〕

commit_return特性の設定

○

○

−

tx_set_transaction_control関数

〔TXSETTRANCTL〕

transaction_control特性の設定

○

○

transaction_control特性を設定します。

tx_set_transaction_timeout関数

〔TXSETTIMEOUT〕

transaction_timeout特性の設定

○

○

−

tx_rollback関数

〔TXROLLBACK〕

トランザクションのロールバック

○

○

連鎖モードの場合,トランザクション通番をカウントアップし,transaction_state特性を設定します。

XATMIインタフェース(tp〜)

tpalloc関数

タイプトバッファの割り当て

○

○

引数のtype型で指定されたバッファを割り当て,そのポインタを返します。

tpfree関数

タイプトバッファの解放

○

×

tpalloc関数,tprealloc関数で割り当てたバッファを解放します。

tprealloc関数

タイプトバッファのサイズの変更

○

○

tpalloc関数,tprealloc関数で割り当てたバッファのサイズを変更します。

tptypes関数

タイプトバッファの情報の取得

○

○

tpalloc関数,tprealloc関数で割り当てたバッファのタイプとサブタイプを返します。

tpservice関数

サービス関数のテンプレート

○

×

サービス関数を呼び出す直前にトレース情報を取得します。

tpreturn関数

サービス関数からのリターン

○

○

リターン情報を設定して,サービス要求元にリターンします。

tpadvertise関数

サービス名の広告

○

○

−

tpunadvertise関数

サービス名の広告の取り消し

○

○

−

tpacall関数

サービスの非同期要求

○

○

オフラインテスタにサービス関数の実行を要求します。呼び出し結果はtpgetrply関数で返します。

tpcall関数

サービスの同期要求

○

○

オフラインテスタにサービス関数の実行を要求します。

tpcancel関数

サービスのキャンセル

○

○

tpacall関数で呼び出したサービスの応答をキャンセルします。

tpgetrply関数

サービスからの非同期応答の受信

○

○

サービス関数の実行結果を返します。

tpconnect関数

会話型サービスとのコネクションの確立

○

○

オフラインテスタにサービス関数の実行を要求します。実行結果はtprecv関数で返します。

tpdiscon関数

会話型サービスとのコネクションの切断

○

○

受信待ち(tprecv関数)があれば終了させ,tpdiscon関数受け付け後のtpsend関数,tprecv関数を受け付けないようにします。

tprecv関数

会話型サービスからのメッセージ受信

○

○

XATMI受信データファイルからデータを入力します。

tpsend関数

会話型サービスへのメッセージ送信

○

○

XATMI送信データファイルにデータを出力します。

オンラインテスタ(uto)

dc_uto_test_status関数

〔CBLDCUTO(T-STATUS)〕

ユーザサーバのテスト状態報告

○

○

非テストモード状態を返します。

(凡例)

○:取得または設定できます。

×:取得または設定できません。

−:処理しません。