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

[目次][索引][前へ][次へ]

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

<この項の構成>
(1) ライブラリ関数の一覧
(2) アプリケーションプログラムで使えるライブラリ関数

(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
tpservice2
tpreturn 3 3 3
tx_begin4
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_return4
tx_set_transaction
_control4
tx_set_transaction
_timeout4
(凡例)
○:該当する条件で使えます。
−:該当する条件では使えません。
注※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が組み込まれていることが前提です。