タイムスタンプの重要性について

Operation Knowhow
タイムスタンプの重要性について
要
初 版
第11版
2007/01/01
2013/03/11
1
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
タイムスタンプとは?
タイプスタンプとは、ファイルやプログラムを作成した場合の
タイプスタンプとは
ファイルやプログラムを作成した場合の
作成日付、変更を行った場合の変更日付、使用した場合の
最終使用 な
最終使用日などがシステムにより自動的に記録されます。
シ テ
より自動的 記録されます。
タイプスタンプは、システムにより自動更新されるためユー
ザ が強制的 変更する とは きま ん
ザーが強制的に変更することはできません。
また、更新される日付は、オブジェクトへの処理内容により
異なります。
異なります
タイムスタンプは、オブジェクト記述に記録されており、不要
オブジ クトの整理 プログラムリリ ス管理 トラブル対応
オブジェクトの整理、プログラムリリース管理、トラブル対応
などにおいて重要な情報となります。
2
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
このような経験はありませんか?
„ 本番環境を別環境に丸ごと
本番環境を別環境に丸ごとコピーしたら本番環境の全オブジェクトの最終使
ピ したら本番環境の全オブジ クトの最終使
用日が変更されてしまった。
→本当に使用していないオブジェクトの検出ができなくなってしまう。
„ 保管テープからデータを復元を行ったが、ファイルレベル識別エラーの
メッセージが出てディスク上のファイルがリネームされてしまった。
→本当に復元されたのか不安になってしまう。
→ゴミが残ってしまう。
ゴミが残ってしまう。
„ マシンリプレースのために、ライブラリーのリストアーを行ったら全オブジェクト
の変更日が変わってしまった。
→プログラムリリ ス管理で変更日を使用しているのでオブジェクトが
→プログラムリリース管理で変更日を使用しているのでオブジェクトが
変更されたと認識されてしまう。
3
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
作成日の更新
Bの作成日は変わらない。(作成日は元のまま)
A
SAVLIB/
SAVOBJ
RSTLIB/
RSTOBJ
A
B
Bの作成日は変わる。(AとBの作成日は異なる)
A
CPYLIB
B
CRTDUPOBJ
CPYF CRTFILE(*YES)
A
ファイル・レベル識別コードが異なるので
リストアはできない。
ALWOBJDIF(*ALL)にすればリストアー
ALWOBJDIF(
ALL)にすればリストア
できるがディスク上のファイルはリネーム
される。
RSTLIB
4
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
作成日についての注意事項
ƒ CPYLIB
CPYLIB,CRTDUPOBJ,CPYF
CRTDUPOBJ CPYF CRTFILE(*YES)を実行
するとコピー先の作成日は変更される。
ƒ 保管媒体上の作成日とディスク上の作成日が一
致しないとファイルレ ル識別 ラ になる。
致しないとファイルレベル識別エラーになる。
ƒ ALWOBJDIF(*ALL)で強制的に復元できるがディ
(
)
スク上のファイル名がリネームされてゴミが
残ってしまう。
5
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
ファイル・レベル識別コード
作成日付 時刻で作成
作成日付、時刻で作成
6
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
復元時の警告メッセージ
ファイル・レベル識別コード
が一致していない旨のメッ
セ ジ
セージ
古いファイルの名前
がリネームされる。
がリネ
ムされる。
7
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
作成日を変更しない方法
Aの作成日は変わる。
A
CPYLIB
C
RNMOBJ
B
RNMOBJ
Aの作成日は変わらない。
B
A
RNMOBJ
B
A
C
RNMOBJ
A
DLTLIB
A
RNMOBJ
A
A
B
リネームでは作成日、最終使用日は変更されない。
8
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
タイムスタンプの重要性
作成日、変更日、最終使用日はシステム変更、MES、資産管
作成日
変更日 最終使用日はシステム変更 MES 資産管
理、リリース管理などにおいて大事な情報となります。
そのタイムスタンプが勝手に更新されてしまうとその情報は役
に立たなくなってしまいます。
そのためには、セキュリティも含めた運用方法を確立しておく
必要があります。
必要があります
コマンド別に更新されるタイムスタンプの一覧表を作成しまし
たのでご参考にしてください。
9
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
コマンド別のタイムスタンプ更新(1/4)
( / )
コマンド
処理
作成ユーザー
作成日
変更日
最終使用日
保管日
復元日
プログラムによる検索
IN
不変
不変
不変
実行日付
不変
不変
プログラムによる更新
I/O
不変
不変
実行日付
実行日付
不変
不変
QUERY
IN
不変
不変
不変
実行日付
不変
不変
DFU
I/O
不変
不変
実行日付
実行日付
不変
不変
SAVLIB/SAVOBJ
IN
不変
不変
不変
不変
実行日付
不変
RSTLIB/RSTOBJ
(存在しない場合)
OUT
保管媒体上の
作成者
保管媒体上の
作成日
実行日付
ブランク
ブランク
実行日付
RSTLIB/RSTOBJ
(存在する場合)
OUT
不変
不変
実行日付
不変
不変
実行日付
CRTPF
OUT
実行ユーザー
実行日付
実行日付
ブランク
ブランク
ブランク
DSPFD
IN
不変
不変
不変
不変
不変
不変
DSPFFD
IN
不変
不変
不変
不変
不変
不変
DSPOBJD
IN
不変
不変
不変
不変
不変
不変
DSPPGMREF
IN
不変
不変
不変
不変
不変
不変
10
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
NEW
コマンド別のタイムスタンプ更新(2/4)
( / )
コマンド
DSPPGM
処理
作成ユーザー
作成日
変更日
最終使用日
保管日
復元日
IN
不変
不変
不変
不変
不変
不変
IN
不変(各OBJ)
不変(各OBJ)
不変(各OBJ)
実行日付
(各OBJ)
不変(各OBJ)
不変(各OBJ)
OUT
実行ユーザー
(各OBJ)
実行日付
(各OBJ)
実行日付
(各OBJ)
ブランク*4
(各OBJ)
ブランク
(各OBJ)
ブランク
(各OBJ)
不変
不変
不変
実行日付
不変
不変
実行ユーザー
実行日付
実行日付
実行日付 *1
ブランク
ブランク
不変
不変
不変
実行日付
不変
不変
実行ユーザー
実行日付
実行日付
実行日付
ブランク
ブランク
CPYLIB
IN
CRTDUPOBJ
OUT
CPYF
CRTFILE(*YES)
IN
CPYF
CRTFILE(*NO)
IN
不変
不変
不変
実行日付
不変
不変
OUT
不変
不変
実行日付
実行日付
不変
不変
DSPPFM
IN
不変
不変
不変
実行日付
不変
不変
ADDPFM
I/O
不変
不変
実行日付
不変
不変
不変
RMVM
I/O
不変
不変
実行日付
不変
不変
不変
CHGOBJD(TEXT変更)
I/O
不変
不変
実行日付
不変
不変
不変
RGZPFM
I/O
不変
不変
実行日付
実行日付
不変
不変
CHGPF
I/O
不変
不変
実行日付
不変
不変
不変
OUT
11
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
コマンド別のタイムスタンプ更新(3/4)
( / )
コマンド
処理
作成ユーザー
作成日
変更日
最終使用日
保管日
復元日
CLRPFM
I/O
不変
不変
実行日付
不変
不変
不変
MOVOBJ
OUT
不変
不変
実行日付
不変
ブランク
ブランク
CMPPFM
IN
不変
不変
不変
実行日付
不変
不変
不変(各OBJ)
LIBは実行
日付になる
不変(各OBJ)
不変(各OBJ)
不変(各OBJ)
RNMOBJ(LIBRARY単位)
不変(各OBJ)
I/O
不変(各OBJ)
RNMOBJ(OBJECT単位)
I/O
不変
不変
実行日付
不変
ブランク
ブランク
RNMM
I/O
不変
不変
実行日付
不変
不変
不変
GRTOBJAUT
I/O
不変
不変
不変*3
不変
3
不変 *2
2
不変
不変
RVKOBJAUT
I/O
不変
不変
不変*3
不変
不変
不変
DSPOBJAUT
I/O
不変
不変
不変
不変
不変
不変
FTP(GET)
IN
不変
不変
不変
実行日付
不変
不変
FTP(PUT)
OUT
不変
不変
実行日付
実行日付
不変
不変
PCOMM(データ転送)
IN
不変
不変
不変
実行日付
不変
不変
12
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
NEW
コマンド別のタイムスタンプ更新(4/4)
( / )
コマンド
処理
作成ユーザー
作成日
変更日
最終使用日
保管日
復元日
DSPDTAARA
IN
不変
不変
不変
実行日付
不変
不変
CHGDTAARA
I/O
不変
不変
実行日付
実行日付
不変
不変
RTVDTAARA
IN
不変
不変
不変
実行日付
不変
不変
SAVRSTLIB/SAVRSTOBJ
(存在しない場合)
OUT
保管媒体上の作
成者
保管媒体上の
作成日
実行日付
ブランク
実行日付
実行日付
SAVRSTLIB/SAVRSTOBJ
(存在する場合)
OUT
不変
不変
実行日付
不変
実行日付
実行日付
RTVOBJD
IN
不変
不変
不変
不変
不変
不変
RTVCLSRC
IN
不変
不変
不変
実行日付
不変
不変
RSTUSRPRF(上書き)
OUT
不変
不変
実行日
不変
不変
実行日付
CHGOBJAUD
OUT
不変
不変
実行日
不変
不変
不変
CHGOBJOWN
OUT
不変
不変
実行日
不変
不変
不変
*1
*2
*3
*4
データを複写しない場合は、使用日はブランクになります。
REFOBJ(参照オブジェクト)を指定した場合は、参照されたオブジェクトの最終使用日は実行日付になります。
*PUBLICについて実行した場合は 変更日は実行日付になります
*PUBLICについて実行した場合は、変更日は実行日付になります。
*FILEの場合は、実行日付になります。
13
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
プログラム関係のタイムスタンプ
SOURCE
OBJECT
コンパイル
作成日
作成日
変更日
変更日
SRC変更日
SRC変更日
そのまま引き継ぐ
CPYSRCF *ADD
作成日
変更日
CRTDUPOBJ
そのまま引き継ぐ
作成日
作成日:コピーした日
変更日:コピーした日
SRC変更日:コピーした日
変更日
SRC変更日
同じにはならない
作成日:コンパイルした日
変
変更日:コンパイルした日
パ
作成日:コピーした日
変更日:コピーした日
SRC変更日
SOURCE,OBJECTの変更日は以下の場合にも更新される。
・テキスト、タイプの変更、RSTOBJ、リネーム
テキスト タイプの変更 RSTOBJ リネ ム
14
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
ソースメンバーのタイムスタンプ
CPYSRCFを実行した場合
タイムスタンプ
*REPLACE
*ADD
ソース作成日
元のまま
Copyした日
ソース変更日(PDMのF14)
Copyした日
V6R1より元のまま
SRCCHGDATE(*NEW) を指定すればCopy日付に
なる
Copyした日
メンバー作成日
元のまま
Copyした日
メンバー変更日
Copyした日
Copyした日
注意:*REPLACEの場合は、テキスト、タイプはコピーされません。
ソース変更日とメンバー変更日が一致しない場合がありますが、これはメンバー変更日だけが更新されるケース
があるためです。
メンバー変更日だけが更新されるケース
①RSTOBJによるメンバーのリストアー
②メンバー名の変更
③テキストの変更
③
キ
変更
15
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
ソースメンバーのタイムスタンプ
ソースメンバーをリストアーした場合
RSTOBJ
ソース変更日:テープ上のソース変更日
メンバー変更日:リストアーした日
16
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
変更日の確認
・ソース変更日は、PDMのOPT=8で確認できます。DSPFD TYPE(*MBR)でも可能
・メンバー変更日は、DSPFD TYPE(*MBRLIST) or TYPE(*MBR)で確認できます。
PDM OPT=8
DSPFD TYPE(*MBR)
メンバーの変更日
ソースの変更日
ソースの変更日
PDMのF14で
表示
17
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
DSPOBJとDSPFDの変更日
・DSPOBJDとDSPFDの変更日が異なる場合があります。
・DSPOBJDの場合は、SAVLIBした後の最初のデータ変更のみで更新されます。
(S
(SAVLIBをしなければ更新されない。データベースの場合)
をしなければ更新されな
デ タベ
場合)
・DSPFDの場合は、データが変更されるたびに更新されます。
18
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
ライブラリーの変更日
SAVLIBした場合、ライブラリーのオブジェクト記述の変更日が変更される場合と
されない場合があります。
変更日は変わりません。
SAVLIB前
SAVLIB後
19
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
ライブラリーの変更日
セーブしたライブラリーの中に、オブジェクトタイプ*FILEが含まれていると
ライブラリーのオブジェクト記述の変更日は変更されます。
SAVLIB前
SAVLIB後
20
変更日は変わります。
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
タイムスタンプの取得方法
得 法
ƒ
タイプ タンプは、以下の方法で取得できます。
タイプスタンプは、以下の方法で取得できます。
• RTVOBJD
• QUSROBJD
OBJD0100 変更日
OBJD0400 変更日,使用日
OBJD0400は、OBJD0100より時間がかかります。
OBJD0400では、メンバーが多い場合は時間がかかります。
例:プログラムソ スの使用日を取得する場合
例:プログラムソースの使用日を取得する場合
21
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
CPYおよびCPYSRCFの最新更新日
V5R3M0およびV5R4M0では、ファイル・コピー(CPYF)
および
では、ファイル
(
) およびソ
およびソース・ファ
ファ
イル・コピー(CPYSRCF) コマンドは、ターゲット・ソース・メンバーの
最新ソース更新日時を、そのコマンドが実行された日時に設定していま
した。
V6R1 からは、MBROPT(*ADD) が使用されない限り、ターゲット・ソース
・メンバーの最新ソース更新日時は、コピーされるソース・メンバーの
値を保存す
値を保存することになります。ターゲット・ソース・メンバーの最新ソ
り す。
最新
ース更新日時を、コピー・コマンドが実行された日時にしたいならば、
SRCCHGDATE(*NEW) を指定してCPYSRCF コマンドを使用する必要がありま
す。
22
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
OUTQの最終変更日/時間の更新
V6.1からスプール・ファイルを出力待ち行列に追加したり出力待ち行列
から プ ル ファイルを出力待ち行列に追加したり出力待ち行列
から削除したりする際、出力待ち行列オブジェクトの最終変更日/時間は
更新されなくなりました。こうした操作の際、出力待ち行列オブジェク
トには物理的にアクセスしなくなったためです。最終使用日および使用
日数カウントは、こうした操作の際に引き続き更新されます。
23
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
DDMファイルのタイムスタンプ
DDMファイルの場合は、DDM自身の作成日、変更日、使用日が更新されます。
DDMファイルの場合は
DDM自身の作成日 変更日 使用日が更新されます
DDMファイル経由でリモートファイルをアクセスした場合は、リモートファ
イルのタイムスタンプも更新されます。
SBMRMTCMDでDDMファイルを使用した場合は、DDMファイルとリモ トファイ
SBMRMTCMDでDDMファイルを使用した場合は、DDMファイルとリモートファイ
ルの使用日は更新されません。
24
Copyright 2007 CYFLEX L.L.C.