Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成の手引


1.4.2 OpenTP1のライブラリ関数の一覧

〈この項の構成〉

(1) ライブラリ関数の一覧

OpenTP1のライブラリ関数の一覧を表1-1表1-5に示します。

表1‒1 OpenTP1のライブラリ関数の一覧(OpenTP1の基本機能の関数)

機能

ライブラリ関数名

C言語ライブラリ

COBOL-UAP作成用プログラム

リモートプロシジャコール

アプリケーションプログラムの開始

dc_rpc_open

CBLDCRPC('OPEN ')

SPPのサービス開始

dc_rpc_mainloop

CBLDCRSV('MAINLOOP')

遠隔サービスの要求

dc_rpc_call

CBLDCRPC('CALL ')

通信先を指定した遠隔サービスの呼び出し※1

dc_rpc_call_to

処理結果の非同期受信

dc_rpc_poll_any_replies

CBLDCRPC('POLLANYR')

エラーが発生した非同期応答型RPC要求の記述子の取得

dc_rpc_get_error_descriptor

CBLDCRPC('GETERDES')

処理結果の受信の拒否

dc_rpc_discard_further_replies

CBLDCRPC('DISCARDF')

特定の処理結果の受信の拒否

dc_rpc_discard_specific_reply

CBLDCRPC('DISCARDS')

サービス関数のリトライ

dc_rpc_service_retry

CBLDCRPC('SVRETRY ')

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

dc_rpc_set_service_prio

CBLDCRPC('SETSVPRI')

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

dc_rpc_get_service_prio

CBLDCRPC('GETSVPRI')

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

dc_rpc_get_watch_time

CBLDCRPC('GETWATCH')

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

dc_rpc_set_watch_time

CBLDCRPC('SETWATCH')

クライアントUAPのノードアドレスの取得

dc_rpc_get_callers_address

CBLDCRPC('GETCLADR')

ゲートウェイのノードアドレスの取得

dc_rpc_get_gateway_address

CBLDCRPC('GETGWADR')

CUPへの一方通知

dc_rpc_cltsend

CBLDCRPC('CLTSEND ')

アプリケーションプログラムの終了

dc_rpc_close

CBLDCRPC('CLOSE ')

リモートAPI機能

rapリスナーとのコネクション確立

dc_rap_connect

CBLDCRAP('CONNECT ')

CBLDCRAP('CONNECTX')

rapリスナーとのコネクション解放

dc_rap_disconnect

CBLDCRAP('DISCNCT ')

トランザクション制御

トランザクションの開始

dc_trn_begin

CBLDCTRN('BEGIN ')

連鎖モードのコミット

dc_trn_chained_commit

CBLDCTRN('C-COMMIT')

連鎖モードのロールバック

dc_trn_chained_rollback

CBLDCTRN('C-ROLL ')

非連鎖モードのコミット

dc_trn_unchained_commit

CBLDCTRN('U-COMMIT')

非連鎖モードのロールバック

dc_trn_unchained_rollback

CBLDCTRN('U-ROLL ')

現在のトランザクションに関する情報の報告

dc_trn_info

CBLDCTRN('INFO ')

リソースマネジャ接続先選択

dc_trn_rm_select

CBLDCTRN('RMSELECT')

システム運用の管理

運用コマンドの実行

dc_adm_call_command

CBLDCADM('COMMAND ')

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

dc_adm_complete

CBLDCADM('COMPLETE')

ユーザサーバの状態の報告

dc_adm_status

CBLDCADM('STATUS ')

監査ログの出力

監査ログの出力

dc_log_audit_print

CBLDCADT('PRINT ')

メッセージログの出力

メッセージログの出力

dc_logprint

CBLDCLOG('PRINT ')

ユーザジャーナルの取得

ユーザジャーナルの取得

dc_jnl_ujput

CBLDCJNL('UJPUT ')

ジャーナルデータの編集※2

jnlrput出力ファイルのクローズ

CBLDCJUP('CLOSERPT')

jnlrput出力ファイルのオープン

CBLDCJUP('OPENRPT ')

jnlrput出力ファイルからジャーナルデータの入力

CBLDCJUP('RDGETRPT')

性能検証用トレース

ユーザ固有の性能検証用トレースの取得

dc_prf_utrace_put

CBLDCPRF('PRFPUT ')

性能検証用トレース取得通番の通知

dc_prf_get_trace_num

CBLDCPRF('PRFGETN ')

リアルタイム統計情報サービス

任意区間でのリアルタイム統計情報の取得

dc_rts_utrace_put

CBLDCRTS('RTSPUT ')

(凡例)

−:該当しません。

注※1

COBOL-UAP作成用プログラムは使えません。

注※2

ジャーナルデータの編集では,C言語のAPIは使えません。

表1‒2 OpenTP1のライブラリ関数の一覧(TP1/Message Controlの関数)

機能

ライブラリ関数名

C言語ライブラリ

COBOL-UAP作成用プログラム

メッセージ送受信

MCF環境のオープン

dc_mcf_open

CBLDCMCF('OPEN ')

MHPのサービス開始

dc_mcf_mainloop

CBLDCMCF('MAINLOOP')

メッセージの受信

dc_mcf_receive

CBLDCMCF('RECEIVE ')

応答メッセージの送信

dc_mcf_reply

CBLDCMCF('REPLY ')

メッセージの送信

dc_mcf_send

CBLDCMCF('SEND ')

メッセージの再送

dc_mcf_resend

CBLDCMCF('RESEND ')

同期型のメッセージ受信

dc_mcf_recvsync

CBLDCMCF('RECVSYNC')

同期型のメッセージ送信

dc_mcf_sendsync

CBLDCMCF('SENDSYNC')

同期型のメッセージ送受信

dc_mcf_sendrecv

CBLDCMCF('SENDRECV')

一時記憶データの受け取り

dc_mcf_tempget

CBLDCMCF('TEMPGET ')

一時記憶データの更新

dc_mcf_tempput

CBLDCMCF('TEMPPUT ')

継続問い合わせ応答の終了

dc_mcf_contend

CBLDCMCF('CONTEND ')

アプリケーションプログラムの起動

dc_mcf_execap

CBLDCMCF('EXECAP ')

アプリケーション情報通知

dc_mcf_ap_info

CBLDCMCF('APINFO ')

UOCアプリケーション情報通知

dc_mcf_ap_info_uoc

ユーザタイマ監視の設定

dc_mcf_timer_set

CBLDCMCF('TIMERSET')

ユーザタイマ監視の取り消し

dc_mcf_timer_cancel

CBLDCMCF('TIMERCAN')

MHPのコミット

dc_mcf_commit

CBLDCMCF('COMMIT ')

MHPのロールバック

dc_mcf_rollback

CBLDCMCF('ROLLBACK')

MCF環境のクローズ

dc_mcf_close

CBLDCMCF('CLOSE ')

MCF通信サービスの状態取得

dc_mcf_tlscom

CBLDCMCF('TLSCOM ')

コネクションの状態取得

dc_mcf_tlscn

CBLDCMCF('TLSCN ')

コネクションの確立

dc_mcf_tactcn

CBLDCMCF('TACTCN ')

コネクションの解放

dc_mcf_tdctcn

CBLDCMCF('TDCTCN ')

サーバ型コネクションの確立要求の受付状態取得

dc_mcf_tlsln

CBLDCMCF('TLSLN ')

サーバ型コネクションの確立要求の受付開始

dc_mcf_tonln

CBLDCMCF('TONLN ')

サーバ型コネクションの確立要求の受付終了

dc_mcf_tofln

CBLDCMCF('TOFLN ')

アプリケーションに関するタイマ起動要求の削除

dc_mcf_adltap

CBLDCMCF('ADLTAP ')

論理端末の状態取得

dc_mcf_tlsle

CBLDCMCF('TLSLE ')

論理端末の閉塞

dc_mcf_tdctle

CBLDCMCF('TDCTLE ')

論理端末の閉塞解除

dc_mcf_tactle

CBLDCMCF('TACTLE ')

論理端末の出力キュー削除

dc_mcf_tdlqle

CBLDCMCF('TDLQLE ')

(凡例)

−:該当しません。

表1‒3 OpenTP1のライブラリ関数の一覧(ユーザデータを操作する関数)

機能

ライブラリ関数名

C言語ライブラリ

COBOL-UAP作成用プログラム

DAMファイルサービス

論理ファイルのオープン

dc_dam_open

CBLDCDAM('DCDAMSVC','OPEN')

論理ファイルからブロックの入力

dc_dam_read

CBLDCDAM('DCDAMSVC','READ')

論理ファイルのブロックの更新

dc_dam_rewrite

CBLDCDAM('DCDAMSVC','REWT')

論理ファイルへブロックの出力

dc_dam_write

CBLDCDAM('DCDAMSVC','WRIT')

論理ファイルのクローズ

dc_dam_close

CBLDCDAM('DCDAMSVC','CLOS')

論理ファイルの閉塞

dc_dam_hold

CBLDCDAM('DCDAMSVC','HOLD')

論理ファイルの閉塞の解除

dc_dam_release

CBLDCDAM('DCDAMSVC','RLES')

論理ファイルの状態の参照

dc_dam_status

CBLDCDAM('DCDAMSVC','STAT')

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

dc_dam_start

CBLDCDAM('DCDAMSVC','STRT')

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

dc_dam_end

CBLDCDAM('DCDAMSVC','END ')

物理ファイルの割り当て

dc_dam_create

CBLDCDMB('DCDAMINT','CRAT')

物理ファイルのオープン

dc_dam_iopen

CBLDCDMB('DCDAMINT','OPEN')

物理ファイルからブロックの入力

dc_dam_get

CBLDCDMB('DCDAMINT','GET ')

物理ファイルへブロックの出力

dc_dam_put

CBLDCDMB('DCDAMINT','PUT ')

物理ファイルのブロックの検索

dc_dam_bseek

CBLDCDMB('DCDAMINT','BSEK')

物理ファイルからブロックの直接入力

dc_dam_dget

CBLDCDMB('DCDAMINT','DGET')

物理ファイルへブロックの直接出力

dc_dam_dput

CBLDCDMB('DCDAMINT','DPUT')

物理ファイルのクローズ

dc_dam_iclose

CBLDCDMB('DCDAMINT','CLOS')

TAMファイルサービス

TAMテーブルのオープン

dc_tam_open

TAMテーブルからレコードの入力

dc_tam_read

CBLDCTAM('FxxR')('FxxU')('VxxR')('VxxU')

TAMテーブルのレコード入力を前提の更新

dc_tam_rewrite

CBLDCTAM('MFY ')('MFYS')('STR ')('WFY ') ('WFYS')('YTR ')

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

dc_tam_write

TAMテーブルのレコードの削除

dc_tam_delete

CBLDCTAM('ERS ')('ERSR')('BRS ')('BRSR')

TAMテーブルのレコードの入力取り消し

dc_tam_read_cancel

TAMテーブルの状態の取得

dc_tam_get_inf

CBLDCTAM('GST ')

TAMテーブルの情報の取得

dc_tam_status

CBLDCTAM('INFO')

TAMテーブルのクローズ

dc_tam_close

ISTサービス

ISTテーブルのオープン

dc_ist_open

CBLDCIST('DCISTSVC','OPEN')

ISTテーブルからレコードの入力

dc_ist_read

CBLDCIST('DCISTSVC','READ')

ISTテーブルへレコードの出力

dc_ist_write

CBLDCIST('DCISTSVC','WRIT')

ISTテーブルのクローズ

dc_ist_close

CBLDCIST('DCISTSVC','CLOS')

資源の排他制御

資源の排他

dc_lck_get

CBLDCLCK('GET ')

全資源の排他の解除

dc_lck_release_all

CBLDCLCK('RELALL ')

資源名称を指定した排他の解除

dc_lck_release_byname

CBLDCLCK('RELNAME ')

(凡例)

−:該当しません。

注※

COBOL-UAP作成用プログラムは使えません。

表1‒4 OpenTP1のライブラリ関数の一覧(X/Openに準拠した関数)

機能

ライブラリ関数名

C言語ライブラリ

COBOL-UAP作成用プログラム

XATMIインタフェース

リクエスト/レスポンス型サービスの呼び出しと応答の受信

tpcall()

TPCALL

リクエスト/レスポンス型サービスの呼び出し

tpacall()

TPACALL

リクエスト/レスポンス型サービスからの非同期応答の受信

tpgetrply()

TPGETRPLY

リクエスト/レスポンス型サービスのキャンセル

tpcancel()

TPCANCEL

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

tpconnect()

TPCONNECT

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

tpdiscon()

TPDISCON

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

tprecv()

TPRECV

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

tpsend()

TPSEND

型付きバッファの割り当て

tpalloc()

型付きバッファの解放

tpfree()

型付きバッファのサイズの変更

tprealloc()

型付きバッファの情報の取得

tptypes()

サービス名の広告

tpadvertise()

TPADVERTISE

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

tpunadvertise()

TPUNADVERTISE

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

tpservice()

TPSVCSTART

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

tpreturn()

TPRETURN

TXインタフェース

トランザクションの開始

tx_begin()

TXBEGIN

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

tx_commit()

TXCOMMIT

現在のトランザクションに関する情報の返却

tx_info()

TXINFORM

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

tx_open()

TXOPEN

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

tx_rollback()

TXROLLBACK

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

tx_close()

TXCLOSE

commit_return特性の設定

tx_set_commit_return()

TXSETCOMMITRET

transaction_control特性の設定

tx_set_transaction_control()

TXSETTRANCTL

transaction_timeout特性の設定

tx_set_transaction_timeout()

TXSETTIMEOUT

(凡例)

−:この機能に該当するXATMIインタフェースのCOBOLのAPIはありません。

表1‒5 OpenTP1のライブラリ関数の一覧(特殊な形態で使う関数)

機能

ライブラリ関数名

C言語ライブラリ

COBOL-UAP作成用プログラム

マルチノード機能

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

dc_adm_get_nd_status_begin

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

dc_adm_get_nd_status_next

指定したOpenTP1ノードのステータスの取得

dc_adm_get_nd_status

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

dc_adm_get_nd_status_done

ノード識別子の取得の開始

dc_adm_get_nodeconf_begin

ノード識別子の取得

dc_adm_get_nodeconf_next

ノード識別子の取得の終了

dc_adm_get_nodeconf_done

指定したノード識別子の取得

dc_adm_get_node_id

ユーザサーバのステータス取得の開始

dc_adm_get_sv_status_begin

ユーザサーバのステータスの取得

dc_adm_get_sv_status_next

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

dc_adm_get_sv_status

ユーザサーバのステータス取得の終了

dc_adm_get_sv_status_done

オンラインテスタの管理

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

dc_uto_test_status

CBLDCUTO('T-STATUS')

(凡例)

−:該当しません。

注※

マルチノード機能では,COBOL-UAP作成用プログラムは使えません。

(2) アプリケーションプログラムで使えるライブラリ関数

OpenTP1のUAPで使えるライブラリ関数を表1-6表1-10に示します。ここでは,SUPSPPMHP,およびオフラインの業務をするUAPについて示します。

表1‒6 UAPで使えるライブラリ関数(OpenTP1の基本機能の関数)

OpenTP1のライブラリ関数名

SUP

SPP

MHP

オフラインの業務をするUAP

トランザクションの処理の範囲でない

トランザクションの処理範囲(ルート)

トランザクションの処理の範囲でない

トランザクション範囲

トランザクションの処理の範囲でない

トランザクションの処理範囲(ルート)

ルート

ルート以外

dc_rpc_open

M

M

dc_rpc_mainloop

M

dc_rpc_call

dc_rpc_call_to

dc_rpc_poll_any_replies

dc_rpc_get_error_descriptor

dc_rpc_discard_further_replies

dc_rpc_discard_specific_reply

dc_rpc_service_retry

dc_rpc_set_service_prio

dc_rpc_get_service_prio

dc_rpc_get_watch_time

dc_rpc_set_watch_time

dc_rpc_get_callers_address

dc_rpc_get_gateway_address

dc_rpc_cltsend

dc_rpc_close

M

M

dc_rap_connect

dc_rap_disconnect

dc_trn_begin

M

dc_trn_chained_commit

dc_trn_chained_rollback

dc_trn_unchained_commit

M

dc_trn_unchained_rollback

M

dc_trn_info

dc_trn_rm_select

dc_adm_call_command

dc_adm_complete

dc_adm_status

dc_log_audit_print

dc_logprint

dc_jnl_ujput

CBLDCJUP('CLOSERPT')

CBLDCJUP('OPENRPT ')

CBLDCJUP('RDGETRPT')

dc_prf_utrace_put

dc_prf_get_trace_num

dc_rts_utrace_put

(凡例)

○:該当する条件で使えます。

M:メイン関数からだけ,関数を使えます。

−:該当する条件では使えません。

MHPの「トランザクション処理の範囲でない」とは,非トランザクション属性のMHP,またはMHPのメイン関数の範囲を示します。

注※

この関数を使うUAPは,トランザクションとして実行する指定をしてください。

・TP1/Server Baseの場合:ユーザサービス定義でatomic_updateオペランドにYを指定

・TP1/LiNKの場合:アプリケーションプログラムの環境を設定するときに,トランザクション機能を使う指定

表1‒7 UAPで使えるライブラリ関数(TP1/Message Controlの関数)

OpenTP1のライブラリ関数名

SUP

SPP

MHP

オフラインの業務をするUAP

トランザクションの処理の範囲でない

トランザクションの処理範囲(ルート)

トランザクションの処理の範囲でない

トランザクション範囲

トランザクションの処理の範囲でない

トランザクションの処理範囲(ルート)

ルート

ルート以外

dc_mcf_open

M

M

M

dc_mcf_mainloop

M

dc_mcf_receive

NO

dc_mcf_reply

NO

dc_mcf_send

NO

dc_mcf_resend

dc_mcf_recvsync

dc_mcf_sendsync

dc_mcf_sendrecv

dc_mcf_tempget

NO

dc_mcf_tempput

NO

dc_mcf_contend

NO

dc_mcf_execap

NO

dc_mcf_ap_info

NO

dc_mcf_ap_info_uoc

NO

dc_mcf_timer_set

dc_mcf_timer_cancel

dc_mcf_commit

dc_mcf_rollback

dc_mcf_close

M

M

M

dc_mcf_tlscom

dc_mcf_tlscn

dc_mcf_tactcn

dc_mcf_tdctcn

dc_mcf_tlsln

dc_mcf_tonln

dc_mcf_tofln

dc_mcf_adltap

dc_mcf_tlsle

dc_mcf_tdctle

dc_mcf_tactle

dc_mcf_tdlqle

(凡例)

○:該当する条件で使えます。

M:メイン関数からだけ,関数を使えます。

NO:非トランザクション属性のMHPのサービス関数の範囲でだけ,関数を使えます。

−:該当する条件では使えません。

MHPの「トランザクション処理の範囲でない」とは,非トランザクション属性のMHP,またはMHPのメイン関数の範囲を示します。

表1‒8 UAPで使えるライブラリ関数(ユーザデータを操作する関数)

OpenTP1のライブラリ関数名

SUP

SPP

MHP

オフラインの業務をするUAP

トランザクションの処理の範囲でない

トランザクションの処理範囲(ルート)

トランザクションの処理の範囲でない

トランザクション範囲

トランザクションの処理の範囲でない

トランザクションの処理範囲(ルート)

ルート

ルート以外

dc_dam_open

dc_dam_read

dc_dam_rewrite

(○)

(○)

(○)

dc_dam_write

(○)

(○)

(○)

dc_dam_close

dc_dam_hold

dc_dam_release

dc_dam_status

dc_dam_start

dc_dam_end

dc_dam_create

dc_dam_iopen

dc_dam_get

dc_dam_put

dc_dam_bseek

dc_dam_dget

dc_dam_dput

dc_dam_iclose

dc_tam_open

dc_tam_read

dc_tam_rewrite

dc_tam_write

dc_tam_delete

dc_tam_read_cancel

dc_tam_get_inf

dc_tam_status

dc_tam_close

dc_ist_open

dc_ist_read

dc_ist_write

dc_ist_close

dc_lck_get

dc_lck_release_all

dc_lck_release_byname

(凡例)

○:該当する条件で使えます。

(○):回復対象外のDAMファイルのときだけ使えます。

−:該当する条件では使えません。

MHPの「トランザクション処理の範囲でない」とは,非トランザクション属性のMHP,またはMHPのメイン関数の範囲を示します。

注※

この関数を使うUAPは,TP1/Server Baseの場合,トランザクション属性の指定(ユーザサービス定義でatomic_updateオペランドにYを指定)してください。ただし,回復対象外のDAMファイルへアクセスする場合はトランザクション処理を前提としません。

TP1/LiNKのUAPでは,これらの関数は使えません。

表1‒9 UAPで使えるライブラリ関数(X/Openに準拠した関数)

OpenTP1のライブラリ関数名

SUP

SPP

MHP

オフラインの業務をするUAP

トランザクションの処理の範囲でない

トランザクションの処理範囲(ルート)

トランザクションの処理の範囲でない

トランザクション範囲

トランザクションの処理の範囲でない

トランザクションの処理範囲(ルート)

ルート

ルート以外

tpcall

tpacall

tpgetrply

tpcancel

tpconnect

tpdiscon

tprecv

tpsend

tpalloc

tpfree

tprealloc

tptypes

tpadvertise

※1

※1

※1

tpunadvertise

※1

※1

※1

tpservice※2

tpreturn

※3

※3

※3

tx_begin※4

tx_commit

TX_CHAINED指定※4

tx_commit

TX_UNCHAINED指定※4

tx_info

tx_open

tx_rollback

TX_CHAINED指定※4

tx_rollback

TX_UNCHAINED指定※4

tx_close

tx_set_commit_return※4

tx_set_transaction

_control※4

tx_set_transaction

_timeout※4

(凡例)

○:該当する条件で使えます。

−:該当する条件では使えません。

注※1

この関数は,サービス関数の中でだけ使えます。

注※2

tpserviceは,サービス関数の実体です。

注※3

この関数は,XATMIインタフェースのサービス関数をリターンするためだけに使います。

注※4

この関数を使うUAPは,トランザクションとして実行する指定をしてください。

・TP1/Server Baseの場合:ユーザサービス定義でatomic_updateオペランドにYを指定

・TP1/LiNKの場合:アプリケーションプログラムの環境を設定するときに,トランザクション機能を使う指定

表1‒10 UAPで使えるライブラリ関数(特殊な形態で使う関数)

OpenTP1のライブラリ関数名

SUP

SPP

MHP

オフラインの業務をするUAP

トランザクションの処理の範囲でない

トランザクションの処理範囲(ルート)

トランザクションの処理の範囲でない

トランザクション範囲

トランザクションの処理の範囲でない

トランザクションの処理範囲(ルート)

ルート

ルート以外

dc_adm_get_nd_status

_begin

dc_adm_get_nd_status

_next

dc_adm_get_nd_status

dc_adm_get_nd_status

_done

dc_adm_get_nodeconf

_begin

dc_adm_get_nodeconf

_next

dc_adm_get_nodeconf

_done

dc_adm_get_node_id

dc_adm_get_sv_status

_begin

dc_adm_get_sv_status

_next

dc_adm_get_sv_status

dc_adm_get_sv_status

_done

dc_uto_test_status

(凡例)

○:該当する条件で使えます。

−:該当する条件では使えません。

注※

この関数を使うUAPがあるノードには,TP1/Multiが組み込まれていることが前提です。