フォーマット *TYPE2 のディレクトリ (V5R1/V5R2)

ファイルには V4R4 以降、*TYPE1 と *TYPE2 という 2つのフォーマットがあり、その名から想像されるとおりに *TYPE2 の方が主にパフォーマンスの点で拡張されているようなのですが、
V5R2 以降、ディレクトリに *TYPE1 と *TYPE2 という 2つのフォーマットが /、QOpenSys、UDFS についてサポートされるようになり、こちらも同様にいろいろな点で拡張されているようです。

より詳しくは Information Center などを見てほしいのですが、*TYPE2 は *TYPE1 の拡張で異なった内的構造と実装がされており、以下のような利点があるそうです。

「ディスク領域」に関しては、350 オブジェクト per 1 リンクまでは必要ディスク容量は少ないがそれ以上は *TYPE1 に比べて 10% 多くなってしまう、と書いてあります。
まあ、上の 3つのメリットもあるし、350 オブジェクト以上抱えているリンクが大量にあるというわけでもないとすれば結果相殺されて OK と言えるのではないか、という気がします。

新規に OS/400 V5R2 を予め導入されて出荷されるマシンはすべて *TYPE2 のディレクトリになっているそうなのですが、それ以外の場合、つまり通常に V5R2 にリリースアップ等をされたような場合は特別自動的に変換がなされるわけではないので *TYPE1 のままになっています。
こうした *TYPE1 のディレクトリを *TYPE2 に変更するには CVTDIR コマンドを使用します。

また、この CVTDIR コマンドの同等機能は V5R1 でも SI08760/SI06153/SI07665/MF29160 というPTF を適用すると使用できるようになっており、V5R1 上で事前に *TYPE2 のディレクトリに変換を行っておくことができます。
PTF 適用の結果として V5R1 のみにサポートされる QP0FCVT2 という API が使用できるようになり、パラメータをセットして CALL することで同等のことを実行できるようになっています。
より詳しいやり方についてはこちらを見てください。


デイレクトリのタイプのチェック

CVTCMD を *CHECK というオプションで実行すると現在のディレクトリの状態が出てきます。

ちなみに、*TYPE2 に変更してしまった後の実行結果ですが、V5R1 で実行するとこんなかんじになります。

CVTDIR のパラメータは以下のようになっています。

変換時間の予想

CVTDIR コマンドを *ESTIMATE オプションでファイルシステムを指定して実行すると、現在のリンク数とその変換に要するであろう時間、追加でワークとして使用されそうなディスク容量が出てきます。

引数を表示させてみたところです。
ファイルシステムには *ALL なども指定できます。

変換の実行

*ROOT や *QOPENSYS に対しての変換 (*CONVERT) は制限状態でないと実行できません。
コンソールに画面を Capture する機能がなかったため画面はありませんが、ほとんど先に実行した *ESTIMATE の結果どおりにそれぞれのファイルシステム毎に数分で終わりました。

で、効果についてですが、ディレクトリのパフォーマンスってのは難しいですよね ... 正直言ってよくわかりませんが、V5R2 からのスタンダードがこちらになる以上、V5R1 で早めに変換を行って使ってしまっていてもいいのでは、という気がしてます。

[Top Pageに戻る]

Ads by TOK2