Compaq OpenVMS Alpha
V7.3-1 リリース・ノート【翻訳版】


前へ 次へ 目次 索引


4.33.3 Alpha システムでのみ使用できる INITIALIZE/SHADOW

V7.3-1

OpenVMS Version 7.3 から INITIALIZE コマンドに /SHADOW 修飾子が導入されました。この修飾子は OpenVMS Alpha システムでのみ利用できます。現在,INITIALIZE/SHADOW 修飾子に関するドキュメントには,この修飾子が OpenVMS Alpha システムにのみ適用される点が記載されていません。この点については,今後のリリースで修正される予定です。

4.33.4 /MINICOPY を使用したシャドウ・セット・メンバのディスマウント

V7.3

OpenVMS Cluster 構成では,クライアント・システムでシャドウ・セットのメンバのディスマウントに,/MINICOPY 修飾子を使用して DISMOUNT コマンドを実行すると,DISMOUNT コマンドが失敗することがあります。

回避方法

最初の DISMOUNT コマンドが失敗した場合,次の例のようにコマンドを繰り返します。


$ SHOW DEVICE DSA5555 
Device                  Device           Error    Volume         Free  Trans Mnt 
 Name                   Status           Count     Label        Blocks Count Cnt 
DSA5555:                Mounted              0  $80$DKA107:    7994646     1  18 
$80$DKA107:   (WILD3) ShadowSetMember      0 (member of DSA5555:)
$80$DKA302:   (WILD3) ShadowSetMember      0 (member of DSA5555:)
$80$DKA303:   (WILD3) ShadowSetMember      0 (member of DSA5555:)
$ 
$ 
$ DISMOUNT/POLICY=MINICOPY $80$DKA302: 
%DISM-W-CANNOTDMT, $80$DKA302: cannot be dismounted 
%DISM-F-SRCMEM, only source member of shadow set cannot be dismounted 
$ 
$ 
$ DISMOUNT/POLICY=MINICOPY $80$DKA302: 
$ 

この問題は,今後のリリースで修正される予定です。

4.33.5 SHADOW_MAX_UNIT の設定

V7.3

OpenVMS Alpha Version 7.3 では,Volume Shadowing for OpenVMS でのミニコピーのサポートが導入されました。

ミニコピー機能の一部として,新しいボリューム・シャドウイングのシステム・パラメータ SHADOW_MAX_UNIT が提供され,ノードで可能なシャドウ・セットの最大数が指定できます。OpenVMS Alpha システムでのデフォルト値は 500 です。OpenVMS VAX システムでのデフォルト値は 100 です。このシステム・パラメータは動的ではありません。変更を有効にするには,リブートが必要です。

警告

現在の構成の SHADOW_MAX_UNIT のデフォルト設定を注意して確認してください。ディスマウントされたシャドウ・セット,未使用のシャドウ・セット,Write Bitmap が割り当てられていないシャドウ・セットが,この合計には含まれています。デフォルト設定は,システムで予定しているシャドウ・セットの数 以上でなければなりません。SHADOW_MAX_UNIT で指定された最大数を超えて作成しようとする MOUNT コマンドは,失敗します。

このパラメータは,シャドウ・セットの命名に影響を与えることはありません。たとえば,デフォルト値が 100 の場合でも,DSA999 のようなデバイス名が有効です。


第 5 章
プログラミングに関するリリース・ノート

この章は,OpenVMS システムでのアプリケーション・プログラミングとシステム・プログラミングの両方に関するリリース・ノートです。

5.1 Common Data Security Architecture(CDSA)に関する考慮

V7.3-1

インストールと初期化

CDSA は,オペレーティングシステムのインストール時に自動的にインストールされます。ただし,次の点に注意してください。

5.2 Backup API---ジャーナリング・コールバック・イベントの制限事項

V7.1

アプリケーションがジャーナリング・イベントのいずれかに対してコールバック・ルーチンを登録する場合は,すべてのジャーナリング・コールバック・イベントに対してコールバック・ルーチンを登録しなければなりません。ジャーナリング・コールバック・イベントは次のとおりです。

BCK_EVENT_K_JOURNAL_OPEN
BCK_EVENT_K_JOURNAL_WRITE
BCK_EVENT_K_JOURNAL_CLOSE

これは永久的な制限事項です。

コールバック・ルーチンの登録の詳細については,『OpenVMS Utility Routines Manual』の Backup API に関する章を参照してください。

5.3 タイマ・キューのエントリ(TQE)

V7.3-1

OpenVMS Alpha Version 7.3-1 では,タイマ・キューのエントリの管理方法が変更され,多くの TQE を使用するシステムの性能が大きく向上しました。この変更は,非特権アプリケーションにとっては無関係です。

また,特権コードで TQE を直接操作することはできません。特に TQE キュー・ヘッダ(TQE$L_TQFL/TQE$L_TQBL)内のポインタに直接アクセスすると,通常はアクセス違反になります。ただし,特権コードで内部ルーチン exe_std$instimq/exe$instimq と exe_std$rmvtimq/exe$rmvtimq を使用して,タイマ・キューのエントリを入力または削除することは可能です。

5.4 バッチ・キューとプリント・キューはバッチ・ジョブの実行を停止可能

V7.3-1

以前は,次の場合に DELETE/ENTRY コマンドで実行中のバッチ・ジョブを停止できないことがありました。

DELETE/ENTRY コマンドを実行すると,ジョブは各フェーズごとに終了します。delete_process AST ルーチンはユーザ・モード,スーパーバイザ・モード,エグゼクティブ・モードで実行されます。各モードの切り替えに少し時間がかかるため,バッチ・ジョブでユーザ・モード・イメージが終了した後,スーパーバイザ・モードの delete_process AST ルーチンが実行されるまでに,コマンド・プロシージャの実行が続行されることがあります。

SYNCHRONIZE コマンドの戻りステータスには,ターゲット・バッチ・ジョブの終了ステータスが含まれているものと解釈されます。さらに,コマンド・プロシージャは通常,SYNCHRONIZE コマンドを実行する前に,$ON ERROR THEN CONTINUE や $SET NOON などのコマンドを実行します。SYNCHRONIZE コマンドを実行しているジョブに対して,DELETE/ENTRY コマンドが実行された場合,JBC$_JOBABORT は,SYNCHRONIZE コマンドの戻りステータスではなく,ターゲット・バッチ・ジョブの終了ステータスであると解釈されます。この結果,コマンド・プロシージャはこの誤った仮定のもとに,実行を短時間続行し,ターゲット・バッチ・ジョブをキューに再登録する,ターゲット・バッチ・ジョブの障害を誤って報告するなどの操作を行います。

現在は,SYNCHRONIZE コマンドによって,この状況を検出し,ユーザ・モードの実行が終了してからスーパーバイザ・モードの実行が終了するまでの時間より長い時間,終了ハンドラを待機させるようにしています。

プログラムの戻りステータスとして,$SNDJBC システム・サービスの SJC$_ SYNCHRONIZE_JOB ファンクション・コードによって取得されたジョブ終了ステータスを報告する他のイメージは,次のようなロジックを実装しなければなりません。

  1. 終了ハンドラを宣言します。

  2. 終了ハンドラで次のロジックを実装します。


    IF(exit status is JBC$_JOBABORT)
    THEN 
        Wait 10 seconds 
    ENDIF 
    

5.5 Compaq C 実行時ライブラリ

V7.3-1

ここでは,Compaq C 実行時ライブラリ(RTL)に関するリリース・ノートをまとめます。

5.5.1 strftime 関数---修正済み

V7.3-1

以前は, strftime関数に「V」変換指定子を指定した場合に,12 月末日または 1 月 1 日を含む週の値が正しく返されませんでした。

この問題は修正されました。

5.5.2 スレッド化されたアプリケーションの停止---修正済み

V7.3-1

以前は,スレッド化された C アプリケーションでファイル入出力を伴う操作を実行すると,このアプリケーションが停止することがありました。標準の入出力チャネルが初期化されていない状態でファイルの入出力が開始されると,デッドロックが発生しました。ファイル入出力操作を同期させる 2 つのミューテックスが C 実行時ライブラリの 2 つの部分で異なる順序でロックされました。

この問題は修正されました。

5.5.3 カーネル・モードでの ecvt 関数---性能の向上

V7.3-1

以前は, ecvt関数(文字に変換)がカーネル・モードで過度に実行されていました。この関数はスレッド固有データを使用します。AST の割り込みによりスレッド固有データが破壊されるのを防ぐために LIB$AST_IN_PROG 関数が呼び出され,オーバヘッドが高くなっていました。

ecvt関数は AST セーフを目的としていませんが,OpenVMS Version 7.1-1 の C RTL では,スレッド固有のデータの処理方法が改訂され,AST セーフ・テスト機能(LIB$AST_IN_PROG)が導入されました。その結果,オーバヘッドも発生しています。

現在では,AST セーフではなく,スレッド・セーフがデフォルトで適用され,性能が向上しています。

AST セーフ・モードに戻すには,DECC$THREAD_DATA_AST_SAFE 機能を有効にします。


$ DEFINE DECC$THREAD_DATA_AST_SAFE ENABLE 

5.5.4 times 関数---性能の向上

V7.3-1

以前は,性能データを取得するために Compaq C アプリケーションに times関数呼び出しを追加すると,著しく処理性能が低下しました。これは, times関数で非同期の $GETJPI 呼び出しが使用され,膨大なオーバヘッドが追加されたためです。

同期型の $GETJPI を使用するように OpenVMS を変更した結果,このオーバヘッドが大きく低減しました。

5.5.5 alarm 関数---修正済み

V7.3-1

以前は, alarm関数で,期限切れのタイマが正しく認識されず,残り時間の値が誤って返されることがありました。

alarm関数でサポートされるタイマは 1 つなので, alarmに別の要求が実行されると, alarmで保留中の要求が取り消され,新しいアラームがスケジュールされて,そのタイマの残り時間が返されていました。

alarm関数のこの問題は,次のように修正されました。

5.5.6 ファイル・サイズ(2 GB 以上)---制限の解除

V7.3-1

C RTL の以前のリリースでは,すべてのファイル位置が 32 ビット算術を使用して計算されていました。そのため,ファイル操作でファイル・サイズを2 GB 未満にする必要がありました。

現在では,この制限が解除され,C RTL I/O を使用するファイル操作を 2 TB(テラバイト)までのファイルで実行できるようになりました。

デフォルトでは,すべてのアプリケーションで 32 ビットにより表現されるオフセットだけが使用されます。現在, fgetpos関数では,ファイル位置が 2GB を超えても正しいファイル・オフセットが返されます。

ファイル・サイズとファイル位置を 64 ビットで表すアプリケーションを開発することも可能です。詳細は,『OpenVMS Alpha V 7.3-1 新機能説明書』マニュアルを参照してください。

5.5.7 stat メモリ破損---修正済み

V7.3-1

statを使用して存在しないディレクトリにアクセスすると,メモリが破損することがありました。

この問題は修正されました。

5.5.8 decc$to_vms での大文字と小文字による照合---修正済み

V7.3-1

以前は, decc$to_vmsで正規表現を使用した場合に小文字の名前を照合できませんでした。

この問題は修正されました。

5.5.9 ロケールを有効にした場合の printf エラー---修正済み

V7.3-1

以前は,ロケールを有効にすると,負の数字に 1000 単位の区切り文字が誤って追加されて印刷されました。 set_locale呼び出しの後に printf("%d", -999)関数呼び出しを実行すると," -999" の代わりに " -,999" が誤って出力されました。

この問題は修正されました。

5.6 case=sensitive を設定した C プログラムのコンパイル

V7.3-1

case=sensitiveを設定して C プログラムをコンパイルすると,C プログラム内に .h ファイル・タイプ(小文字の「h」)の #include ファイルは,検出および実行されません。また,システムの #include ファイルが他の .h ファイル・タイプの #include ファイルを使用している場合,この #include ファイルは検出されず,エラーが出力されます。

この動作を防ぐには,大文字と小文字を区別しないように設定します。 case=sensitiveを設定する必要がある場合は,C プログラム内の #include ファイルにファイル・タイプを指定しないか(例 #include <stdio>),または大文字の H ファイル・タイプを指定してください(例 #include <stdio.H>)。

ただし,stdlib.h などのシステム #include ファイルが .h ファイル・タイプの #include ファイルを使用している場合は,エラーとなるので注意してください。

5.7 OpenVMS Alpha 用の Compaq COBOL 実行時ライブラリ(RTL)

V7.3-1

Compaq COBOL RTL(DEC$COBRTL)は V2.7-641 に更新されました。

5.7.1 COBOL RTL と RMS RU ジャーナリング---修正済み

V7.3-1

可変長レコードを含むファイルに対して RMS RU ジャーナリングを適切に処理できるようになりました。

5.7.2 COBOL RTL と ISAM DELETE---修正済み

V7.3-1

ISAM ファイルの最終レコードの削除を適切に処理できるようになりました。以前は,RTL 内部の整合性チェックが失敗していました。

5.7.3 COBOL RTL とレコード・ロック---制限事項

V7.3-1

COBOL プログラムの START 文または WRITE 文で自動レコード・ロックで複数のレコード・ロックが発生することがあります。この場合,UNLOCK ALL RECORDS を実行するか,CLOSE の後に OPEN して,レコード・ロックをクリアしてください。


前へ 次へ 目次 索引