Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス C言語編


dc_trn_rm_select

〈このページの構成〉

名称

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

形式

ANSI C ,C++の形式

#include <dctrn.h>
int dc_trn_rm_select(char *rmname, char *id, DCLONG flags)

K&R版 C の形式

#include <dctrn.h>
int dc_trn_rm_select(rmname, id, flags)
char *rmname;
char *id;
DCLONG flags;

機能

ユーザサービス定義のtrnrmid定義コマンドに-kオプションを指定したリソースマネジャについて,該当するプロセスまたはトランザクションで接続先となるリソースマネジャ(リソースマネジャ名+リソースマネジャ拡張子)を指定します。

dc_trn_rm_select関数は,グローバルトランザクション外でだけ呼び出せます。トランザクションブランチ内でdc_trn_rm_select関数を呼び出した場合は,エラーリターンします。

dc_trn_rm_select関数が正常に終了したあとは,指定されたリソースマネジャにだけ接続するようになり,trnrmid定義コマンドに-kオプションの指定があるほかの同一名称のリソースマネジャには接続しません。同一UAPプロセス内で,先に指定したリソースマネジャから別のリソースマネジャに変更する場合は,実行中のトランザクションが完了し新たなトランザクションを開始する前に変更対象となるリソースマネジャ(リソースマネジャ名とリソースマネジャ拡張子)を指定したdc_trn_rm_select関数を呼び出してください。

UAPで値を設定する引数

●rmname

接続先となるリソースマネジャ名(trnrmid定義コマンドの-nオプション指定値)を31文字以内の識別子で指定します。

●id

rmnameでリソースマネジャに指定した拡張子(trnrmid定義コマンドの-iオプション指定値)のうち,接続先となる拡張子を2文字以内の識別子で指定します。

●flags

DCNOFLAGSを設定します。

リターン値

リターン値

リターン値(数値)

意味

DC_OK

0

正常に終了しました。

指定されたリソースマネジャは,dc_trn_rm_select関数を呼び出したプロセスで実行されるトランザクションで接続先として設定されました。

DCTRNER_PROTO

-905

dc_trn_rm_select関数を正しくないコンテクスト(例えば,すでにトランザクション内にいる)で呼び出しています。または,実行環境がジャーナルファイルレスモードの場合に関数が呼び出されました。

DCTRNER_RM

-906

リソースマネジャでエラーが起こりました。指定されたリソースマネジャのXA関数の呼び出し処理でエラーが発生しました。

DCTRNER_INVAL

-908

引数の指定値に次の誤りがあります。

  • トランザクションサービス定義のtrnstring定義コマンドに指定されたリソースマネジャが存在しない。

  • trnrmid定義コマンドの-kオプションが指定されていない。

  • flagsに無効な値が指定されている。

指定例

if(dc_trn_rm_select("RM_A", "Z1", DCNOFLAGS))
  fputs("cannot rm select\n",stderr);