上書き復元の際に、リネームされないようにしたい
Question
既存のオブジェクトがシステムに存在している状態で、テープから上書き復元をしようとしたところ、既存のオブジェクトが自動的にリネームされ、テープからオブジェクトが復元されました。
どうしてこのような動きになるのでしょうか。また、上書き復元する方法はありますでしょうか。
Answer
リネームされたオブジェクトはファイルであるかと思います。通常は、ファイルレベルIDが異なると復元はされませんが、パラメータMBROPT(*ALL)」 および「ALWOBJDIF(*ALL)」が指定されていると、差異があっても復元することができます。その場合、復元時に既存オブジェクトを自動でリネームし、復元オブジェクトがそのまま復元される形になります。
この状態が発生したと考えられます。
ファイルレベルIDが異なっていても復元させたい場合は、 RSTOBJのパラメータに、「ALWOBJDIF(*COMPATIBLE)」を指定することで可能になります。
条件があり、復元元と復元先の「様式レベルID」が同じである必要がございます。 この情報は、DSPFDの「レコード様式リスト」にて確認することができます。
以下例:
ファイルレベルIDは、ファイル毎に違うIDが割り振られますが、様式レベルIDについては、同じDDSで作成していると同じ値になるようです。
※ソースファイルおよびDDSなしで作成したファイルは、様式レベルIDが異なってしまいます。
したがって、様式レベルIDが同じであれば、「ALWOBJDIF(*COMPATIBLE)」を指定することで、上書き復元が可能になります。
様式レベルIDが異なっている場合は、復元されませんので、ログを確認し、別名あるいは別ライブラリーに復元し、CPYFなどの対応をしてください
by かんぴょう木綿さん