3.1.7 データ連動リソースの作成
他社DBMSからHiRDBへデータ連動する場合,データ連動リソース管理ユーザに対してデータ連動に必要なリソースを作成する必要があります。
データ連動リソース管理ユーザについては,「2.7 データ連動リソース管理ユーザの登録(UNIX)」又は「2.14 データ連動リソース管理ユーザの登録(Windows)」を参照してください。
(1) データ連動リソースの一覧
Oracleの場合のデータ連動リソースの一覧を次の表に示します。
リソース種別 |
リソース名 |
使用目的 |
割り当て数 |
初期作成/再作成のタイミング |
---|---|---|---|---|
オブジェクト型 |
RPL_EXT_MSGTYPE |
キューテーブルに格納するメッセージのデータ型 |
1 |
抽出環境初期化時 (hdestartOコマンド(-iオプションを指定)の延長) |
キューテーブル |
RPL_EXT_QUEUE |
各抽出表トリガからの更新情報格納用キュー |
||
キューテーブル表 (アドバンストキューテーブル) |
RPL_EXT_QUEUETBL |
各抽出表トリガからの更新情報格納用キュー表 |
||
抽出同期管理テーブル |
RPL_EXT_SYNCTBL |
抽出同期処理異常終了時の回復情報格納 |
||
抽出順序管理テーブル |
RPL_EXT_SORTTBL |
同一行に対する更新順序保証のためのソート情報格納 |
||
抽出順序管理テーブル用インデクス |
RPL_EXT_SORTIDX |
DEQUEUE性能向上のための抽出順序管理テーブルに対するインデクス |
||
シーケンス番号 |
RPL_EXT_SEQ |
更新順序保証のためのシーケンス番号 |
||
データ連動用トリガ |
RPL_EXT_TRGxxxx (xxxx:1〜4096) |
抽出表からの更新情報取得及びキュー格納 |
抽出表と同数 |
抽出定義プリプロセスファイルの作成時 (hdeprepOコマンドの延長) |
- 注
-
削除のタイミングは,どのリソースも,DROP USER…CASCADEを実行してデータ連動リソース管理ユーザを削除したときです。
SQL Serverの場合のデータ連動リソースの一覧を次の表に示します。
リソース種別 |
リソース名 |
使用目的 |
割り当て数 |
初期作成/再作成のタイミング |
---|---|---|---|---|
キューテーブル |
RPL_EXT_QUEUETBL |
各抽出表トリガからの更新情報格納用キュー |
1 |
抽出環境初期化時(hdestartSコマンド(-iオプションを指定)の延長) |
抽出同期管理テーブル |
RPL_EXT_SYNCTBL |
抽出同期処理異常終了時の回復情報格納 |
1 |
|
リソースオペランドテーブル |
RPL_EXT_RESOPDTBL |
抽出システム定義のsqls_msgkeeptimeの値保証のため |
1 |
|
データ連動用トリガ |
RPL_EXT_TRGnnnn_XXX※ |
抽出表からの更新情報取得及びキューテーブル格納 |
抽出表の数×3 |
抽出定義プリプロセスファイルの作成時(hdeprepSコマンドの延長) |
- 注※
-
nnnn及びXXXには,次に示す値が入ります。
変数
値
備考
nnnn
1〜4096
−
XXX
INS
INSERT用トリガを意味します。
UPD
UPDATE用トリガを意味します。
DEL
DELETE用トリガを意味します。
(2) 更新情報の保存
抽出データ不正などの障害が発生した時に,他社DBMSと抽出側Datareplicator Extensionのどちらに問題があるかを判断できるように,キューテーブルから更新情報を取り出した後もキューテーブル内に更新情報を保存できます。保存期間は,抽出システム定義のoracle_msgkeeptime(Oracleの場合)オペランド,又はsqls_msgkeeptime(SQL Serverの場合)で指定できます。
oracle_msgkeeptimeオペランドの詳細については「5.1.1 抽出システム定義」を,sqls_msgkeeptimeオペランドの詳細については「5.2.1 抽出システム定義」を参照してください。
(3) データ連動リソースについての注意
次の場合は,データ連動の動作及び抽出側と反映側の整合性を基本的に保証できません。
-
「表3-2 Oracleの場合のデータ連動リソースの一覧」に示したデータ連動リソースを,Datareplicator Extensionが提供するコマンドを使用しないでユーザ自身が作成した場合
-
コマンドを使用して作成したリソースに対して,ユーザが独自に定義内容を変更したりリソースを削除したりした場合
ただし,トリガについては,抽出対象表の運用の一環として,ユーザ責任でトリガを削除できます。抽出対象表の運用については,Oracleの場合は「6.2.1 抽出対象表の運用」を,SQL Serverの場合は「6.4.1 抽出対象表の運用」参照してください。
(4) トリガの作成
トランザクション処理中にトリガを再作成することでトランザクションの一貫性が不正となるのを防ぐため,データ連動用トリガの作成は,抽出対象表に対する共用排他を取得し,排他取得が成功した場合にだけ実行します。排他取得に失敗した場合は,抽出定義プリプロセスファイルを作成するコマンド(hdeprepX)をエラー停止します。
また,トリガを作成していない状態で抽出処理が起動するのを防ぐため,トリガ作成中にエラーが発生した場合は,エラーが発生するまでに作成したすべてのデータ連動用トリガを削除するとともに,抽出定義プリプロセスファイルを使用できないようにします。
(5) エラー処理
データ連動リソースの作成時に起こるエラー内容及びエラーに対する対処方法を次に示します。
エラー内容 |
対処方法 |
---|---|
オブジェクト型作成エラー |
エラーの原因を取り除いた後,再度,抽出環境を初期化してください。 |
キューテーブル作成エラー |
|
抽出同期管理テーブル作成エラー |
|
トリガ作成エラー※ |
エラーの原因を取り除いた後,再度,抽出定義プリプロセスファイルを作成してください。 |
その他の他社DBMS操作エラー |
エラーの原因を取り除いた後,再度,抽出環境を初期化するか抽出定義プリプロセスファイルを作成してください。 |
- 注
-
上記のエラーが発生した場合,KFRB00060-Eメッセージが出力され,抽出処理はエラー終了します。
- 注※
-
エラー処理の過程で,エラーが発生するまでに作成したすべてのデータ連動用トリガを削除するとともに,抽出定義プリプロセスファイルを使用できないようにします。