4.5.6 dc_clt_get_trnid_s − 現在のトランザクションに関する識別子の取得
(1) 形式
(a) TP1/Client/Wの場合
■ _s付き関数
#include <dcvclt.h> DCLONG dc_clt_get_trnid_s(DCCLT_ID cltid, char *trngid, char *trnbid)
■ _s無し関数
#include <dcvclt.h> DCLONG dc_clt_get_trnid(char *trngid, char *trnbid)
(b) TP1/Client/Pの場合
■ _s付き関数
#include <dcvclt.h> DCLONG dc_clt_get_trnid_s(DCCLT_ID cltid, char CLTFAR *trngid, char CLTFAR *trnbid)
■ _s無し関数
#include <dcvclt.h> DCLONG dc_clt_get_trnid(char CLTFAR *trngid, char CLTFAR *trnbid)
(2) 機能
現在のトランザクショングローバル識別子,およびトランザクションブランチ識別子を取得します。
この識別子は,次に示す関数を実行してトランザクションが起動されたときに,OpenTP1が割り当てたものです。
-
dc_trn_begin_s関数
-
dc_trn_chained_commit_s関数
-
dc_trn_chained_rollback_s関数
(3) UAPで値を設定する引数
-
cltid
dc_clt_cltin_s関数で受け取ったクライアントIDを指定します。
-
trngid
トランザクショングローバル識別子を受け取る領域を指定します。
トランザクショングローバル識別子は16文字です。最後にNULL文字が付けられるため,17バイト以上の領域を確保してください。
-
trnbid
トランザクションブランチ識別子を受け取る領域を指定します。
トランザクションブランチ識別子は16文字です。最後にNULL文字が付けられるため,17バイト以上の領域を確保してください。
(4) 値が返される引数
-
trngid
トランザクショングローバル識別子が返されます。
-
trnbid
トランザクションブランチ識別子が返されます。
(5) リターン値
リターン値 |
数値 (10進数) |
意味 |
---|---|---|
DC_OK |
0 |
正常終了しました。 |
DCCLTER_INVALID_ARGS |
-2501 |
trngid,またはtrnbidのポインタがNULLです。 |
DCCLTER_PROTO |
-2502 |
誤ったコンテクスト(例 トランザクションの範囲外)から関数を呼び出しています。 |
DCCLTER_NO_BUFS |
-2504 |
メモリ不足が発生しました。 |
DCCLTER_INVALID_CLTID |
-2544 |
cltidに指定したクライアントIDは,dc_clt_cltin_s関数で受け取ったクライアントIDと異なっています。 |
(6) 注意事項
引数trngidおよびtrnbidには,17バイト以上の領域を指定してください。領域が17バイト未満の場合,TP1/Client内部の処理で領域破壊を起こすおそれがあります。