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

前へ | 次へ | 目次 | 索引

# 12.7 ボリュームのディスマウント

ディスクやテープ・ボリュームでのファイル操作が終了したら， DISMOUNT コマンドを使用して，ボリュームをディスマウントできます。 DISMOUNT コマンドは，ボリュームをディスマウントする前に，ディスマウント操作を妨げる条件がないかどうかをチェックします。たとえば，ボリュームにインストール済みのスワップ・ファイルやページ・ファイル，インストール済みのイメージ，オープンされたユーザ・ファイルが含まれる場合には，ボリュームをディスマウントできないことを知らせるエラー・メッセージを出します。

省略時の設定では，DISMOUNT コマンドは，ドライブからボリュームを自動的にアンロードします。ボリュームをもう一度マウントしたり初期化したりする予定があるときには，次に示すように，ボリュームをディスマウントした後で， /NOUNLOAD 修飾子を使用すれば，ボリューム処理に要する無駄な時間を節約できます。

    $  DISMOUNT/NOUNLOAD MTA1:

この例では，磁気テープ・ボリュームは論理的にディスマウントされ，テープが巻き戻されますが，物理的にはテープは MTA1 ドライブにロードされたままです。

ボリュームを物理的にアンロードする場合には，DISMOUNT コマンドによってボリュームを明示的にディスマウントしなければなりません。ドライブがアンロードされるのを待ってから，ボリュームを取り出すようにしてください。 DCL コマンド SHOW DEVICES を入力すれば，ディスマウント操作が完了したかどうかを確認できます。

ボリュームをマウントしたジョブからログアウトすれば，ボリュームは自動的にディスマウントされてアンロードされます。ただし，システムに障害が生じた場合には，ボリュームは自動的にはディスマウントされません。

ディスマウントしているデバイスが， ALLOCATE コマンドによって割り当てられたデバイスである場合には， DISMOUNT コマンドを使用してディスマウントしても，割り当ては解除されません。 MOUNT コマンドによってデバイスを暗黙に割り当てた場合には， DISMOUNTコマンドによって割り当てが解除されます。

# 第 13 章
論理名によるデバイス名とファイル名の定義

論理名とは，ファイル，ディレクトリ，デバイス，またはキューなどのシステム・オブジェクトを表す文字列の代わりに使用できる名前をいいます。本章では，次のことについて説明します。

- 論理名の特徴

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

- 論理名の作成

- 論理名の削除

- 論理名の変換

- 論理名の表示

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

- 論理名テーブルの特徴

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

- 論理名テーブルの作成

- 論理名テーブルの削除

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

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

# 13.1 論理名の特徴

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

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

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

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

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

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

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

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

    $ DEFINE COMS DISK7:[WALSH.COMMAND_PROC]:

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

    $ SET DEFAULT COMS

    $ TYPE COMS:PAYROLL.COM

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

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

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

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

    $ DIRECTORY SYS$SYSTEM

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

    $ TYPE SYS$LOGIN:DAILY_NOTES.DAT

# 13.3 論理名の作成

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

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

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

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

## 13.3.1 DEFINE コマンドの使用方法

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

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

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

省略時の設定では，DEFINE コマンドは，ユーザ・プロセスの論理名テーブルに論理名を登録します ( 第 13.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

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

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

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

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

## 13.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

## 13.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 属性は，論理名の反復変換が行われないようにします。すなわち，等価名が論理名であるかどうかを調べなくなり，最初の変換で「終わり」になります。

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

カーネル・モード

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

## 13.3.6 論理ノード名の作成

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

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

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

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

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

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

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

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

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

前へ | 次へ | 目次 | 索引