HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
CONVERT/FDL ルーチンと CREATE/FDL ルーチンは, FDL ファイル指定としてFDL 文字列を渡すことができるように拡張されています。 /FDL 修飾子の値が引用符で囲まれた文字列であり,引用符で囲まれた POSIX パス名でない場合は,FDL 文字列として FDL パーサに渡されます。文字列中の引用符で囲まれた値は,二重の引用符で囲む必要があります。 FDL 文字列の使用方法についての詳細は,『HP OpenVMS Utility Routines Manual』の「FDL」の項を参照してください。
次の例を参照してください。
$ CONVERT/FDL="TITLE ""This is an FDL string"";File;org SEQ;Record;size 80" - _$( input_file: output_file:) $ CREATE/FDL="record;format fixed;size 100" file.dat |
5.9.2 RMS グローバル・バッファの索引編成ファイルに対する機能強化
OpenVMS Version 8.3 よりも前のリリースでは, RMS グローバル・バッファは P0 (32 ビット・アドレス) 空間だけにマップされていました。そのため,あるプロセスがアクセスするすべてのファイルに対して指定されたグローバル・バッファの合計は,プロセスあたり 1 GB 未満に制限されていました。このプロセスあたりの上限があることで,RMS ユーザがファイルごとに指定できるグローバル・バッファの数が十分ではありませんでした。また,グローバル・キャッシュに割り当てるファイルあたりの最大サイズも制限されていました (現在は 32767 バッファ)。
RMS グローバル・バッファの全体的な拡張性と性能を向上させるため,このリリースでは,索引編成ファイル用にグローバル・バッファが以下のように拡張されています。
RMS グローバル・バッファはノードごとにローカルであるため,これらの機能拡張は,OpenVMS VAX または以前のバージョンのノードに対する変更を行わなくても,複合クラスタ環境の OpenVMS Alpha および OpenVMS I64 Version 8.3 のノード上で実施できるように設計されています。 Version 8.3 の Alpha ノードおよび Integrity サーバ・ノードでは,索引編成ファイルに対するグローバル・キャッシュ・サイズを増やすことができますが,他のノードでは,Version 8.3 よりも前のグローバル・キャッシュ・サイズのままで動作させることができます。これにより,OpenVMS VAX を含む以前のバージョンの OpenVMS を使用しているクラスタに,索引編成ファイルでより大きなグローバル・バッファ・キャッシュを使用できる Version 8.3 (またはそれ以降) の Alpha ノードまたは Integrity サーバ・ノードを段階的に追加することができるため,この機能は特に魅力的です。
5.9.3 新しい形式のグローバル・バッファ仕様
SET FILE/GLOBAL_BUFFER コマンドで,以下の 2 つの形式の指定が可能になりました。
値 n は,ファイルのヘッダ内の異なる位置に格納される新しい値を設定します。
たとえば,以下の 4 つのコマンドの動作はすべて異なります。
古い構文 (SET FILE/GLOBAL_BUFFER=n) で指定されたグローバル・バッファでは,ファイル・ヘッダのある場所に設定が格納されます。新しい構文 (SET FILE/GLOBAL_BUFFER=keyword[=n]) では,ファイル・ヘッダの別の場所に格納され,新しいバリエーションのグローバル・バッファが使用されるため,より多くのバッファが使用可能になるとともに,ファイルの拡大に伴って自動的にサイズを調整することができます。
コマンド行では, 1 つのバージョンのグローバル・バッファ修飾子だけを指定できる点に注意してください。以下に古いグローバル・バッファ指定と新しいグローバル・バッファ指定の両方を使用する例を示します。古い互換性のあるグローバル・バッファ・カウント値 (Version 8.3 よりも前の OpenVMS) には 100 を設定し,新しい値 (Version 8.3 以降) には 10000 を設定します。
$ SET FILE/GLOBAL_BUFFER=100 NEWFILE.DAT $ SET FILE/GLOBAL_BUFFER=COUNT=10000 NEWFILE.DAT |
OpenVMS のバージョンが混在するクラスタ環境では,異なるノード上で同じファイルを開くことができ,それぞれのノードで異なるグローバル・バッファ・カウントが使用されます。 Version 8.3 よりも前のノードでは,古い互換性のある設定が使用され, Version 8.3 以降のノードでは,新しい値が使用されます。
5.9.4 XABFHC に新しいフィールドを追加
読み取り専用の XABFHC (ファイル・ヘッダ特性) に,以下の 2 つのフィールドが追加されました。
| フィールド・オフセット | バイト数 | 説明 |
|---|---|---|
| XAB$B_RECATTR_FLAGS | 1 | レコード属性領域のためのフラグ |
| XAB$L_GBC32 | 4 | 拡張されたロングワードのグローバル・バッファ・カウント |
これらのフィールドのフィールド記述子は以下のとおりです。
以下のフィールド値が追加されました。
| フィールド値 | 意味 |
|---|---|
| FAT$L_GBC32 | 拡張されたロングワードのグローバル・バッファ・カウント |
| FAT$RECATTR_FLAGS | レコード属性フラグ。以下のビット値が定義されています。
FAT$M_GBC_PERCENT---FAT$L_GBC32 の値をカウントではなく割合として解釈します。 |
『OpenVMS I/O User's Reference Manual』から抜粋した 図 5-1 は,新しいフィールドを反映するように更新されています。
図 5-1 ACP-QIO レコード属性領域
本リリースでは,ファイルごとの管理オプションが 2 つ追加されており,すべての RMS ファイル編成 (順編成,相対編成,索引編成) のグローバル・バッファ・キャッシュのサイズをより簡単に決定することができます。これらの新しいオプションは,既存のグローバル・バッファ・カウント・オプションを強化するものです。
RMS グローバル・バッファ・カウント (GBC) の省略時の指定は,グローバル・バッファ (GB) に関係する 2 つの新しい SYSGEN パラメータ GB_CACHEALLMAX および GB_DEFPERCENT を使用するアルゴリズムに基づいて計算する方法です。省略時のオプションが有効な場合で,ファイルのサイズ (ブロック単位) が GB_CACHEALLMAX パラメータで指定されたサイズ以下の場合は, RMS はファイル全体をキャッシュできるだけのグローバル・バッファを割り当てます。
サイズ (ブロック単位) が GB_CACHEALL MAX パラメータで指定されたサイズよりも大きな場合には,RMS はファイルのうち GB_DEFPERCENT パラメータ (グローバル・バッファの省略時の割合) で指定された割合のブロックをキャッシュできるだけのグローバル・バッファを割り当てます。 100 パーセントよりも大きな割合を指定して,ファイルが大きくなった場合に備えてキャッシュ領域を増やすこともできます。
5.9.7 ファイルに接続されたグローバル・バッファ・キャッシュのサイズ (XAB$_GBC)
SENSEMODE 操作で $CONNECT または $DISPLAY に対する項目リスト XAB とともに項目コード XAB$_GBC を使用すると,ファイルに接続されたグローバル・バッファの実際の数を参照することができます。ファイルのグローバル・セクションは,各ノード上での最初のアクセスによって作成されファイルと接続されます。
項目コード XAB$_GBC は,接続されているキャッシュのサイズを返すために 4 バイトのバッファを必要とします。 SETMODE をこの項目とともに使用することはできません。
このオプションは,DECnet の操作ではサポートされず,無視されます。
5.9.8 グローバル・バッファ数 (XAB$_GBC32)
項目コード XAB$_GBC32 は,SETMODE 操作で $CREATE に対して項目リスト XAB とともに使用できます。この項目コードは,ファイルを作成する際に,ロングワードのグローバル・バッファ数を永久属性としてファイル・ヘッダのレコード属性領域に設定します。また,SETMODE で $CONNECT に対して項目リスト XAB とともに使用して,実行時にファイル・ヘッダ内の永久属性より優先させることもできます。この優先指定は,そのプロセスが各ノード上でキャッシュに接続する最初のプロセスである場合にだけ適用されます。
項目コード XAB$_GBC32 を使用しても,ファイルに接続されているグローバル・バッファ数を参照することはできません。実際のグローバル・バッファ数を参照するには,項目コード XAB$_GBC を使用します。
項目コード XAB$_GBC32 は,キャッシュ・サイズを格納するために 4 バイトのバッファを必要とします。キャッシュ・サイズは,実際の個数として要求することも,実行時のファイルの合計ブロック数のパーセンテージとして要求することもできます。キャッシュ・サイズをパーセンテージで返すように指定するためには,項目リスト XAB に項目コード XAB$_GBCFLAGS も含める必要があります。これが含まれていないと,項目コード XAB$_GBC32 で返されるキャッシュ・サイズの値は,個数となります。
索引編成ファイルの個数として,最大値 %x7FFFFFFF を指定できます。順編成ファイルと相対編成ファイルは,最大 32767 個に制限されます。いったんオープンされるとめったにクローズされないファイルでは,ファイルが素早く拡大されるように, 100 パーセントよりも大きなパーセンテージを指定することができます。
このオプションは,DECnet の操作ではサポートされず,無視されます。
5.9.9 グローバル・バッファ・フラグ (XAB$_GBCFLAGS)
項目コード XAB$_GBCFLAGS は,SETMODE 操作で $CREATE に対する項目リスト XAB とともに使用することができます。この項目コードは,ファイルを作成する際に,グローバル・バッファ・フラグの値を永久属性としてファイル・ヘッダのレコード属性領域に設定します。また,SETMODE で $CONNECT に対して項目リスト XAB とともに使用して,実行時にファイル・ヘッダ内の永久属性より優先させることもできます。この優先指定は,そのプロセスが各ノード上でキャッシュに接続する最初のプロセスである場合にだけ適用されます。
グローバル・バッファ・フラグの値を参照するには, SENSEMODE 操作で $CONNECT または $DISPLAY に対する項目リスト XAB とともに項目コード XAB$_GBCFLAGS を使用します。最初に接続したプロセスがファイルのグローバル・セクションを作成するときにグローバル・バッファ数を計算するために使用したグローバル・バッファ・フラグが返されます。
以下の 2 つのフラグが使用可能です。
項目コード XAB$_GBCFLAGS では,XAB$_GBC_PERCENT または XAB$_GBC_DEFAULT のフラグ値を格納するために, 4 バイトのバッファが必要です。
このオプションは DECnet の操作ではサポートされず,無視されます。
| 前へ | 次へ | 目次 | 索引 |