4.11.6 リスト使用時の注意事項
- 〈この項の構成〉
(1) HiRDBから切り離しをした後のリスト
リストは,HiRDBから切り離しをしても削除されません。リストを削除する場合は,DROP LIST文で削除してください。また,HiRDBシステムを停止した場合は,すべてのリストが削除されます。
(2) 行の挿入,削除によるリストの状態
リストを使用した検索では,リスト作成時にあった行がリスト作成後に削除されると,その行は検索されません。また,リスト作成後に更新した行は,更新後のデータを取り出します。
(3) リスト作成後の行の削除,挿入
リストを使用した検索では,リスト作成後に,基表に対して行の削除をした後に,別の行を挿入した場合,挿入した行が検索されることがあります。
(4) 横分割表に対するASSIGN LIST文の実行
横分割した表に対してASSIGN LIST文を実行した場合,基表のRDエリアの一部が閉塞などの要因で検索できないときは,探索条件中の分割列に対する条件で検索できるRDエリアのデータを指定していてもエラーとなります。
(5) 同一ユーザのリストの操作
同一ユーザが,複数同時にHiRDBと接続してリストを操作できません。
(6) ディクショナリサーバ,又はディクショナリサーバがあるユニットの停止
HiRDB/パラレルサーバの場合,ディクショナリサーバ,又はディクショナリサーバがあるユニットを停止すると,リスト管理情報が失われます。この結果,それまで作成していたすべてのリストが操作(検索,削除,変更)できなくなります(操作するとエラーになります)。操作するとエラーになるリストを使用したい場合は,ASSIGN LIST文で以前と同じリスト名のリストを作成してください。
また,ディクショナリサーバを再起動した場合,停止以前に開始した他ユーザのリストを使用したトランザクションの回復が完了するまでの間,リストを使用した処理がKFPA11998-Eエラー(トランザクション未決着状態でのリスト操作)となることがあります。
(7) データベース回復ユティリティでのリストの基表の回復
ログを使用してリストの基表を最新の状態まで回復した場合,作成済みのリストをそのまま使用できます。ただし,バックアップだけを使用した回復,ログを使用した時間指定の回復,又は最新のログを使用しない回復のどれかの場合は,必ず次のどれかの方法で回復した表を基にしたリストをすべて削除,又は再作成してください。
- リストを使用する場合
-
ASSIGN LIST文で,以前と同じリスト名のリストを作成してください。
- リストを使用しない場合
-
DROP LIST文でリストを削除するか,又はHiRDBをいったん終了させ開始することで,作成済みのすべてのリストを削除してください。
(8) リストの基表を格納しているRDエリアの再初期化
必ず次のどれかの方法で,再初期化したRDエリアに格納されている表を基にしたリストを,すべて削除,又は再作成してください。
- リストを使用する場合
-
ASSIGN LIST文で,以前と同じリスト名のリストを作成してください。
- リストを使用しない場合
-
DROP LIST文でリストを削除するか,又はHiRDBをいったん終了させ開始することで,作成済みのすべてのリストを削除してください。
(9) リストの基表に対する再編成,作成モードのデータロード,又はPURGE TABLE文の実行
リストの基表に対して再編成,作成モードのデータロード,又はPURGE TABLE文を実行した場合,以前にその表を基に作成したリストの検索結果が不正になります。このリストを使用するためには,ASSIGN LIST文でリストを再作成する必要があります。
(10) インナレプリカ機能を使用した場合の絞込み検索
インナレプリカ機能を使用して,pddbchgコマンド,UAP環境定義PDDBACCS,又はクライアント環境定義のPDDBACCSでアクセス対象RDエリアを切り替えた場合,次のどちらかの条件を満たしていないと検索結果が不正になります。
-
リスト検索時のアクセス対象RDエリアとリスト作成時のアクセス対象RDエリアが一致している
-
リスト検索時のアクセス対象RDエリアがリスト作成時のアクセス対象RDエリアからデータ複製されている
リストを使用する場合は,次のどれかの対処をしてください。
-
リスト作成時のアクセス対象RDエリアを使用する
-
リスト作成時のアクセス対象RDエリアからデータ複製されたアクセス対象RDエリアを使用する
-
現在のアクセス対象RDエリアでリストを再作成する