3.4.1 テスト業務に適用する場合の運用
ここでは,インメモリデータバッファの更新内容を破棄したり,RDエリアのデータをインメモリデータバッファに再読み込みしたりするなどの運用方法を,インメモリデータ処理をテスト業務に適用する場合の応用例を使って説明します。
- 〈この項の構成〉
(1) 例題の条件
この例題での条件を次に示します。
-
テスト業務を連続して2回実行します。
-
テスト業務でアクセスするRDエリアは,RDDATA01(表格納RDエリア)およびRDIDX01(インデクス格納RDエリア)です。
-
テスト業務の更新内容は,RDエリアに書き込まないで破棄します。
運用の流れを次の図に示します。
(2) コマンド実行手順
コマンドの実行手順を次に示します。
(a) RDエリアをインメモリ化する
-
RDDATA01およびRDIDX01を閉塞クローズ状態にします。
pdhold -r RDDATA01,RDIDX01 -c
-
RDDATA01およびRDIDX01をインメモリ化します。
pdmemdb -k stay -r RDDATA01,RDIDX01
このとき,インメモリデータバッファとRDエリアは,DB同期状態になります。
なお,ここでは,複数のRDエリアをまとめてインメモリ化しています。この場合の注意事項については,「複数のRDエリアを一度にインメモリ化する場合の注意事項」を参照してください。
- 注意事項
-
インメモリ化するときのRDエリアの閉塞は,pdhold -cコマンドで行ってください。pdhold -cコマンドで閉塞クローズ状態にすることによって,ほかのUAPが対象RDエリアにアクセスできないようにします。
-
RDDATA01およびRDIDX01の閉塞クローズを解除します。
pdrels -r RDDATA01,RDIDX01 -o
(b) テスト業務を実行する
-
1回目のテスト業務を実行します。
インメモリデータバッファの内容が更新され,DB非同期状態になります。
(c) インメモリデータバッファ上の更新内容を破棄する
-
RDDATA01およびRDIDX01を閉塞状態にします。
pdhold -r RDDATA01,RDIDX01
-
インメモリデータバッファ上のデータを破棄して更新を無効にします。
pdmemdb -k cancel -r RDDATA01,RDIDX01
このとき,インメモリデータバッファはバッファ障害状態に,RDエリアは障害閉塞状態になります。
(d) RDエリアのデータを再読み込みする
-
RDDATA01およびRDIDX01をクローズ状態にします。
pdclose -r RDDATA01,RDIDX01
-
RDエリアのデータをインメモリデータバッファへ再読み込みします。
pdmemdb -k reload -r RDDATA01,RDIDX01
これによって,テスト業務実行前の状態に戻ります。このとき,インメモリデータバッファとRDエリアは,DB同期状態になります。
-
RDDATA01およびRDIDX01の閉塞を解除します。
pdrels -r RDDATA01,RDIDX01
(e) テスト業務を実行する
-
2回目のテスト業務を実行します。
インメモリデータバッファの内容が更新され,DB非同期状態になります。
(f) インメモリ化を強制解除する
-
RDDATA01およびRDIDX01を閉塞状態にします。
pdhold -r RDDATA01,RDIDX01
-
RDDATA01およびRDIDX01のインメモリ化を強制解除します。
pdmemdb -k rels -r RDDATA01,RDIDX01 -d
これによって,インメモリデータバッファはなくなり,RDエリアは障害閉塞クローズ状態になります。なお,更新情報はRDエリアに反映されません。
-
RDDATA01およびRDIDX01の閉塞を解除します。
pdrels -r RDDATA01,RDIDX01 -o