日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトルページ
目次
まえがき
第 1 章:OpenVMS オペレーティング・システムの概要
第 2 章:DCL を使用したシステムとの会話
第 3 章:ファイル情報の格納
第 4 章:ディレクトリ・ファイルの編成
第 5 章:拡張ファイル指定
第 6 章:ディスクとテープ・ドライブの使用方法
第 7 章:Mail を使用して他のユーザと通信する
第 8 章:EVE エディタによるテキスト・ファイルの編集
第 9 章:ファイルのソートとマージ
第 10 章:資源へのアクセスの制御
第 11 章:デバイスとファイルの論理名定義
第 12 章:シンボル,コマンド,式の定義
第 13 章:コマンド・プロシージャの概要
第 14 章:DCL での拡張プログラミング
第 15 章:レキシカル関数を使用しての情報の取得と処理
第 16 章:プロセスとバッチ・ジョブ
付録 A :文字セット
付録 B :コマンド・プロシージャの例
用語集
索引
PDF
OpenVMS ホーム
OpenVMS

OpenVMS
ユーザーズ・マニュアル


目次 索引

第 11 章
デバイスとファイルの論理名定義

論理名とは,ファイル,ディレクトリ,デバイス,またはキューなどのシステム・オブジェクトを表す名前の代わりに使用できる名前をいいます。たとえば, 省略時のディスクやディレクトリに論理名を割り当てることが可能です。論理名は,読みやすさとファイルの独立性の 2 つの働きをします。

頻繁に使用するファイル,ディレクトリ,またはデバイスに,短く分かりやすい論理名を定義することができます。こうした論理名は,完全なファイル指定より覚えやすく,入力も簡単です。使用頻度の高い名前は,ログイン・コマンド・プロシージャの中で定義します。ユーザが頻繁に使用する名前は,システム管理者がシステム・スタートアップ・コマンド・プロシージャの中で定義します。

論理名を使用すれば,プログラムやコマンド・プロシージャを物理的なファイル指定に依存しない形にすることができます。 \たとえば,あるコマンド・プロシージャが論理名 ACCOUNTS を参照している場合, ACCOUNTS の定義を変えることによって,そのコマンド・プロシージャはどのディスク上のどのファイルへもアクセスすることができます。本章では,次のことについて説明します。

  • 論理名の特徴

  • システム定義論理名の使い方

  • 論理名の作成

  • 論理名の削除

  • 論理名の変換

  • 論理名の表示

  • 検索リストの作成と使用

  • 論理名テーブルの特徴

  • 省略時の論理名テーブル

  • 論理名テーブルの作成

  • 論理名変換の順序の変更

  • 論理名テーブルの削除

  • プロセス永久論理名の使用

本章で説明するコマンドについての詳細は,『OpenVMS DCL ディクショナリ』またはオンライン・ヘルプを参照してください。

11.1 論理名の特徴

論理名は次のような特徴を持っています。

  • 1 つの文字列 (等価文字列または等価名と呼ばれる) である場合と,等価文字列のリスト (検索リストと呼ばれる) である場合がある。論理名を使用すると,その論理名は解釈時に対応する等価文字列に置き換えられる。

  • 省略時の論理名テーブル,またはユーザが作成した論理名テーブルに格納される。

  • 長いファイル指定の入力の手間を軽減する目的で使用できる。

  • ユーザが定義することもできるし,システムによって定義することもできる。

  • プログラムやコマンド・プロシージャを,物理的なファイル指定から独立させることもできる。たとえば,コマンド・プロシージャに論理名 ACCOUNTS を指定しておくと,コマンド・プロシージャの実行前にACCOUNTS の定義を変更することにより,任意のディスク上の任意のファイルを実行することができる。

一般に,コマンドはシステム・オブジェクトを受け取ると,その名前が論理名かどうかをチェックします。論理名の場合には,論理名が実際の値に置き換えられてからコマンドが実行されます。

たとえば,DISK7:[WALSH.COMMAND_PROC] ディレクトリを指す論理名 COMS を定義しておけば,DCL コマンド行での入力が次のように簡単になります。

$ DEFINE COMS DISK7:[WALSH.COMMAND_PROC] 

次のように,論理名はDCL コマンドの中でも使用することができます。

$ SET DEFAULT COMS

$ TYPE COMS:PAYROLL.COM



11.2 システムが定義する論理名

システムを起動してログインすると,そのシステムで使用される論理名が作成されます。これらの論理名を使用すると,物理デバイス名を使用しないでも,頻繁に使用されるファイルやデバイスを参照することができます。これらの論理名一覧は 第 11.9.3 項 を参照ください。

ログインするたびに,ユーザ・プロセス用の論理名グループが作成され,それらの論理名がプロセス・テーブルに置かれます。これらの論理名一覧は 第 11.9.1 項 を参照ください。

たとえば,オペレーティング・システムのプログラムの一覧を表示するには,次のように,プログラムが実際に格納されているディスクやディレクトリの名前ではなく,論理名 SYS$SYSTEM を使用できます。

$ DIRECTORY SYS$SYSTEM

たとえば,論理名 SYS$LOGIN は,ログインしたときの省略時のデバイスとディレクトリを表しています。 SET DEFAULT コマンドを使用して現在の省略時の値を変更した場合には,次のコマンドを使用すれば,当初の省略時のディレクトリにあるファイルを表示できます。

$ TYPE SYS$LOGIN:DAILY_NOTES.DAT



11.3 論理名の作成

論理名は,ASSIGN コマンドまたはDEFINE コマンドで作成します。本章では,例のなかで DEFINEコマンドを使用することとします。

通常,論理名はログイン・コマンド・プロシージャ (LOGIN.COM) で定義するので,ログインするたびに論理名を使用することができます。論理名は会話形式でも作成できます。ただし,この場合には,現在のプロセスが終了した時点でそれらの論理名は使用できなくなります。

ユーザが自分のプロセス・テーブルに作成した論理名は,他のユーザのプロセスでは使用することができません。システム管理者,または特権をもったユーザは,システムにログインするあらゆるユーザが使用できる論理名を共用テーブル上に作成できます。グループ,またはシステム論理名テーブルは共用テーブルの例です。

共用テーブルの詳細については, 第 11.9.4 項 を参照してください。

11.3.1 DEFINE コマンドの使用方法

DEFINE コマンドで論理名を定義するときの形式は,次のとおりです。

DEFINE 論理名 等価名[,...] 

同じ形式を使用して,ノード名,ファイル指定,デバイス名,アプリケーション固有情報,他の論理名も作成できます。

省略時の設定では,DEFINE コマンドは,ユーザ・プロセスの論理名テーブルに論理名を登録します ( 第 11.8 節 を参照 ) 。これらの論理名は,そのプロセスとサブプロセスだけで使用できるものです。他の論理名テーブルに論理名を追加する場合は,/JOB,/GROUP,/SYSTEM,または /TABLE=テーブル名 のいずれかの修飾子を 1 つ付けて別のテーブルを指定します。この修飾子のうち,最初の 3 つは,それぞれ,省略時設定のジョブ,グループ,システムの論理名テーブルを指定します。/TABLE=テーブル名は,どのような種類のテーブルでも指定でき,また,クラスタ単位のテーブルを指定する際に使用できる唯一の修飾子です。

たとえば,次の例では,論理名 WORKFILE を等価文字列 DISK2:[WALSH.REPORTS]WORK_SUMMARY.DAT と対応づけるよう定義しています。

$ DEFINE WORKFILE DISK2:[WALSH.REPORTS]WORK_SUMMARY.DAT

WORKFILE を論理名として定義しておけば,等価文字列の代わりに論理名を使用できます。

たとえば,次のコマンドは,印刷キュー BLDGC_LPS20_ANSI に対応する論理名 MY_Q を作成します。

$ DEFINE MY_Q BLDGC_LPS20_ANSI

以後は,次のコマンドによってファイル FABLES.TXT を印刷キュー BLDGC_LPS20_ANSI にプリントできます。

$ PRINT/QUEUE=MY_Q FABLES.TXT

次の例は /TABLE=テーブル名修飾子の使用例であり,プロセス論理名テーブル以外のテーブルに論理名を作成します。 LNM$SYSCLUSTER を指定すると,論理名は省略時のクラスタ単位テーブルである LNM$SYSCLUSTER_TABLE に置かれるので,クラスタ内のすべてのユーザがこの論理名にアクセスできます。

$ DEFINE/TABLE=LNM$SYSCLUSTER CUSTOMERS DISK1:[CUSTOMER_VISITS]CUSTOMERS.TXT   



11.3.2 ファイル入出力用コマンド・プロシージャ内の論理名の作成

コマンド・プロシージャ内で論理名を使用してファイル入出力を行うことができます。OPENコマンドを使用してファイルをオープンする際には,そのファイルの論理名も作成することができます。これに続くREAD,WRITE,CLOSEコマンドでは,このファイルを参照するために実際のファイルを指定せずに論理名を使用することができます。

次の例では,OPEN コマンドは論理名 INFILEを作成し,CLOSE コマンドはこの論理名を削除しています。

$ OPEN INFILE DISK3:[WALSH]DATA.DAT 
$ READ INFILE RECORD 
$ CLOSE INFILE 



11.3.3 論理名の作成規則

DEFINE コマンドで論理名を作成するときには,次の規則に従います。

  • 等価名と論理名はともに,255 文字以内とする。論理名には,英数字,アンダスコア (_),ドル記号 ($),ハイフン (-) を使用できる。

  • 等価名を指定する場合には,ファイル指定で必要な句読点 (コロン,大括弧,ピリオド) を使用する。たとえば,デバイス名の終わりにはコロンを付け,ディレクトリ指定は大括弧で囲む。また,ファイル・タイプの前にはピリオドを付ける。

  • 論理名がファイル指定の一部分だけを表す場合には,論理名とファイル指定の残りの部分とをコロンで区切る。ただし,論理名が完全なファイル指定を表すときには,最後のコロンは必要ない。
    また,論理名は,ファイル指定の左端の構成要素になるようにすること。

  • 場合によっては,論理名の終わりにコロンを付ける。
    ASSIGN コマンドは,コロンを削除してから論理名を論理名テーブルに登録するが, DEFINE コマンドは,論理名の一部としてコロンをセーブすることに注意。

  • 論理名をある等価文字列に対応づけてから,同じ論理名を別の等価文字列に対応づける場合,両者を異なる論理名テーブルの中で定義するか,異なるアクセス・モードで定義しないかぎり, 1 番目の定義ではなく 2 番目の定義が有効になる。

次のコマンドは, DISK1:[SALES_STAFF]PAYROLL.DAT: ファイルを表示します。

$ DEFINE PAY DISK1:[SALES_STAFF]PAYROLL.DAT
$ TYPE PAY

$ DEFINE PAY_FILE DISK1:[SALES_STAFF]PAYROLL
$ TYPE PAY_FILE:*.DAT

$ DEFINE PAY_DIR DISK1:[SALES_STAFF]
$ TYPE PAY_DIR:PAYROLL.DAT

$ DEFINE PAY_DISK DISK1:
$ TYPE PAY_DISK:[SALES_STAFF]PAYROLL.DAT



11.3.4 変換属性

論理名を作成する場合には,システムが等価名をどのように解釈するかを決定する変換属性を指定できます。

2 つの変換属性を等価名に適用するには, DEFINE コマンドに /TRANSLATION_ATTRIBUTES 修飾子を使用します。これは,定位置修飾子で,この修飾子をコマンド行のどこに置くかによって,すべての等価名に変換属性が適用されたり,特定の等価名だけに変換属性が適用されたりします。

次の例では,デバイス名 DJA3: は論理名 DISK で隠されます。

$ DEFINE/TRANSLATION_ATTRIBUTES=CONCEALED DISK DJA3:
$ SHOW DEFAULT
  DISK:[SAM.PUP]
$ SHOW LOGICAL DISK
  "DISK" = "DJA3" (LNM$PROCESS_TABLE)

論理名DISKは物理装置DJA3を表わします。したがって, SHOW DEFAULTコマンドは,物理デバイスDJA3ではなく,論理名DISKを表示します。SHOW LOGICALコマンドは論理名DISKが実際に指しているものを明らかにします。

CONCEALED 属性を指定すると,システム・メッセージにデバイスの物理名ではなく,論理名が表示されるようになります。普通,CONCEALED 属性は物理デバイスを表す論理名と一緒に使用します。隠されたデバイスを使用すると,どの物理デバイスにディスクやテープが保持されているかを考えずに,プログラムやコマンド・プロシージャを作成したり,他の操作を実行したりできます。また,物理デバイス名より分かりやすい名前を使用できます。

TERMINAL 属性は,論理名の反復変換が行われないようにします。すなわち,等価名が論理名であるかどうかを調べなくなり,最初の変換で「終わり」になります。

11.3.5 アクセス・モード

OpenVMSは次のアクセス・モードを持っています。

  • ユーザ・モード(最も外側で,最も特権の少ないモード)

  • スパバイザ・モード

  • エグゼクティブ・モード

  • カーネル・モード(最も内側で最も特権を持つモード)

DCLコマンドDEFINEまたはASSIGNを使用して,最初の3つのモード (ユーザ,スーパバイザ,エグゼクティブ) で論理名を作成することができます。各論理名の定義に異なるアクセス・モードを指定して,同じ論理名を同じ論理名テーブルの異なる等価文字列に等しいと定義することができます。論理名テーブルにエグゼクティブ・モードで論理名を作成するには, SYSNAMまたはSYSPRV特権を持つ必要があるので注意してください。

ユーザ・モード

ユーザ・モードで作成される論理名は一時的なものです。次のコマンドやイメージの実行のためにだけ論理名を使用したい場合には,ユーザ・モードで論理名を定義します。

次の例では,PAYABLE プログラムの実行後,論理名 ADDRESSES が自動的に削除されます。

$ DEFINE/USER_MODE ADDRESSES DISK1:[SAM.ACCOUNTS]OVERDUE.LIS 
$ RUN PAYABLE

スーパバイザ・モード

モードを指定せずに DEFINE コマンドを使用すると,スーパバイザ・モードで論理名が作成されます。

次の例では,コマンドは論理名 ACCOUNTS をプロセス論理名テーブルの中の 2 つの異なる等価名に, 1 つはスーパバイザ・モードで,もう 1 つはエグゼクティブ・モードで定義しています。

$ DEFINE ACCOUNTS DISK1:[ACCOUNTS]CURRENT.DAT
$ DEFINE/EXECUTIVE_MODE ACCOUNTS DISK1:[JANE.ACCOUNTS]OBSOLETE.DAT

エグゼクティブ・モード

すべての特権イメージおよび LOGINOUT のようなユーティリティは,論理名を検索する際に,ユーザ・モードとスーパバイザ・モードの名前とテーブルを参照しません。論理名を,ユーティリティを含む特権イメージで使用する場合には,これはエグゼクティブ・モード・テーブルまたはカーネル・モード・テーブルに,エグゼクティブ・モードまたはカーネル・モードで定義する必要があります。エグゼクティブ・モードで定義される論理名の候補としては他に,プリント・キューやシステム・ディスクなどの,作業グループとシステム資源が使用する公用ディレクトリの名前があります。

カーネル・モード

カーネル・モードで論理名を作成できるのは,オペレーティング・システムと特権プログラムだけです。

11.3.6 論理ノード名の作成

ネットワーク・ノード名の代わりに,またはノード名とアクセス制御文字列の代わりに論理ノード名を使用することができます。論理ノード名を定義しておくと,これを使用して画面上でユーザ名とパスワードを入力 (して表示) する手間を省くことができます。

論理ノード名を定義する場合には,次の規則にしたがってください。

  • 論理名の始まりはアンダスコア (_) にしない。

  • 等価文字列の終わりはダブル・コロン (::) にし,二重引用符 (" ") で囲む。

  • アクセス制御文字列で二重引用符を表示する場合は,二重引用符を2組 ("" "") 使用する。
    (アクセス制御文字列については,本書の 第 3.1.6 項第 3.1.12 項第 10.5 節 を参照してください)。

  • 1〜255の文字を含む論理名を指定する。

  注意
ファイルにパスワードを含んだ DEFINE コマンドをファイルに記述しないでください (ログイン・コマンド・プロシージャなど)。他の人がファイルを読み込むと,パスワードが知られてしまいます。

次のコマンドは,論理名BOSをノード名BOSTONとアクセス制御文字列に等しいと定義しています。ここでADAMSはユーザ名で,OLMEKIKAはパスワードです。

$ DEFINE BOS "BOSTON""ADAMS OLMEKIKA""::"



ファイル指定には,論理ノード名(ローカル・ノードでシステムが変換する) と論理装置名(リモート・ノードでシステムが変換する) をともに含むことができます。論理名を使用してノード名だけを表す場合,ファイル指定のノード位置に論理名を使用するときにダブル・コロン (::) を記述する必要があります。

システムは,ローカル・ノードで論理ノード名を変換した後に,ファイル指定の残りの部分を解析してその形式が有効であるかどうか判断します。

次の例では,システムがローカル・ノードで論理ノード名 NYCを変換します。システムは,リモート・ノード(NEWYRK)で論理装置名 (DOC:) を変換します。

$ DEFINE NYC NEWYRK::
$ TYPE NYC::DOC:[PERKINS]TERM_PAPER.DAT


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.