前へ | 次へ | 目次 | 索引 |
ディスクやテープ・ボリュームでのファイル操作が終了したら, DISMOUNT コマンドを使用して,ボリュームをディスマウントできます。 DISMOUNT コマンドは,ボリュームをディスマウントする前に,ディスマウント操作を妨げる条件がないかどうかをチェックします。たとえば,ボリュームにインストール済みのスワップ・ファイルやページ・ファイル,インストール済みのイメージ,オープンされたユーザ・ファイルが含まれる場合には,ボリュームをディスマウントできないことを知らせるエラー・メッセージを出します。
省略時の設定では,DISMOUNT コマンドは,ドライブからボリュームを自動的にアンロードします。ボリュームをもう一度マウントしたり初期化したりする予定があるときには,次に示すように,ボリュームをディスマウントした後で, /NOUNLOAD 修飾子を使用すれば,ボリューム処理に要する無駄な時間を節約できます。
$ DISMOUNT/NOUNLOAD MTA1: |
この例では,磁気テープ・ボリュームは論理的にディスマウントされ,テープが巻き戻されますが,物理的にはテープは MTA1 ドライブにロードされたままです。
ボリュームを物理的にアンロードする場合には,DISMOUNT コマンドによってボリュームを明示的にディスマウントしなければなりません。ドライブがアンロードされるのを待ってから,ボリュームを取り出すようにしてください。 DCL コマンド SHOW DEVICES を入力すれば,ディスマウント操作が完了したかどうかを確認できます。
ボリュームをマウントしたジョブからログアウトすれば,ボリュームは自動的にディスマウントされてアンロードされます。ただし,システムに障害が生じた場合には,ボリュームは自動的にはディスマウントされません。
ディスマウントしているデバイスが, ALLOCATE コマンドによって割り当てられたデバイスである場合には, DISMOUNT コマンドを使用してディスマウントしても,割り当ては解除されません。 MOUNT コマンドによってデバイスを暗黙に割り当てた場合には, DISMOUNTコマンドによって割り当てが解除されます。
論理名とは,ファイル,ディレクトリ,デバイス,またはキューなどのシステム・オブジェクトを表す文字列の代わりに使用できる名前をいいます。本章では,次のことについて説明します。
本章で説明するコマンドについての詳細は,『Compaq OpenVMS DCL ディクショナリ』またはオンライン・ヘルプを参照してください。
13.1 論理名の特徴
論理名は次のような特徴を持っています。
一般に,コマンドはシステム・オブジェクトを受け取ると,その名前が論理名かどうかをチェックします。論理名の場合には,論理名が実際の値に置き換えられてからコマンドが実行されます。
たとえば,DISK7:[WALSH.COMMAND_PROC] ディレクトリを指す論理名 COMS を定義しておけば,DCL コマンド行での入力が次のように簡単になります。
$ DEFINE COMS DISK7:[WALSH.COMMAND_PROC]: |
次のように,論理名はDCL コマンドの中でも使用することができます。
$ SET DEFAULT COMS |
$ TYPE COMS:PAYROLL.COM |
システムを起動してログインすると,そのシステムで使用される論理名が作成されます。これらの論理名を使用すると,物理デバイス名を使用しないでも,頻繁に使用されるファイルやデバイスを参照することができます。これらの論理名一覧は 第 13.9.3 項 を参照ください。
ログインするたびに,ユーザ・プロセス用の論理名グループが作成され,それらの論理名がプロセス・テーブルに置かれます。これらの論理名一覧は 第 13.9.1 項 を参照ください。
たとえば,オペレーティング・システムのプログラムの一覧を表示するには,次のように,プログラムが実際に格納されているディスクやディレクトリの名前ではなく,論理名 SYS$SYSTEM を使用できます。
$ DIRECTORY SYS$SYSTEM |
たとえば,論理名 SYS$LOGIN は,ログインしたときの省略時のデバイスとディレクトリを表しています。 SET DEFAULT コマンドを使用して現在の省略時の値を変更した場合には,次のコマンドを使用すれば,当初の省略時のディレクトリにあるファイルを表示できます。
$ TYPE SYS$LOGIN:DAILY_NOTES.DAT |
論理名は,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 |
DEFINE コマンドで論理名を作成するときには,次の規則に従います。
次のコマンドは, 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 |
論理名を作成する場合には,システムが等価名をどのように解釈するかを決定する変換属性を指定できます。
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 論理ノード名の作成
ネットワーク・ノード名の代わりに,またはノード名とアクセス制御文字列の代わりに論理ノード名を使用することができます。論理ノード名を定義しておくと,これを使用して画面上でユーザ名とパスワードを入力 (して表示) する手間を省くことができます。
論理ノード名を定義する場合には,次の規則にしたがってください。
ファイルにパスワードを含んだ DEFINE コマンドをファイルに記述しないでください (ログイン・コマンド・プロシージャなど)。他の人がファイルを読み込むと,パスワードが知られてしまいます。 |
次のコマンドは,論理名BOSをノード名BOSTONとアクセス制御文字列に等しいと定義しています。ここでADAMSはユーザ名で,OLMEKIKAはパスワードです。
$ DEFINE BOS "BOSTON""ADAMS OLMEKIKA""::" |
前へ | 次へ | 目次 | 索引 |