# Compaq OpenVMS
DCL ディクショナリ

前へ | 次へ | 目次 | 索引

# DEALLOCATE

> 占有している装置を，他のプロセスで使用できるようにします (ただしその装置に対応付けられている論理名の解除は行いません)。 DEALLOCATE コマンドは，使用中の装置は占有を解除しません。

## 形式

> DEALLOCATE 装置名[:]

## パラメータ

> ### 装置名[:]

> 占有を解除する装置の名前を指定します。ここで指定する装置名は，物理装置名でも使用していない論理名でも構いません。物理装置名を指定する場合，省略時のコントローラは A，省略時のユニットは 0 です。このパラメータは /ALL 修飾子と同時に指定できません。

## 修飾子

> ### /ALL

> ユーザのプロセスで現在占有している装置のうち，現在使用されていないすべての装置の占有を解除します。この修飾子は，装置名パラメータと同時に指定できません。

##

### 例

#1
    $ DEALLOCATE  DMB1:

> この例の DEALLOCATE コマンドは，コントローラ B の RK06/RK07 装置のユニット 1 の占有を解除します。

#2
    $ ALLOCATE   MT:   TAPE
    %DCL-I-ALLOC, _MTB1:  allocated
       .
       .
       .
    $ DEALLOCATE  TAPE:

> この例の ALLOCATE コマンドは，すべての磁気テープ・ドライブを占有し，それに論理名 TAPE を割り当てるよう要求しています。ALLOCATE コマンドの応答は，装置 MTB1 の占有に成功したことを示しています。DEALLOCATE コマンドは，論理名 TAPE を指定してテープ・ドライブの占有を解除することを指定しています。

#3
    $ DEALLOCATE/ALL

> この例の DEALLOCATE コマンドは，現在占有しているすべての装置の占有を解除します。

# DEASSIGN

> ALLOCATE コマンド，ASSIGN コマンド，DEFINE コマンド，または MOUNT コマンドによって設定された論理名の割り当てを解除します。また，DEASSIGN コマンドは，CREATE/NAME_TABLE コマンドで作成された論理名テーブルを削除します。

## 形式

> DEASSIGN [論理名[:]]

## パラメータ

> ### 論理名[:]

> 割り当てを解除する論理名を指定します。論理名は，1 文字から 255 文字までの長さです。論理名に英数字，ドル記号 ($)，あるいはアンダースコア (_) 以外の文字が含まれている場合には，引用符 (" ") で囲みます。 /ALL 修飾子を使用する場合を除き，論理名パラメータは必ず指定します。

> 論理名パラメータの最後にコロン (:) を指定しても，コマンド・インタプリタはそのコロンを無視します ( ASSIGNコマンドおよび ALLOCATE コマンドは，コロンが指定されている場合でも論理名を論理名テーブルに登録するときに，論理名からそのコロンを削除します ) 。論理名が 1 つまたは複数の続くコロンを含む場合は，DEASSIGN 論理名パラメータに追加のコロンを1 つ付ける必要があります。( たとえば，論理名 FILE: を割り当て解除するには，DEASSIGN FILE:: と入力します。)

> 論理名テーブルを削除するには，論理名パラメータとしてテーブル名を指定します。またそのテーブル名が登録されている論理名ディレクトリ・テーブルを指定するために，/TABLE 修飾子を使用します。

## 説明

> DEASSIGN コマンドは，ALLOCATE，ASSIGN，DEFINE，または MOUNT コマンドのいずれかで行った論理名の割り当てを解除します。また，DEASSIGN コマンドは， CREATE/NAME_TABLE コマンドで作成した論理名テーブルを削除します。 DEASSIGN で /ALL 修飾子を使用すると，指定したテーブルのすべての論理名の割り当てを解除できます。テーブルを指定しないで /ALL 修飾子を使用すると， (コマンド・インタプリタで作成された名前を除いて) プロセス・テーブル内のすべての名前の割り当てが解除されます。つまり，指定したアクセス・モードまたは外側のアクセス・モードで入力されたすべての名前の割り当てが解除されます。

> 論理名の割り当てを解除したい論理名テーブルを指定するには， /PROCESS，/JOB，/GROUP，/SYSTEM，または /TABLE 修飾子を使用します。複数の修飾子を指定した場合は，最後に指定した修飾子だけが有効です。指定した論理名のエントリが複数の論理名テーブルに存在する場合，コマンド行に指定した最後の論理名テーブルだけから名前が削除されます。論理名テーブルを指定しない場合，省略時の設定は /TABLE=LNM$PROCESS 修飾子です。

> 共有可能論理名を削除するには，論理名テーブルに対する書き込み (W) アクセス権が必要です。共有可能論理名テーブルを削除するには，親テーブルに対する書き込み (W) アクセス権と，対象とする論理名テーブルに対する削除 (D) アクセス権が必要です。

> 割り当てを解除したい論理名のアクセス・モードを指定するには， /USER_MODE，/SUPERVISOR_MODE，または /EXECUTIVE_MODE 修飾子を使用します。複数の修飾子を指定した場合は，最後に指定した修飾子だけが有効です。モードを指定しないと，スーパバイザ・モード名が削除されます。論理名の割り当てを解除すると，同じ論理名テーブル内に外側のアクセス・モードで作成された同じ名前も削除されます。

> エグゼクティブ・モード論理名の割り当てを解除するには， SYSNAM (システム論理名) 特権が必要です。

> SYSMAN 特権を持たないで/EXECUTIVE_MODE 修飾子を指定すると，修飾子は無視され，スーパバイザ・モード論理名の割り当てが解除されます。

> システムからログアウトすると，すべてのプロセス・プライベート論理名と論理名テーブルが削除されます。イメージを終了すると，プロセス論理名テーブル内の利用者モード・エントリの割り当てが解除されます。システムからログオフすると，ジョブ・テーブル内の論理名とジョブ・テーブル自体が削除されます。

> 他のすべての共有可能論理名テーブル内の名前は，利用者モード名，スーパバイザモード名，エグゼクティブ・モード名のいずれであっても，明示的に割り当てが解除されるまで残っています。共有可能論理名テーブル内の名前を削除するには，そのテーブルに対する書き込み (W) アクセス権が必要です。

> 論理名テーブルを削除すると，テーブル内のすべての論理名も削除されます。子孫テーブルも削除されます。共有可能論理名テーブルを削除するには，そのテーブルに対する削除 (D) アクセス権が必要です。

## 修飾子

> ### /ALL

> 指定した論理名テーブルと同じアクセス・モード，またはそれより外側の (特権の低い) アクセス・モードで登録された，すべての論理名が削除されることを指定します。論理名テーブルを指定しない場合には，省略時の値として，プロセス・テーブルである LNM$PROCESS が使用されます。 /ALL を指定する場合には，論理名パラメータは入力できません。

> ### /EXECUTIVE_MODE

> エグゼクティブ・モードの論理名の割り当てを解除するためには， SYSNAM（システム論理名）特権が必要です。

> 指定したアクセス・モード，またはそれより外側の(特権の低い) アクセス・モードで登録された，エントリだけが削除されることを指定します。エグゼクティブ・モードに対する SYSNAM 特権を持たない場合には，スーパバイザ・モードの論理名の割り当てを解除します。

> ### /GROUP

> グループ論理名テーブルからエントリを削除するためには， GRPNAM（グループ論理名）または SYSPRV 特権が必要です。

> 指定した論理名が，グループ論理名テーブルに登録されていることを示します。 /GROUP 修飾子は，/TABLE=LNM$GROUP 修飾子の同意語です。

> ### /JOB

> 指定した論理名が，ジョブ論理名テーブルに登録されていることを示します。 /JOB 修飾子は，/TABLE=LNM$JOB 修飾子の同意語です。論理名テーブルを明示的に指定しない場合には，省略時の設定として /PROCESS 修飾子が使用されます。

> ログイン時にシステムが作成するジョブ論理名，たとえば，SYS$LOGIN，SYS$LOGIN_DEVICE，および SYS$SCRATCH などの割り当ては，解除してはいけません。ただし，これらの論理名に対して，ユーザ自身が新しい等価名を割り当てている場合 (つまり，より特権の低いアクセス・モードで新しい論理名を作成している場合)には，明示的に作成した論理名の割り当てを解除することが可能です。

> ### /PROCESS (省略時の設定)

> 指定した論理名が，プロセス論理名テーブルに登録されていることを示します。 /PROCESS 修飾子は /TABLE=LNM$PROCESS 修飾子と同意語です。

> コマンド・インタプリタが作成した論理名，たとえば SYS$INPUT，SYS$OUTPUT，および SYS$ERROR などの割り当ては，解除することができません。ただし，これらの論理名に対して新しい等価名を割り当てている場合 (つまり，より特権の低いアクセス・モードで新しい論理名を作成している場合)には，明示的に作成した論理名の割り当てを解除することが可能です。

> ### /SUPERVISOR_MODE (省略時の設定)

> 指定した論理名テーブルに登録されている論理名の中で，スーパバイザ・モードで作成された論理名を削除します。 /SUPERVISOR_MODE 修飾子を指定すると，DEASSIGN コマンドは，ユーザ・モードの同じ名前の論理名の割り当ても解除します。

> ### /SYSTEM

> 指定した論理名が，システム論理名テーブルに登録されていることを示します。 /SYSTEM 修飾子は，/TABLE=LNM$SYSTEM 修飾子の同意語です。

> ### /TABLE=テーブル名

> 削除する論理名が含まれている論理名テーブルの名前を指定します。省略時の設定は LNM$PROCESS です。プロセス・テーブル，ジョブ・テーブル，グループ・テーブル，システム・テーブル，あるいはディレクトリ・テーブルの1つ，または利用者定義テーブルの名前を指定することができます (プロセス，ジョブ，グループ，システムの各論理名テーブルは，それぞれ LNM$PROCESS，LNM$JOB，LNM$GROUP，LNM$SYSTEM という論理名で指定しなければなりません)。

> /TABLE 修飾子を使用すれば，論理名テーブルを削除することもできます。プロセスに固有なテーブルを削除するためには，次のように指定します。

>     $ DEASSIGN/TABLE=LNM$PROCESS_DIRECTORY  テーブル名

> 共有可能テーブルを削除するためには，次のように指定します。

>     $ DEASSIGN/TABLE=LNM$SYSTEM_DIRECTORY  テーブル名

> 共有可能な論理名テーブルを削除するためには，そのテーブルに対して削除(D)アクセスが可能であるか，または共有可能テーブルの名前が登録されているディレクトリ・テーブルに対して書き込み(W)アクセスが可能でなければなりません。

> /TABLE 修飾子を指定しない場合には，省略時の設定として /TABLE=LNM$PROCESS 修飾子が使用されます。

> ### /USER_MODE

> ユーザ・モードで作成されたプロセス論理名テーブルの論理名を削除します。 /USER_MODE 修飾子を指定する場合， DEASSGIN コマンドは，ユーザ・モードの論理名の割り当てのみを解除します。また，ユーザ・モード論理名は，コマンド・プロシージャの起動および実行中に，自動的に削除されます。

##

### 例

#1
    $ DEASSIGN MEMO

> この例では，プロセス論理名 MEMO を解除しています。

#2
    $ DEASSIGN/ALL

> この例では，ユーザ・モードおよびスーパバイザ・モードの論理名をすべて解除しています。しかし，コマンド・インタプリタによってプロセス論理名テーブルに登録されたエグゼクティブ・モードの論理名 (たとえば，SYS$INPUT, SYS$OUTPUT, SYS$ERROR, SYS$DISK, および SYS$COMMAND 等) は消しません。

#3
    $ DEASSIGN/TABLE=LNM$PROCESS_DIRECTORY TAX

> この例では，論理名テーブル TAX とその下層のテーブルを削除します。論理名テーブルを削除するには，/TABLE=LNM$PROCESS_ DIRECTORY または /TABLE=LNM$SYSTEM_DIRECTORY 修飾子を指定しなければなりません。これは，すべてのテーブル名はこれらのディレクトリに格納されているためです。

#4
    $ ASSIGN USER_DISK:   COPY
    $ SHOW LOGICAL COPY
       "COPY" = "USER_DISK:" (LNM$PROCESS_TABLE)
    $ DEASSIGN COPY

> この ASSIGN コマンドは，論理名 COPY と装置 USER_DISK を等価にし，プロセス論理名テーブルに置きます。 DEASSIGN コマンドは，論理名を削除します。

#5
    $ DEFINE SWITCH:  TEMP
    $ DEASSIGN SWITCH::

> この DEFINE コマンドは，SWITCH: という論理名を，プロセス論理名テーブルに登録します。最後のコロンは，論理名の一部として保存されます。この論理名を DEASSIGN コマンドで削除するためには，2つのコロンが必要です。これは，DEASSIGN コマンドが最後のコロンを1つ削除してしまうので，論理名に含まれる文字と一致するようにもう1つのコロンが必要なためです。

#6
    $ ASSIGN/TABLE=LNM$GROUP DKA1: GROUP_DISK
    $ DEASSIGN/PROCESS/GROUP GROUP_DISK

> この例では，グループ論理名 GROUP_DISK を作成しています。次の DEASSIGN コマンドの修飾子は矛盾していますが， /GROUP 修飾子が後に指定されているためうまく論理名が削除されています。

#7
    $ ASSIGN DALLAS::USER_DISK:   DATA
       .
       .
       .
    $ DEASSIGN DATA

> この ASSIGN コマンドは，DALLAS という遠隔ノードの USER_DISK という装置指定に対して，DATA という論理名を割り当てます。この後，DATA という論理名を参照すると， DALLAS という遠隔ノードの USER_DISK というディスクが参照されます。 DEASSIGN コマンドは，この DATA という論理名の割り当てを解除します。

# DEASSIGN/QUEUE

> プリント・キューまたはターミナル・キューから，論理キューの割り当てを解除し，論理キューを停止します。 DEASSIGN/QUEUE コマンドは，バッチ・キューには使用できません。

> キューに対する管理 (M) アクセス権が必要です。

## 形式

> DEASSIGN/QUEUE 論理キュー名[:]

## パラメータ

> ### 論理キュー名[:]

> 特定のプリント・キュー，またはターミナル・キューから割り当てを解除する，論理キューの名前を指定します。

## 説明

> DEASSIGN/QUEUE コマンドを入力すると，論理キュー内のジョブは， ASSIGN/QUEUE コマンドでキューを別のプリント・キューまたは装置に再割り当てされるまで，待ち状態になります。

##

### 例

#1
    $ ASSIGN/QUEUE LPA0  ASTER
       .
       .
       .
    $ DEASSIGN/QUEUE  ASTER
    $ ASSIGN/MERGE LPB0  ASTER

> この ASSIGN/QUEUE コマンドは， ASTER という論理キューを LPA0 というプリント・キューに割り当てます。このあと DEASSIGN/QUEUE コマンドを使用して，この論理キューの割り当てを解除します。 ASSIGN/MERGE コマンドは，ASTER に含まれるジョブを， LPB0 というプリント・キューに再割り当てします。

# DEBUG

> OpenVMS Debugger を起動します。

> OpenVMS Debugger についての詳細は『Compaq OpenVMS デバッガ説明書』を参照してください。

> DCL レベルからデバッガ・コマンドのヘルプを参照したい場合は，次のコマンドを入力します。

>     $ HELP/LIBRARY=SYS$HELP:DBG$HELP DEBUG

## 形式

> DEBUG

## ヒープ・アナライザ

> ヒープ・アナライザには，メモリの使用状況をリアルタイムで図に示す機能があります。示された図を検討することで，性能を改善できる可能性のあるアプリケーション部分を素早く判別することができます。たとえば回数の多すぎるメモリ割り当て，大きなメモリ・ブロック，フラグメンテーションの顕在化，あるいはメモリ・リークなどに気付きます。

> デバッガからのヒープ・アナライザの実行についての詳細は，『Compaq OpenVMS デバッガ説明書』を参照してください。

> スタンドアロンでヒープ・アナライザを実行する場合は，次のコマンドを実行してください。

>     $ DEFINE/USER/NAME=CONFINE LIBRTL SYS$LIBRARY:LIBRTL_INSTRUMENTED
>     $ RUN/NODEBUG program

## 修飾子

> ### /CLIENT

> DEBUG クライアントの MOTIF インタフェースを起動します。クライアントから，サーバによって表示されるネットワーク・バインディング文字列を使用して接続します。サーバに最初に接続したクライアントは 1 次クライアントであり，そのサーバに接続できる 2 次クライアントの数を制御します。

> ### /KEEP

> 保持デバッガ(Kept Debugger) を起動します。保持デバッガは，1 つのイメージを何度もデバッグしたり，デバッガを終了せずに特定の複数のイメージをデバッグしたりすることができます。

> 保持デバッガを起動するには，DEBUG/KEEP コマンドを実行します。

> ### /RESUME (省略時の設定)

> デバッグしているプログラムの実行を Ctrl/Y で中断した後，非保持デバッガを再起動します ( LINK コマンドで /NOTRACEBACK 修飾子を指定してリンクしたプログラムを中断することはできません)。

> Ctrl/Y でプログラムの中断をしていない場合は， DEBUG/RESUME コマンドを実行しても何も起こりません。

> ### /SERVER [=([BINDING_INFO=ファイル指定] [,PROTOCOLS=(プロトコル[,...])])]

> DEBUG サーバを起動します。 DEBUG サーバには，同一の OpenVMS ノードあるいは遠隔 OpenVMS ノード，または Microsoft Windows 95 あるいは Microsoft Windows NT が稼動している PC ノード上の最大 30 までのクライアントが同時に接続することができます。

> 省略可能な BINDING_INFO キーワードを指定する場合は，サーバ・バインディング識別文字列が書き込まれるファイル指定を指定します。このキーワードを指定しない場合は，ファイルは作成されません。

> 省略可能な PROTOCOLS キーワードを指定する場合は， DEBUG サーバに接続するために有効とするネットワーク・プロトコルを指定します。指定されたプロトコルだけが有効となります。このキーワードを指定しない場合は，すべてのプロトコルが有効となります。プロトコル引数には，次のキーワードのいずれか 1 つあるいは複数を指定することができます。

> > ALL
> > [NO]DECNET
> > [NO]TCP_IP
> > [NO]UDP

> サーバに最初に接続したクライアントは 1 次クライアントとなります。 1 次クライアントの接続後に接続したクライアントは 2 次クライアントとなります。 1 次クライアントは，そのサーバに接続できる 2 次クライアントの数を制御します。

> サーバは，一連の RPC バインディング文字列を表示して，クライアントがサーバに接続するために経由するポート番号を識別します。ポート番号は，識別文字列の最後の角括弧 ([]) の中に表示されます。

> クライアントから接続する場合の最も簡単なポート識別文字は，サーバのノード名と角括弧に囲まれたポート番号で構成されます。次の例はすべて正しいバインディング識別文字列です。

> > NODNAM[1234]
> > NCACN_IP_TCP:16.32.16.25[1112]
> > 16.32.16.25[1112]
> > NCACN_DNET_NSP:63.1004[RPC20A020DD0001]

> 注意 デバッグ・サーバを起動するには，ライト・データベースに DBG$ENABLE_SERVER 識別子を持っている必要があります。デバッグ・サーバを使用する場合は注意してください。一度デバッグ・サーバを起動すると，ネットワーク上の任意のクライアントがそのデバッグ・サーバに接続することができます。

> システム管理者は， DBG$ENABLE_SERVER 識別子を許可する前に，ライト・データベースにアクセスするための書き込みアクセスを持つアカウントから DEBUG/SERVER コマンドを実行してこの識別子を作成しておかなければなりません。システム管理者は一度だけこの識別子を作成する必要があります。以降は，Authorize ユーティリティを起動して，ライト・データベースのユーザ・アカウントに DBG$ENABLE_SERVER 識別子を許可することができます。

##

### 例

#1
    $ FORTRAN/DEBUG/NOOPTIMIZE WIDGET
    $ LINK/DEBUG WIDGET
    $ RUN WIDGET
                    [ Debugger Banner and Version ]

    %DEBUG-I-INITIAL, language is FORTRAN, module set to WIDGET
    DBG>

> FORTRAN および LINK コマンドは /DEBUG 修飾子を指定して，デバッガ・シンボル・テーブル情報とプログラム WIDGET.FOR をコンパイルしています。このプログラムはデバッグ情報でコンパイルおよびリンクされているので， RUN コマンドでプログラムが開始されるとイメージ・アクティベータは自動的にデバッガを起動します。デバッガが起動された時点では，プログラム・コードは展開されていません。

#2
    $ FORTRAN/DEBUG/NOOPTIMIZE WIDGET
    $ LINK/DEBUG WIDGET
    $ RUN/NODEBUG WIDGET
      NAME:
      NAME:
      NAME:
    ^Y
    $ DEBUG/RESUME

                 [ Debugger Banner and Version ]

      %DEBUG-I-INITIAL, language is FORTRAN, module set to WIDGET
      DBG>

> FORTRAN および LINK コマンドは /DEBUG 修飾子を指定して，デバッガ・シンボル・テーブル情報でプログラム WIDGET.FOR をコンパイルしています。 RUN コマンドはイメージ WIDGET.EXE の実行を始めます。このイメージはループし，制御不可能です。 Ctrl/Y でプログラムに割り込みをかけ， DEBUG/RESUME コマンドで制御をデバッガに移します。

#3
    $ CC/DEBUG/NOOPTIMIZE ECHOARGS
    $ LINK/DEBUG ECHOARGS
    $ ECHO == "$ sys$disk:[]echoargs.exe"
    $ DEBUG/KEEP
                       [ Debugger Banner and Version ]

    DBG> RUN/COMMAND="ECHO"/ARGUMENTS="fa sol la mi"
    %DEBUG-I-INITIAL, language is C, module set to ECHOARGS
    %DEBUG-I-NOTATMAIN, type GO to get to start of main program
    DBG>
       .
       .
       .
    DBG> RERUN/ARGUMENTS="fee fii foo fum"
    %DEBUG-I-INITIAL, language is C, module set to ECHOARGS
    %DEBUG-I-NOTATMAIN, type GO to get to start of main program
    DBG>
       .
       .
       .
    DBG> RUN/ARGUMENTS="a b c" ECHOARGS
    %DEBUG-I-INITIAL, language is C, module set to ECHOARGS
    %DEBUG-I-NOTATMAIN, type GO to get to start of main program
    DBG>

> CC および LINK コマンドは /DEBUG 修飾子を指定して，デバッガ・シンボル・テーブル情報でプログラム ECHOARGS.C をコンパイルしています。

> シンボル定義コマンドは，デバッグ・セッション中にフォーリン・コマンドを定義します。

> DEBUG/KEEP コマンドは，保持デバッガを起動します。

> 最初の RUN コマンドは， /COMMAND 修飾子を使用してイメージ・ファイルを起動するフォーリン・コマンドを指定し， /ARGUMENTS 修飾子を使用して引数の文字列を指定します。

> RERUN コマンドは同一イメージ・ファイルを再起動し， /ARGUMENTS 修飾子を使用して新しい引数の文字列を指定します。

> 2 番目の RUN コマンドは新しいイメージ・ファイル，および新しい引数の文字列を指定します。

#4
    $ PASCAL/DEBUG/NOOPTIMIZE 8QUEENS
    $ LINK/DEBUG 8QUEENS
    $ DEFINE/USER/NAME=CONFINE LIBRTL SYS$LIBRARY:LIBRTL_INSTRUMENTED
    $ RUN/NODEBUG 8QUEENS

            [Heap Analyzer window is displayed]

> PASCAL および LINK コマンドは /DEBUG 修飾子を指定して，デバッガ・シンボル・テーブル情報でプログラム 8QUEENS.PAS をコンパイルします。

> DEFINE コマンドにより，ヒープ・アナライザはメモリ割り当てとメモリ割り当ての解除に関する情報を収集する LIBRTL にアクセスします。

> RUN/NODEBUG コマンドはヒープ・アナライザを起動しますが，デバッガは起動しません。

#5
    $ DEBUG/SERVER=(PROTOCOLS=(TCP_IP,DECNET))

    %DEBUG-I-SPEAK: TCP/IP: YES, DECnet: YES, UDP: NO
    %DEBUG-I-WATCH: Network Binding: ncacn_ip_tcp:16.32.16.25[1112]
    %DEBUG-I-WATCH: Network Binding: ncacn_dnet_nsp:63.1004[RPC20A020DD0001]
    %DEBUG-I-AWAIT: Ready for client connection...

> DEBUG/SERVER コマンドは，ネットワーク・プロトコルの TCP/IP および DECnet を指定して，デバッグ・サーバに接続します。バインディング文字列は TEMP.TMP ファイルに保存されることに注意してください。 TYPE コマンドを使用して，TEMP.TMP の内容を表示することができます。

前へ | 次へ | 目次 | 索引