Oracleをリソースマネジャとして登録する方法は,Microsoft SQL Serverの場合と同じです。詳細は,「4.1.1(1) Microsoft SQL Serverの登録」を参照してください。また,Oracleを登録するときに入力に必要となる「関連オブジェクト名称」などについては,OracleのXAインタフェースに関して記載されたマニュアルを参照してください。
[リソースマネジャのXA関連オブジェクト]ダイアログボックスでの指定例を次に示します。
C:¥orant¥rdbms¥XA¥ORAXA9.LIB
TP1/LiNKでは,X/OpenのXAインタフェースで定められているリソースマネジャのOpen,Close文字列を設定する必要があります。Open,Close文字列は,[OPEN,CLOSE文字列]ダイアログボックスで設定します。ダイアログボックスについては,「2.1.3(4) Open,Close文字列の指定」を参照してください。Open,Close文字列として指定する内容については,Oracleのマニュアルを参照してください。
なお,[トランザクションサービス用xa_open関数用文字列(T)]で指定するuidには,OracleのDB管理者を指定してください。指定したuidがOracleのDB管理者でなかった場合,またはDBA権限を持っていない場合にはUAPの部分回復,およびTP1/LiNKシステム再開始後のトランザクション回復処理が正常に行われない場合があります。
[OPEN,CLOSE文字列]ダイアログボックスでの指定例を次に示します。
Oracleにアクセスするためには,Oracleが定めた環境変数に値を設定する必要があります。環境変数の設定は,次のダイアログボックスを使用します。
また,設定が必要な環境変数名や設定値などについては,Oracleのインストール時に設定した値や,環境設定に関して記載されたマニュアルを参照してください。
Oracle連携時の各ダイアログボックスでの指定例を次に示します。
表4-3 [オプション]ダイアログボックスでの指定例(Oracleの場合)
項番 | [トランザクションサービスの環境変数]欄 [変数(V)] | [トランザクションサービスの環境変数]欄 [値(A)] |
---|---|---|
1 | ORACLE_HOME | c:¥orant |
2 | ORACLE_SID | ORCL |
表4-4 [SPP環境設定]ダイアログボックスまたは[SUP環境設定]ダイアログボックスでの指定例(Oracleの場合)
項番 | [ユーザサーバの環境変数]欄 [変数(Y)]※ | [ユーザサーバの環境変数]欄 [値(Z)] |
---|---|---|
1 | ORACLE_HOME | c:¥orant |
2 | ORACLE_SID | ORCL |
UAPのコンパイルとリンケージは,Microsoft SQL Serverの場合と同じです。詳細は,「4.1.1(3) Microsoft SQL Server連携時のUAPのコンパイルとリンケージ」を参照してください。
TP1/LiNKから複数のOracle DBMSにアクセスする場合には,OracleのOpen,Close文字列指定の仕様によって,SQL*Netが必要です。Oracleのマニュアルを参照しSQL*Netのセットアップを行ってください。
また,Open,Close文字列の指定方法が通常の場合と異なります。[OPEN,CLOSE文字列]ダイアログボックスの[リソースマネジャ拡張子(R)]を使用して,「リソースマネジャ名+リソースマネジャ拡張子」によって,DBMSを識別できるように指定します。[OPEN,CLOSE文字列]ダイアログボックスで指定したリソースマネジャ拡張子を,[SPP詳細設定]ダイアログボックスまたは[SUP詳細設定]ダイアログボックスでも指定して,各UAPが使用するOracleのOPEN,CLOSE文字列を設定します。[SPP詳細設定]ダイアログボックスまたは[SUP詳細設定]ダイアログボックスについては,「3.2.2 SPPの詳細設定」または「3.3.2 SUPの詳細設定」を参照してください。
また,OracleのDBMSが一つの場合でも,複数のOracleのuidでアクセスする場合でも,複数のOracleをアクセスするときと同様の指定が必要です。
Oracle RAC機能を使用した場合,フェイルオーバーが発生すると,障害が発生したフェイルオーバー元から,フェイルオーバー先へインダウトトランザクション(未決着トランザクション情報)が転送されます。このインダウトトランザクションの転送処理をしている間,TP1/LiNKのトランザクション回復処理を抑止できます。この機能を使用しない場合には,Oracleの仕様によってTP1/LiNKとOracle間でトランザクション決着種別に不一致が発生するおそれがあります。
これを回避するためには,リソースマネジャ接続としてOracleを接続後に,トランザクションサービス定義(%DCDIR%¥conf¥trnファイル)のtrnstring定義コマンドで,-rオプションを指定してください。trnstring定義コマンドで-rオプションを指定した場合,リソースマネジャからの待ち合わせを行うので,トランザクション回復プロセスが占有され,回復処理が滞るためトランザクション回復プロセス数(trn_recovery_process_countオペランド)も,trnstring 定義コマンドの-rオプションで指定したリソースマネジャ数分増やしてください。また,trnstring定義コマンドの-rオプションを有効にするためには,[OPEN,CLOSE文字列]ダイアログボックスに"OPS_FAILOVER=T"を指定する必要があります。
この機能を使用して,開始処理中またはオンライン処理中にリソースマネジャに障害が発生した場合に,そのリソースマネジャが参加したトランザクションの該当リソースマネジャの障害が回復されるまでトランザクション回復処理が遅れます。
trn_recovery_process_countオペランドの説明を次に示します。
形式
set trn_recovery_process_count = 並行回復プロセス数
~<符号なし整数>((1~128))《1》
説明
トランザクションブランチが異常終了したときに,トランザクションブランチの回復処理を並行してできる数を指定します。
トランザクションブランチが異常終了した場合は,ここで指定した数だけ並行してトランザクションブランチの回復処理をします。
回復プロセス数に2以上を指定した場合,[システム環境設定]の[サーバ数]欄の[SPP(P)]に指定値を加えてください。なお,定義追加後にリソースマネジャ接続で設定を変更した場合は,再度指定してください。
定義例
定義の最終行には,改行を入力してください。
# ALL RIGHTS RESERVED, COPYRIGHT (C)1994, HITACHI, LTD.
# LICENSED MATERIAL OF HITACHI,LTD.
# *
# * トランザクションサービス定義
# * 環境名: trn
# *
# TP1/LiNK (trn)
set trn_tran_process_count = 32
set trn_wait_rm_open = continue
trnstring -n Oracle_XA -e -r ¥
-o "Oracle_XA+Acc=P/sys/syspass+SesTm=30"¥
-o "Oracle_XA+Acc=P/scott/tiger+SesTm=30"
set trn_recovery_process_count = 1
putenv ORACLE_SID ¥
ORCL
putenv ORACLE_HOME ¥
E:¥orant
リソースマネジャにOracleを使用する場合,次の点に注意してください。
Oracleアクセス基礎値 ≧
((Oracleにアクセスするユーザサーバプロセスの総数+1※1+1※2)
×OracleのDBMS数)SESSIONSの最小値≧Oracleアクセス基礎値×n※3