3.5.1 レプリカRDエリアへのアクセス
3.3節および3.4節の操作の完了後,レプリカRDエリアの運用を開始できます。このとき,カレントRDエリアはオリジナルRDエリアです。HiRDBクライアント環境定義,UAP環境定義,または運用コマンドで,アクセスしたいRDエリアを指定しなければ,アプリケーションや運用コマンドはカレントであるオリジナルRDエリアへアクセスします。カレントRDエリアではない,特定のRDエリアへアクセスする場合は,HiRDBクライアント環境定義,UAP環境定義,または運用コマンドでアクセスするRDエリアを指定する必要があります。ここでは,指定方法について説明します。
(1) アプリケーションからのアクセス
アプリケーションから,インナレプリカグループ内の特定のRDエリアへアクセスする場合は,アプリケーション動作環境にHiRDBクライアント環境定義またはUAP環境定義の「PDDBACCS」を追加する必要があります。PDDBACCSにはアクセスするRDエリアの世代番号を指定します。
- アクセスするRDエリアの指定(「PDDBACCS」の設定)
-
PDDBACCSは,ログインシェル環境に合わせて次のどちらかのファイルに設定します。
-
Bourneシェル環境のとき:$HOME/.profile
-
Cシェル環境のとき:$HOME/.cshrcまたは$HOME/.login
-
- 設定例
PDDBACCS = 3 //アクセスする世代番号を指定
ここでは,世代番号:3のレプリカRDエリアへアクセスする指定をしています。
- 設定時の注意
-
具体的な設定方法については,マニュアル「HiRDB システム定義」または「HiRDB UAP開発ガイド」を参照してください。ここでは,設定前に知っておくべきことについて説明します。
-
PDDBACCSに世代番号の指定がある場合には,指定された世代番号のRDエリアへアクセスします。
-
PDDBACCSの指定がない場合は,カレントRDエリアへアクセスします。
-
指定された世代番号のRDエリアが存在しない場合は,カレントRDエリアへアクセスします。
-
アクセス対象の表に関連するすべてのRDエリアの,世代番号が同じである必要があります。世代番号が一致しない場合は,HiRDBクライアントから発行したSQLの実行エラーになります。ただし,表が複数のRDエリアに分割している場合は,それぞれの世代番号をチェックできません。したがって,分割しているそれぞれのRDエリアの世代番号が一致していなくてもSQLの実行は成功してしまいますが,意図しない世代番号のRDエリアを更新することにならないように,世代番号はそろえておいてください。
アクセス対象の表に関連するすべてのRDエリアとは,「レプリカを作成するときのまとまり」で示すまとまりのことを指します。
-
HiRDBクライアント環境定義またはUAP環境定義に「PDDBACCS」の指定を追加しない場合,アプリケーションはカレントRDエリアへアクセスします。通常,カレントRDエリアはオリジナルRDエリアに設定されています。この設定は,変更できます。カレント設定の変更方法については,「カレントRDエリアの変更」を参照してください。
(2) HiRDBの運用コマンドからのアクセス
HiRDBの運用コマンド(ユティリティ)をインナレプリカグループ内のカレント以外の特定のRDエリアに対して実行する場合,-qオプションにアクセスするRDエリアの世代番号を指定してユティリティを実行します。-qオプションを指定することによって,カレント以外の特定のRDエリアを対象にした処理ができます。-qオプションの使い方や-qオプションが使えるコマンドについては,「インナレプリカグループ内のRDエリアに対して実行できるコマンドの一覧」を参照してください。