プリンタを使用する場合, またはバッチ処理を行う場合は,キューを使用する必要があります。 キューを使用すると,プリントおよびバッチ処理の要求を登録しておき, 資源が使用できるようになれば,登録しておいたユーザのジョブをプリントしたり, バッチ処理したりできます。
プリンタをセットアップする場合には,
キュー・マネージャとキュー・データベースをどのように操作するか,
また OpenVMSでどのようにこれらを作成するかについて理解する必要があります。
これらについては第 13 章で説明しています。
この章の内容
| 作業 | 参照箇所 |
小型システム上のキュー管理 |
|
バッチ・キュー環境の設計 |
|
出力キュー環境の設計 |
|
キュー設定の計画 |
|
キューの作成と起動 |
|
リブート時の実行キューの再起動 |
|
キュー・オプションの使用 |
|
フォームの使用と作成 |
|
キュー管理コマンドの使用 |
|
ジョブの管理 |
|
キューに関する問題の解決 |
| 項目 | 参照箇所 |
キュー・プロセス |
|
キューの種類 |
|
自動起動機能 |
|
キュー・アクセス制御オプション |
|
ジョブ保持 |
|
キュー特性 |
|
バッチ処理オプション |
|
ジョブ・スケジューリング・オプション |
|
バナー・ページ |
|
フォームとストック |
|
ページと行のあふれ |
|
初期改ページ |
|
装置制御ライブラリ |
注意
この章では,多くの場所で DCL コマンドを参照しています。 DCL コマンドについての詳細は,『OpenVMS DCL ディクショナリ』 を参照してください。
DCL の SUBMIT または PRINT コマンドを入力する, またはアプリケーションを介してキューに登録されたバッチ・ジョブまたはプリント・ジョブは,キューに送られて処理を待ちます。 ジョブのタイプ,ファイル名,キュー名,特殊オプションを含めた,ユーザのキュー要求についての情報は,キュー・マネージャに送られます。 キュー・マネージャは該当する情報をキュー・データベースに記録し, 実際にジョブをプリントまたは実行するときにデータベースから読み出します。
また,キュー・マネージャはジョブを適切なキューに登録して, ジョブの処理の順番を待ちます。 1 台のプリンタが一度にプリントできるプリント・ジョブは 1 つだけですが,バッチ・キューのバッチ・ジョブは一度に複数実行することができます。
キュー・マネージャ,キュー・データベース,バッチ・キュー,プリント・シンビオントを含めたプリント・キューの操作については,第 13 章
を参照してください。
14.1.1 小型システムのキュー管理
キューで利用できる機能の多くは,ワークステーションなどのように最低限のキューしか必要としない小型システムでは必要ありません。 小型システムを使用している場合には,次の節をお読みください。
| 項目 | 参照箇所 |
簡単なバッチ・キュー構成 |
|
簡単な出力キュー構成 |
|
キューの設定と起動 |
|
キュー・オプションの選択と指定 |
|
キューの管理 |
|
キューのジョブの管理 |
バッチ・キューとプリント・キューは,一般的に次の 2 つのクラスに分けることができます。
| クラス | 説明 |
実行キュー |
処理を待つバッチまたはプリント・ジョブを受け付けるキュー。 |
汎用キュー |
適切な実行キューが使用可能になるまでジョブを保留するキュー。 実行キューが使用可能になると,キュー・マネージャは, その使用可能な実行キューにジョブを再登録する。 |
以降の項では,実行キューと汎用キューについてさらに詳しく説明します。
14.1.2.1 実行キュー
実行キューの各タイプを説明します。
バッチ実行キュー は,バッチ・ジョブのみ受け付けることが可能な実行キューです。 バッチ・ジョブは,コマンド・プロシージャを順次実行する独立プロセスとして動作します。 ユーザは,ジョブをキュー登録するときに,実行するコマンド・プロシージャのリストを定義します。
出力実行キュー は,シンビオントが処理するジョブを受け付けます。 キュー・マネージャは,ユーザがジョブをキューに登録するときに定義したファイルのリストをシンビオントに送信します。 これを受けたシンビオントは,データをディスクから出力装置に送ります。 シンビオントは,各ファイルを処理しながら,プリンタやターミナルなど, シンビオントが制御する装置に出力します。
オペレーティング・システムは, PRTSMB という標準プリント・シンビオントを提供します。 このシンビオントは,ハードコピー装置でファイルを印刷します。 LAT のプリント・シンビオントと LATSYM は, LAT ポートに接続されている出力装置でファイルを印刷します。 この処理や,OpenVMS のバッチまたはプリント・キュー登録システムが管理する他のファイル処理に対して,シンビオントを設定することもできます。 詳細は『OpenVMS Utility Routines Manual』 を参照してください。
| タイプ | 説明 |
プリンタ実行キュー |
シンビオントを使用してプリンタに出力を行う。 |
ターミナル実行キュー |
|
サーバ実行キュー |
出力実行キューの作成では,プリンタ,ターミナル,サーバのいずれかの実行キュー・タイプを指定し,それに対応付けるシンビオントを指定します。 ただし,キューを起動したとき,指定されたキュー・タイプが装置のタイプと一致しない場合は, シンビオント・プロセスはキュー指定を無効にすることができます。
オペレーティング・システムに用意されている標準のシンビオントは,制御対象がプリンタかターミナルのどちらであるのか判定し,その結果をキュー・マネージャに伝えます。 そしてキュー・マネージャは,必要ならば出力実行キューのタイプ指定を変更します。 取り決めでは,プリンタに出力を行わないユーザ作成シンビオントは,キューをサーバ・キューと定義します。
次に汎用キューの種類を説明します。
汎用バッチ・キューは,バッチ実行キューにのみジョブを送ることが可能な汎用キューです。 一般に,この汎用キューは,OpenVMS Cluster 環境を構成するいくつかのノード間で, バッチ処理の負荷を分散させたいときに使用します (14.2.1.3 項 を参照)。
ノードのシャットダウン時,汎用バッチ・キューが自動的に停止することはありません。 したがって,ノードをリブートするときに汎用バッチ・キューを再起動する必要はありません。
汎用出力キュー は,3 種類ある出力実行キュー (プリント, ターミナル,サーバ) のどれにでもジョブを送ることが可能な汎用キューです。 一般に,この汎用キューは,いくつかの類似プリンタに出力負荷を分散させたいときに使用します (14.2.2.5 項 を参照)。
ノードのシャットダウン時,汎用出力キューが自動的に停止することはありません。 したがって,ノードをリブートするときに汎用出力キューを再起動する必要はありません。
論理キュー は,ジョブを別の出力実行キューに転送する特殊なタイプの汎用出力キューです。 論理キューを使用すれば,関係する装置が故障したとき, 一時的にキューを切り換えることができます。
論理キューは,ASSIGN/QUEUE コマンドに指定された実行キューにジョブを転送します。 論理キューの設定については,14.7.1.10 項 を参照してください。
可能なかぎり自動起動型のキューを使用することをお勧めします。 自動起動機能は,実行キューの起動を簡略化して, できるだけキューがいつでも利用できるようにします。 自動起動機能によって可能なことは次のとおりです。
キューが自動的にフェールオーバしようとするノードのリストを指定する (OpenVMS Cluster 環境)。
自動起動フェールオーバは,特に LAT キューで役に立つ。 LAT プリンタは,一般に複数のシステムや OpenVMS Cluster システムのユーザで共有されているので,LAT キューが使用できないと多数のユーザが影響を受ける。 常に利用できる状態を保つため,キューがフェールオーバできるノードのリストを LAT キューに設定しておく。 これによって,あるノードが利用できなくなってもキューは稼働し続ける。
自動起動型キューを使用するためには,次の作業を実行する必要があります。
詳細は14.3 節を参照してください。
14.2 キュー環境の設計
この後の節では,バッチ・キュー環境および出力キュー環境の設計方法について説明します。
14.2.1 バッチ・キュー環境の設計
1 つのキュー,複数のキュー,または OpenVMS Cluster 環境に対してバッチ・キューを設計できます。 次の表で参照している各節では,バッチ処理環境を設計するのに役立つ構成の例を図で示しています。 実際の構成では,ここに示した複数の例から適切な要素を組み合わせて使用できます。
| 構成 | 参照箇所 |
バッチ処理が少なく,キューは 1 つでよい。 |
|
バッチ処理が大量にあり,複数のキューが必要である。 または,特殊なバッチ処理を行うため独自のキューが必要である。 |
|
OpenVMS Cluster 環境である。 |
|
キューができるだけ常時使用可能な状態になっている必要がある。 |
主に会話型処理をサポートするスタンドアロン・システムの場合は,この単純な構成を使用できます。 この構成は,必要とされるバッチ処理が限定されている場合に適しています。
図 14-1
は 1 つの省略時のバッチ・キューを示しています。
図 14-1: 省略時のバッチ・キュー
SUBMIT コマンドでバッチ・ジョブがキュー登録された場合,省略時の設定では,
ジョブは SYS$BATCH というキューに登録されます。
スタンドアロン型システムで省略時のキューを 1 つだけ設定する場合,キューの名前は SYS$BATCH にしてください。
14.2.1.2 特殊な要件があるバッチ・キュー
ユーザのバッチ処理の要件が大きかったり,あるいは特殊な処理の要件がある場合は,複数のキューを設定しなければならないことがあります。 そうした場合は,バッチ・キューのジョブに性能オプションと資源オプションを指定することによって,キューをカスタマイズし,特殊なジョブに対応することができます。
図 14-2
は複数のキューの構成例であり,
それぞれのキューが特定の種類のバッチ・ジョブを処理するためにカスタマイズされています。
図 14-2: 特別な資源オプションと性能オプションを 設定した複数のバッチ・キュー構成例
図 14-2 の例の SYS$BATCH は省略時のキューです。 通常のバッチ・ジョブはこのキューに登録されます。 FAST キューは,メモリからスワップされることがない優先順位の高いジョブを実行します。 SLOW は,優先順位の低いジョブを処理するためのバックグラウンド・キューです。 これらは物理メモリを大量に必要とする大きいジョブです。
キューの基本優先順位とスワップを有効にするか無効にするかの変更は, 慎重に行ってください。 ちょっと変更しただけでも,バッチ処理と会話型処理性能に多大な悪影響を与えることがあります。 たとえば,キューの基本優先順位を 1 増やしただけでも,性能に多大な影響があることがあります。
バッチ・キューに対するこれらのオプションの指定方法については,
14.6.4 項
で説明します。
14.2.1.3 OpenVMS Cluster 環境内での汎用バッチ・キュー
14.1.2 項 で説明したように,汎用キューを使用して OpenVMS Cluster のノード間でバッチ処理を分散させることにより, OpenVMS Cluster 環境で資源利用のバランスを取ることができます。
図 14-3
は,そうした分散を行うときの代表的な構成例を表したものです。
図 14-3: クラスタ全体に汎用キューを分散させたバッチ・キューの構成例
図 14-3 の例に描かれているクラスタ全体の汎用バッチ・キュー SYS$BATCH は,OpenVMS Cluster のすべてのノードの実行キューにジョブを送り込むよう設定されています。 そして,そこに登録されたジョブの実行キューの送り込みは, SYS$BATCH がジョブを送り込むすべての実行キューについて, ジョブ制限量に対する実際の実行ジョブの比率が最小になるように行われます。
たとえば,実行キューの MOE_BATCH,LARRY_BATCH,および CURLY_BATCH のジョブ制限量がすべて 5 であると仮定します。 MOE_BATCH と LARRY_BATCH が 4 つのジョブを実行していて, CURLY_BATCH が 1 つのジョブしか実行していない場合, 汎用キュー SYS$BATCH は次のジョブを CURLY_BATCH に送り込みます。
OpenVMS Cluster のキュー構成については,『OpenVMS Cluster システム』 を参照してください。
汎用キューの作成方法については,14.4.3 項
を参照してください。
14.2.2 出力キュー環境の設計
次の構成例を使用して,バッチ処理環境を設計してください。 ユーザの構成は,これらの例の中からいくつかの要素を組み合わせて設計できます。
| 設定 | 参照箇所 |
限定された用途で 1 つのプリンタキューがあればよい |
|
異機種のプリンタを使用する |
|
PostScript プリントを行う |
|
複数のシステムからプリンタにアクセスする |
|
同一種のプリンタを複数台使用する |
|
OpenVMS Cluster 環境である |
|
出力キューを使用せずに直接プリンタに出力を行うアプリケーションを使用する |
|
分散プリントを行う |
図 14-4
は,簡単なキュー構成について説明したものです。
この構成は,プリンタが 1 台のスタンドアロン・システムに適した構成です。
図 14-4: 簡単な出力キュー
PRINT コマンドでプリント・ジョブがキュー登録された場合,
省略時の設定では,
ジョブは SYS$PRINT というキューに登録されます。
スタンドアロン型システムで省略時のプリンタ・キューを 1 つだけ設定する場合,キューの名前は SYS$PRINT にしてください。
14.2.2.2 異種プリンタを使用する場合
LN03 プリンタ,LA210 プリンタ,LP27 ライン・プリンタというように, 複数の異種プリンタを使用している場合は,それぞれのプリンタ別にキューを設定する必要があります。 これは,省略時のフォームや装置制御ライブラリなど,それらのキューで使用するオプションが,たいていのプリンタごとに異なるためです。 たとえば,ライン・プリンタの省略時のフォームの幅が 132 カラムであるの対し,LN03 プリンタの省略時のフォームの幅が 80 カラムということがあります。
図 14-5
は,こうしたケースでの出力実行キューの構成例です。
図 14-5: 異種プリンタ使用時のキュー構成
オペレーティング・システムには,PostScript プリントをサポートするソフトウェアが含まれていません。 PostScript プリントを行うためには,次のいずれかが必要です。
PostScript ファイルのプリント機能を持つプリンタと対応ソフトウェア
PostScript - シクセル変換機能を持つプリント・ソフトウェアと対応プリンタ
詳細は弊社のサポート担当者にお問い合わせください。
14.2.2.4 LAT プリンタを使用する場合
複数のシステムまたは複数の OpenVMS Cluster 環境間でプリンタを共用する場合は, ターミナル・サーバの LAT ポートにプリンタを接続します。 図 14-6 は,ターミナル・サーバに遠隔プリンタを接続したときの出力キューの構成例を表したものです。
通常,LAT プリンタは複数のシステムまたは複数のクラスタのユーザの間で共用されるため,LAT キューが使用不能になったときに影響を受けるユーザの数は多くなります。 このため,できるだけ常時使用可能になるよう,LAT キューはフェールオーバ・リストを使用して,自動起動型として設定することをお勧めします。
自動起動型キューの作成方法については,
14.4.2 項
を参照してください。
図 14-6: ターミナル・サーバに遠隔プリンタを接続したときの構成例
ライン・プリンタ 3 台というように,同一種のプリンタを複数台使用する場合は,汎用キューを使用して,プリンタ間のプリント負荷のバランスを取るべきです。
図 14-7
は,そうしたキューの構成例を表しています。
図 14-7: 3 台の同種プリンタ使用時の汎用キュー構成
汎用キューの作成方法については,14.4.3 項
で詳しく説明します。
14.2.2.6 OpenVMS Cluster キュー
図 14-8
は,OpenVMS Cluster 用の代表的な出力キュー構成例を表しています。
クラスタのキュー構成については,『OpenVMS Cluster システム』 を参照してください。
図 14-8: OpenVMS Cluster における出力キュー構成
出力キューを使用せずにプリンタに直接出力を行うアプリケーションを使用する場合,または LAT キューを使用する場合は, プリンタをスプールすることをお勧めします。 プリンタをスプールすると,アプリケーション・プログラムは中間記憶装置に出力を書き込むため,プログラムの動作中でも他のユーザがプリンタを使用することができます。
図 14-9
は,スプールされたプリンタを使用するときの出力キュー構成を表したものです。
図 14-9: スプールされた装置を使用するときのキュー構成
スプールされたプリンタについては,8.9.2.1 項
を参照してください。
14.2.2.8 プリントの分散
OpenVMS バッチおよびプリント・キュー登録システムを使用すると, ローカル・システムや OpenVMS Cluster に接続された出力装置でファイルをプリントすることができます。
これに対し DQS (Distributed Queuing System: 分散キュー・システム) は, OpenVMS のキュー登録システムのプリント機能を分散環境に広げるレイヤード製品です。 DQS を使用して,ネットワーク上の遠隔ノードに接続されている出力装置でファイルをプリントすることができます。
この DQS についての詳細は,DQS の資料を参照するか,
弊社のサポート担当者にお問い合わせください。
14.3 キュー設定の計画
ジョブをキューに登録するためには,キューを作成する必要があります。 つまり,ジョブが処理を開始できるようにキューを起動する必要があります。 キューを設定し起動するには,次の順序で作業を行ってください。
| ステップ | 作業 | 参照箇所 |
1 |
キュー・マネージャの起動,キュー・データベースの作成を確認する。 |
|
2 |
出力キューを使用する場合は,出力装置を設定して, ブート時に装置を設定するコマンド・プロシージャを作成する。 |
|
3 |
フォーム,特性,バナー・ページなど, キュー・オプションを使用する場合には, これらのオプションの指定に必要な修飾子を決定する。 さらに,キューを作成する前に使用するフォームと特性を定義する (この手順の説明は長くなるため,ステップ 5 を説明した節の後に, 対応する節が設けられている)。 |
|
4 |
キューを作成して,起動する。 |
|
5 |
ブートのたびに必要な設定作業を実行するコマンド・プロシージャを作成する。 |
出力キューを作成するためには,それらキューが出力を送る装置を設定しておく必要があります。
作業方法
ユーザがアクセスするプリンタやプロッタなどの出力装置をインストールする。 インストール方法については,装置付属の資料を参照すること。
LAT プリンタを使用する場合は,論理 LAT ポートを作成する。 LAT プリンタが使用可能なすべてのサービス・ノードに論理 LAT ポートを作成し,ターミナル・サーバ・ノードの物理ポートまたはサービスに対応付ける必要がある。 このために使用するコマンドは,LATCP の CREATE PORT と SET PORT コマンド。 詳細は『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』 を参照すること。
SET コマンドを使用して,ターミナル・ポートに接続されているライン・プリンタとプリンタに装置特性を設定する (14.2.2.7 項 を参照)。 ステップ 5 では,システムのブートのたびに装置を設定するコマンド・プロシージャを作成する。 装置特性を設定するためのコマンドは,コマンド・プロシージャに登録すること。
プリンタをスプールする。 LAT プリンタを使用する場合,またはプリンタに直接出力を行うアプリケーションを使用する場合は, プリンタをスプールすること。 プリンタのスプールについては,14.2.2.7 項 を参照。
プリンタをスプールするためには,SET DEVICE/SPOOLED コマンドを使用する。 詳細は8.9.2.1 項 を参照すること。
システムのブートのたびに装置特性の設定とプリンタのスプールを行うコマンド・プロシージャを作成する。 ステップ 3 と 4 のコマンドをコマンド・プロシージャに登録すること。 ステップ 2 の論理ポート設定用のコマンドは, サイト別 LAT スタートアップ・コマンド・プロシージャの SYS$MANAGER:LAT$SYSTARTUP.COM に登録すること。
システム構成が単純な場合,そうしたコマンドは, SYSTARTUP_VMS.COM に登録する方法もあります。 ただし大量のコマンドが必要になる場合は, DEVICE_SETUP.COM といった名前のコマンド・プロシージャ・ファイルを別に作成し,それを SYSTARTUP_VMS.COM から実行すること。 コマンド・プロシージャ内において,SET TERMINAL コマンドは, 同じ出力装置の SET DEVICE/SPOOLED コマンドより前に置く必要がある。
例
$ SET PRINTER/TAB/PAGE=66/WIDTH=132/LOWER/FF/NOCR -
_$ /FALLBACK/NOWRAP/NOTAB LPA0:[1]
$ SET TERMINAL/SPEED=9600/PAGE=100/WIDTH=200/DEVICE=LN03/NOBROADCAST -
_$ /NOECHO/HARDCOPY/NOTYPE_AHEAD/NOFORM/NOWRAP/PASTHRU/PERMANENT LTA3331:[2]
$ SET DEVICE/SPOOLED=(LPA0,SYS$SYSDEVICE) LPA0:[3]
$ SET DEVICE/SPOOLED=(LN03_1,SYS$SYSDEVICE) LTA3331:[4]
この例では,次の操作を実行します。
ライン・プリンタ装置のパラメータを設定する。
LAT プリンタ装置のパラメータを設定する。
装置をスプールし,LPA0 というキューを作成する。
装置をスプールし,LN03_1 というキューを作成する。
キューは次の順序で作成します。
実行キュー
汎用キュー
キューの作成と起動についての詳細は,以降の項を参照してください。
| 作業 | 参照箇所 |
自動起動型実行キュー |
|
非自動起動型実行キュー |
|
汎用キュー |
自動起動実行キューを作成して起動するには,次の操作を実行します。
自動起動キューとしてキューを作成し,オプションとしてフェールオーバ・リストを指定する。
自動起動のためにキューをアクティブにする。 この操作は,キューを作成するとき,またはキューを作成した後で実行できる。
ノードで自動起動機能を有効にする。 この操作は,キューを作成する前または作成した後で実行できる。
例
$ INITIALIZE/QUEUE/START/DEFAULT=(NOBURST,FLAG=ALL,TRAILER=ONE) -
_$ /AUTOSTART_ON=(LILITH::LPA0:,SMITTN::LPA0:) LPA0 [1]
$ INITIALIZE/QUEUE/START/DEVICE=TERMINAL/ -
_$ /AUTOSTART_ON=(LILITH::LTA3331:,SMITTN::LTA555:) -
_$ /RECORD_BLOCKING/BLOCK_LIMIT=600/CHARACTERISTICS=(EAST)-
_$ /SEPARATE=(NOBURST,NOTRAILER,NOFLAG,RESET=ANSI$RESET) -
_$ /DEFAULT=(NOFEED,NOBURST,FLAG=ONE,NOTRAILER,FORM=MEMO) -
_$ /LIBRARY=LN03LIBRARY /PROCESSOR=LATSYM LN03_1 [2]
$ ENABLE AUTOSTART/QUEUES [3]
$ ENABLE AUTOSTART/QUEUES/ON_NODE=SMITTN [4]
この例では,次の操作を実行します。
LPA0 という自動起動キューを作成し,それを自動起動のためにアクティブにする。 これはフェールオーバ・リストが指定された自動起動キューであるため, このキューは,LILITH::LPA0 または SMITTN::LPA0 で実行できる。
LAT プリンタに対して LN03_1 という自動起動キューを作成し, それを自動起動のためにアクティブにする。 これはフェールオーバ・リストが指定された自動起動キューであるため, LILITH ノードの LTA3331: または SMITTN ノードの LTA555: という LAT ポートに接続されたプリンタで実行できる。
プロセスが実行されているノードで自動起動機能を有効にする。 このノードが LILITH であるとする。 LPA0 と LN03_1 は, いずれも LILITH ノードで実行できるアクティブな自動起動キューであるため, これらのキューはこのノードで起動する。
SMITTN ノードで自動起動機能を有効にする。 LILITH が使用不可になると, LPA0 と LN03_1 はどちらも SMITTN ノードにフェールオーバできる。
各作業についての詳細は,この後の節を参照してください。
14.4.1.1 自動起動キューの作成
自動起動型実行キューを作成するためには,次の表に示す形式で INTIALIZE/QUEUE コマンドに /AUTOSTART_ON 修飾子を指定します。
重要
ノード名:: に指定されたノード名が, 既存のノード名であるかチェックされることはありません。 したがって,誤ったノード名を指定することのないように注意してください。
フェールオーバ・リストの指定方法
フェールオーバ・リストを指定するには,次の操作を実行します。
出力キューの場合は,装置名をフェールオーバ・デバイスのリストに置き換える。
バッチ・キューの場合は,ノード名をフェールオーバ・ノードのリストに置き換える。
自動起動型キューは, 次のいずれかの方法で最初にアクティブにする必要があります。
キューの作成に使用する INITIALIZE/QUEUE コマンドに /START 修飾子を指定する。
INITIALIZE/QUEUE/START/AUTOSTART_ON[/修飾子,...] キュー名
キューを作成した後,START/QUEUE コマンドを入力する。
START/QUEUE[/修飾子,...] キュー名
アクティブになった自動起動型キューは,
STOP/QUEUE/NEXT コマンド,または STOP/QUEUE/RESET コマンドで停止させられないかぎり,アクティブであり続けます。
ノードをシャットダウンしても,それによってノードの自動起動型キューがアクティブでなくなることはありません。
非アクティブな自動起動型キューを起動する
STOP/QUEUE/NEXT コマンド, または STOP/QUEUE/RESET コマンドで非アクティブにした自動起動型キューを起動する場合は,START/QUEUE コマンドを入力します。 これにより,キューは自動的にキュー・マネージャによって起動されます。 この場合,次のいずれかになります。
キューを実行できるノードで, 自動起動機能が有効に設定されているときは,ただちに起動する。
キューを実行できるノードで, (それまでは無効だった)自動起動機能が有効に設定されると,ただちに起動する。
自動起動キューを起動するノードで自動起動機能を有効にしなければなりません。 この操作は,自動起動キューを作成する前または作成した後で実行できます。 自動起動機能を有効にするには,次の操作を実行してください。
自動起動キューを実行する各ノード (キューが後でフェールオーバされる可能性のあるノードも含む) に対して,次のコマンドを入力する。
$ ENABLE AUTOSTART/QUEUES
ノードで自動起動機能を有効にすると,次の処理を自動的に実行するようキュー・マネージャに通知される。
ノードでアクティブで有効なすべての自動起動キューを起動する。
そのノードにフェールオーバされたアクティブな自動起動キューを起動する。
省略時の設定では,コマンドは,そのコマンドを入力したノードでのみ有効である。 別のノードで自動起動機能を有効にするには,/ON_NODE 修飾子を指定する。
注意
ENABLE AUTOSTART/QUEUES コマンドは,ノードで動作可能な, アクティブな自動起動型キューしか起動しません。 このコマンドを入力しても自動起動キューが起動しない場合には, そのキューは自動起動に対してアクティブになっていません。 14.4.1.2 項 で説明したように, 自動起動型キューは最初にアクティブにしておく必要があります。
自動起動型キューを実行するすべてのノードのスタートアップ・コマンド・プロシージャに ENABLE AUTOSTART/QUEUES コマンドを登録して,ノードのブートのたびに自動起動が有効になるようにする。
ノード上のアクティブな停止中の自動起動型キューはすべて, ENABLE AUTOSTART/QUEUE コマンドでキューの自動起動を有効にすることにより,まとめて起動することができます。 したがって,キューごとに START/QUEUE コマンドを登録する必要はありません。
ノードがリブートすると,ENABLE AUTOSTART/QUEUE コマンドが入力されないかぎり,自動起動は有効にはなりません。
14.4.1.4 スタートアップ・プロシージャにコマンドを追加する
ENABLE AUTOSTART/QUEUE コマンドは,ノードのすべてのスタートアップ・プロシージャに登録することをお勧めします。 ENABLE AUTOSTART/QUEUE コマンドは, スタートアップ・コマンド・プロシージャ内の,プリンタ装置の設定用コマンドと重要なディスクのマウント用コマンドの後に登録してください。 このようにしておけば,後で自動起動型キューを追加する必要が出てきたり,あるいは自動起動型キュー・フェールオーバ・リストにノードを追加する必要が出てきたりしたときに,コマンドを登録する必要がなくなります。
次に,ノードの SYSTARTUP_VMS.COM プロシージャに登録するコマンドの例を示します。
$! Start the nonautostart batch queue
$ START/QUEUE SYS$BATCH
$! Start all autostart queues
$ ENABLE AUTOSTART/QUEUES
システム・ディスクの SYS$MANAGER:SYSTARTUP_VMS.COM テンプレートには,
この他の例も含まれています。
14.4.2 非自動起動型実行キューの作成と起動
ここでは非自動起動型実行キューの作成と起動の方法について説明します。
例
次の例は,SYS$BATCH という名前でバッチ・キューを作成し, ノードLILITH: で起動する例です。
$ INITIALIZE/QUEUE/START/BATCH/ON=LILITH::SYS$BATCH
非自動起動実行キューを作成するには,次の表に示すように, INITIALIZE/QUEUE コマンドに /ON 修飾子を指定します。
| キューの種類 | コマンド |
出力キュー |
ノード名:: には,キューを実行するノード名を指定すること。 装置名: には,キューの出力先となる出力装置名を指定する。 |
バッチ・キュー |
バッチ・キューを作成するためには,/BATCH 修飾子を指定する必要がある。 ノード名:: には,キューを実行するノード名を指定すること。 |
非自動起動キューは,次のいずれかの方法で起動しなければなりません。
キューを作成するために使用する INITIALIZE/QUEUE コマンドに, /START 修飾子を入力する。 次に形式を示す。
INITIALIZE/QUEUE/START/ON[/修飾子,...] キュー名
キューを作成した後,次の形式で START/QUEUE を入力する。
START/QUEUE[/修飾子,...] キュー名
それぞれの非自動起動キューに対して, スタートアップ・コマンド・プロシージャでキューの名前を指定する START/QUEUE コマンドを指定しなければならない。
この節では汎用キューの作成と起動の方法について説明します。
14.4.3.1 汎用キューの作成
汎用キーを作成するには,次の表に示すように, INITIALIZE/QUEUE コマンドに /GENERIC 修飾子を指定します。
| キューの種類 | コマンド |
出力キュー |
/GENERIC 修飾子はキューが汎用キューであることを指定する。 最初の キュー名に対しては,汎用キューがジョブを送信する送信先の実行キューを指定する。 2 番目の キュー名に対しては,出力が送信される汎用キューを指定する。 |
バッチ・キュー |
バッチ・キューを作成するには,/BATCH 修飾子を指定しなければならない。 キュー名に対しては,汎用キューがジョブを送信する送信先の実行キューを指定する。 実行キューはバッチ・キューでなければならない。 |
上記の INITIALIZE/QUEUE コマンドの中のジョブを送る実行キュー・リストは省略することもできます。
その場合は,INITIALIZE/QUEUE,START/QUEUE,SET QUEUE のいずれかのコマンドに /ENABLE_GENERIC 修飾子を指定することによって,
汎用キューからジョブを受け取る実行キューを有効にします。
ただし通常は,この方法はお勧めできません。
システムの構成が単純な場合のみ,この方法を使用してください。
例
次の例では,汎用キュー (LN03_PRINT) を作成します。 このコマンドには,LN03_PRINT がジョブを送信する送信先の実行キューが指定されています。
$ INITIALIZE/QUEUE/GENERIC=(LN03_1,LN03_2,LN03_3) LN03_PRINT
汎用キューは,次のいずれかの方法で起動しなければなりません。
キューを作成するために使用する INITIALIZE/QUEUE コマンドに, /START 修飾子を指定する。 次に形式を示す。
INITIALIZE/QUEUE/START/GENERIC(=キュー名[,...])[/修飾子, ...] キュー名
キューを作成した後,次の形式で START/QUEUE コマンドを入力する。
START/QUEUE[/修飾子,...] キュー名
フォーム,特性,キューに関する情報はキュー・データベースに格納されます。 この理由から,ノードや OpenVMS Cluster システムがリブートするたびに, フォーム,キュー,特性を作成する必要はありません。 しかし,ノードをリブートするたびに,非自動起動実行キューを起動し,自動起動機能を有効に設定しなければなりません。 そのために,コマンド・プロシージャを作成します。
システム構成が単純な場合,一般にこのようなコマンドは, 汎用的なサイト別スタートアップ・コマンド・プロシージャSYSTARTUP_VMS.COM に登録する方法もあります。 ただし大量のコマンドが必要になる場合は, コマンド・プロシージャ・ファイルを別に作成し, それを SYSTARTUP_VMS.COM から実行するようにしてください。
ノードがシャットダウンされると,汎用キューは自動的に停止されます。
したがって,スタートアップ・コマンドプロシージャに汎用キューの起動コマンドを入れる必要はありません。
14.6 キュー・オプションの使用
次の表は,キューに対して使用できるオプションを示しています。
| オプション | キューの種類 | 参照箇所 |
キュー・アクセス制御オプション |
バッチと出力 |
|
ジョブ保持オプション |
バッチと出力 |
|
キュー特性オプション |
バッチと出力 |
|
バッチ処理オプション |
バッチ |
|
ジョブ・スケジューリング・オプション |
出力 |
|
バナー・ページ・オプション |
出力 |
|
フォーム・オプション |
出力 |
|
ページあふれ制御オプションと行あふれ制御オプション |
出力 |
|
初期改ページの抑制 |
出力 |
|
装置制御ライブラリ・オプション |
出力 |
キューを作成した後,START/QUEUE コマンドまたは SET QUEUE コマンドに適切な修飾子を指定する。
表 14-1
は,キュー・オプションを指定するために使用できる修飾子と,各オプションを指定できるキューのタイプを示しています。
表 14-1: キュー・オプション設定用の修飾子
キューは永続的に機密保護管理をするオブジェクトです。 キューはキューのセキュリティ・プロファイルとともにシステム・キュー・データベースに格納されます。
ファイルやディレクトリ同様,キューに対するアクセスを, UIC または ACL に基づく保護機構を使って制御することができます。
システムの機密保護を確立する方法については,
『OpenVMS Guide to System Security』 を参照してください。
14.6.1.1 UIC に基づくキュー保護
UIC に基づく保護機構は,キューに対するアクセス権を持つかどうかによってジョブとユーザを限定します。 この保護機構がキューに適用される処理を制御する方法は,ファイルなどの他のシステム・オブジェクトを制御する方法と同じです。
キューを作成するとき,キューには所有者 UIC と保護コードが割り当てられます。 省略時の所有者は [SYSTEM] ですが,/OWNER_UIC 修飾子で別の所有者を指定できます。
キュー・クラスの,UIC に基づいた省略時のキューの保護は次のとおりです。
System:Manager,Owner:Delete,Group:Read,World:Submit
/USER 修飾子を使ってジョブがキュー登録されたのでないかぎり, ジョブには,それをキュー登録したプロセスの UIC に等しい所有者 UIC が割り当てられます。 そして,システムは,キューのジョブとキューで行われる処理の 1 つ 1 つについて,所有者 UIC,キューの保護,および要求者の特権をチェックします。
キューについてシステムがチェックする処理は, 大きく次の 2 つに分類されます。
| 操作の適用対象 | チェック項目 |
ジョブ |
キューとジョブの所有者 UIC に対して指定された, 読み込みおよび削除方法。 |
キュー |
キューとキューの所有者 UIC に対して指定された, 登録および管理保護。 |
次の表は,キュー・クラスがサポートするアクセスのタイプを示しています。
| アクセス・タイプ | 権利が与えられる操作 |
読み込み |
キューまたはキュー内のジョブの機密保護要素を表示できる。 |
キューへの登録 |
キューにジョブを登録できる。 |
削除 |
キューに登録されているジョブを削除するか, またはジョブの要素を変更できる。 |
管理 |
キューに登録されているジョブを操作できる。 キューの起動,停止,削除を行うことができ,キューの状態や, 機密保護に関係のない要素を変更できる。 |
制御 |
保護要素とキューの所有者を変更できる。 |
保護コードによりプロセスに読み込みアクセス権または削除アクセス権が与えられた場合には,キューに登録されているジョブに対してだけ操作を実行できます。
しかし,ACL により読み込みアクセス権と削除アクセス権が与えられた場合には,プロセスはキューに登録されているすべてのジョブを操作できます。
必要な特権
キュー・マネージャを停止または起動するには,SYSNAM 特権と OPER 特権が必要です。
キューを作成または削除したり,シンビオント定義を変更するには,OPER 特権が必要です。
実行する監査の種類
機密保護管理者がイベント・クラスに対して監査機能を有効に設定している場合には,次のイベントを監査できます。
| 監査されるイベント | 監査が行われる場合 |
アクセス |
ジョブがキューに登録されたときと, ジョブまたはキューが変更されたとき。 |
作成 |
キューが初期化されるとき。 |
削除 |
プロセスがジョブをキューから削除するとき, またはキュー自体が削除されるとき (キューの削除の監査を有効にするには, キューに対して管理 [M] アクセスの監査機能を有効にする必要がある)。 |
キューの機密保護についての詳細は,
『OpenVMS VAX Guide to System Security』 を参照。
14.6.1.2 UIC に基づいたキュー保護の設定と表示
UIC に基づくキューの保護を設定または表示するコマンドを次に示します。
| コマンド | 説明 |
INITIALIZE/QUEUE/PROTECTION=(所有者権[: アクセス権],...) START/QUEUE/PROTECTION=(所有者権[: アクセス権],...) SET QUEUE/PROTECTION=(所有者権[: アクセス権],...) |
キューの保護を指定する。
|
INITIALIZE/QUEUE/OWNER_UIC=uic START/QUEUE/OWNER_UIC=uic SET QUEUE/OWNER_UIC=uic |
キューの UIC の変更を許可する。 省略時の UIC は [1,4] である。 |
SHOW QUEUE/FULL |
キューに対して現在設定されている保護も含めて, キューに関する詳細情報を表示する。 |
SET SECURITY/CLASS=QUEUE/OWNER=uic |
キューの所有者要素を変更する。 標準形式で UIC を指定する。 |
SET SECURITY/CLASS=QUEUE /PROTECTION=所有者権[:アクセス権] |
キューの保護コードを変更する。 保護コードはオブジェクトの所有者に対する関係をもとに,ユーザに対して許可されるアクセスのタイプを定義する。 |
SHOW SECURITY/CLASS=QUEUE |
キュー・クラスのオブジェクトに対して現在設定されている保護を表示する。 |
例
次の例は UIC に基づくキューの保護を設定し,そのキューの情報を機密保護情報も含めて表示する。
$ INITIALIZE/QUEUE/GENERIC=(SYS_QUE1,SYS_QUE2)/ -
_$ PROTECTION=(S:M,O:D,G:R,W:R) -
_$ /OWNER_UIC=[1,8]/RETAIN=ERROR SYS_PRINT
$ SHOW QUEUE/FULL SYS_PRINT
Generic printer queue SYS_PRINT/GENERIC=(SYS_QUE1,SYS_QUE2)
/OWNER=[1,8]/PROTECTION=(S:M,O:D,G:R,W:R)/RETAIN=ERROR
次の例では,所有者にキューの管理アクセス権および削除アクセス権を与えている。 また,ユーザ AGBELL を所有者にしている。 所有者 AGBELL はキューを管理できるが,機密保護情報は変更できない。
$ SET SECURITY/CLASS=QUEUE/OWNER=[AGBELL]/PROTECTION=O:MD -
_$ TELEPHONE_QUE
$ SHOW SECURITY/CLASS=QUEUE TELEPHONE_QUEUE
TELEPHONE_QUEUE object of class QUEUE
Owner: [INVENTORS,AGBELL]
Protection: (System: M, Owner: MD, Group: R, World: S)
Access Control List: <empty>
UIC に基づく保護に加えて,ACL (アクセス制御リスト) でキューを保護することもできます。 ACL に基づく保護は, UIC グループという単位ではなく,特定のプロジェクト・グループのメンバがキューに対するアクセス権を必要とする場合にもっと細かいレベルの保護を実現します。
保護オブジェクトに対して ACL を設定する詳細は『OpenVMS Guide to System Security』 を参照してください。
14.6.1.4 ACL に基づくキュー保護の設定と表示
ACL に基づくキュー保護の設定または表示を行うコマンドを次に示します。
| コマンド | 説明 |
|
|
キューの ACL 保護を設定 |
SHOW QUEUE/FULL |
キューの ACL セットが存在すれば表示 |
SHOW SECURITY/CLASS=QUEUE |
VAX システムでキューの ACL セットが存在すれば表示 |
ACL に基づく機密保護についての詳細は,『OpenVMS Guide to System Security』 を参照してください。
例
次の例の SET QUEUE/PROTECTION コマンドでは,非特権ユーザからアクセスされることのないよう,SYS_QUE1 というキューの省略時の UIC に基づく保護設定を変更している。 そして,その後の SET SECURITY/ACL コマンドで,ULTRA_LITE または MINUTES 識別コードを持つプロジェクトのメンバのみキューにアクセスできるようにしている。 MINUTES 識別コードを持つユーザは,キューに対する読み込みアクセス権しか持たない。 SHOW QUEUE/FULL コマンドを使用して,機密保護情報も含めてキューに関する情報を表示することができる。
$ SET QUEUE/PROTECTION=(S,O,G,W)
$ SET SECURITY/CLASS=QUEUE SYS_QUE1 -
_$/ACL=((IDENTIFIER=ULTRA_LITE, ACCESS=READ+SUBMIT+MANAGE+DELETE), -
_$ (IDENTIFIER=MINUTES, ACCESS=READ+SUBMIT))
$ SHOW QUEUE/FULL SYS_QUE1
Batch queue SYS_QUE1, stopped
/BASE_PRIORITY=4 /JOB_LIMIT=1 /OWNER=[1,4] /PROTECTION=(S,O,G,W)
(IDENTIFIER=ULTRA_LITE,ACCESS=READ+SUBMIT+MANAGE+DELETE)
(IDENTIFIER=MINUTES,ACCESS=READ+SUBMIT)
次の例は,ACL を使用して特定のプロジェクト・グループのメンバに対するキュー・アクセスを制限する方法である。
$ SET QUEUE/PROTECTION=(S,O,G,W)
$ SET SECURITY/CLASS=QUEUE SYS_QUE1 -
_$/ACL=((IDENTIFIER=ULTRA_LITE, ACCESS=READ+SUBMIT+MANAGE+DELETE), -
_$ (IDENTIFIER=MINUTES, ACCESS=READ))
次の例は,UIC に基づく保護のみを持っているキューを表示し,ユーザ AGBELL に制御アクセス権を ACL と一緒に与える。 制御アクセス権を持ったユーザ AGBELL は機密保護情報を変更することができる。
$ SHOW SECURITY/CLASS=QUEUE TELEPHONE_QUEUE
TELEPHONE_QUEUE object of class QUEUE
Owner: [INVENTORS,AGBELL]
Protection: (System: M, Owner: MD, Group: R, World: S)
Access Control List: <empty>
$ SET SECURITY/CLASS=QUEUE/ACL=(ID=[AGBELL],ACCESS=CONTROL) TELEPHONE_QUEUE
$ SHOW SECURITY/CLASS=QUEUE TELEPHONE_QUEUE
TELEPHONE_QUEUE object of class QUEUE
Owner: [INVENTORS,AGBELL]
Protection: (System: M, Owner: MD, Group: R, World: S)
Access Control List:
(IDENTIFIER=[INVENTORS,AGBELL],ACCESS=CONTROL)
アカウント特権には,UIC や ACL に基づく保護に関係なくキューへのアクセスを可能にするものがあります。 次の表はそうしたアカウント特権と,それらの特権がキューに対して行えるアクセス・タイプをまとめたものです。
| 特権 | アクセス |
OPER |
すべてのキューに対する管理アクセス権と制御アクセス権 |
BYPASS |
すべてのキューに対する管理アクセス権と制御アクセス権 |
READALL |
すべてのジョブに対する読み込みアクセス権とキューの機密保護情報に対する読み込みアクセス権 |
SYSPRV |
システム UIC のユーザに対して指定されたアクセス権 |
GRPPRV |
システム UIC または グループ UIC のユーザに指定されたアクセス権 |
ジョブ保持オプションを使用すると,ユーザはジョブが完了した後も,
ジョブをキューに保持しておくことができます。
システム管理者はジョブ保持オプションを使用して,ジョブが完了した後,キューに登録されているすべてのジョブに関する情報を保存できます。
他のユーザが登録したジョブを追跡する場合は,この機能を使用すると便利です。
14.6.2.1 ジョブ保持の設定
ユーザはシステム管理者と同様に,ジョブ保持を設定できます。
この後の節では,ユーザとシステム管理者がこの作業をどのようにして実行できるかについて説明します。
ユーザ・コマンド
ユーザは PRINT コマンドまたは SUBMIT コマンドに /RETAIN 修飾子を指定することにより,ジョブが完了した後もジョブをキューに保持しておくことを要求できます。 次の例を参照してください。
PRINT/RETAIN
SUBMIT/RETAIN
システム管理者コマンド
省略時の設定では,キューに対してジョブ保持オプションは設定されません。 ジョブ保持オプションを指定するには,次のいずれかのコマンドを使用します。
INITIALIZE/QUEUE/RETAIN=option
START/QUEUE/RETAIN=option
SET QUEUE/RETAIN=option
| オプション | 説明 |
ALL |
|
ERROR |
次のコマンドでは,正常終了しなかったすべてのジョブをキューに残すよう指定しています。
$ SET QUEUE/RETAIN=ERROR BATCH_QUE
たとえば,特定のキューで正常終了しなかったすべてのバッチ・ジョブをオペレータが監視する必要がある場合は,ジョブ保持オプションを使用して,エラー終了したジョブをキューに残すよう指示することができます。 これによりオペレータは SHOW QUEUE コマンドを使用して, 異常終了したジョブのリストを表示することができます。 ジョブが正常終了しなかった場合には,このメッセージから,エラーが発生した理由を判断できます。 また,保持されていたジョブが完了した日付と時刻も表示されます。
キューに対してジョブ保持オプションを指定すると,そのキューのジョブに対してユーザが要求したジョブ保持オプションより優先します。
図 14-10
は,汎用キューに登録されたジョブに対して,
ジョブ保持機能がどのように影響するかを示しています。
図 14-10: ジョブ保持の決定
ジョブを削除しないかどうか,またジョブをどこに保持するかは, 次の項目で決まります。
ジョブが動作する実行キューに対する保持設定
汎用キューに対する保持設定 (ジョブが汎用キューに登録された場合)
ジョブの終了状態情報
ジョブをキュー登録後のユーザからの保持要求 (保持要求があった場合)
キューにジョブを保持した場合は,
保持する必要のなくなったジョブを定期的に削除するようにしてください。
14.6.2.2 ジョブ保持の期限の指定
ユーザはジョブ保持の期限を指定できます。 次の例を参照してください。
$ SUBMIT/RETAIN=UNTIL=19-MAY-2000:07:31:0.0 MYFILE.DAT
この機能を使えば,キューに保持したジョブを手作業で削除する必要はありません。
したがって,/RETAIN 修飾子を使用する場合は,ユーザにこの機能を使用させることをお勧めします。
14.6.2.3 ジョブの保持の変更
ジョブに対してユーザが指定した保持の原則を変更するには,次の形式で SET ENTRY コマンドに /RETAIN=オプション修飾子を指定します。
SET ENTRY/RETAIN=オプション エントリ番号
| オプション | 説明 |
ALWAYS |
ジョブの終了状態に関係なくキューにジョブを残す。 |
DEFAULT |
キューの保持オプションの指定通りにキューにジョブを残す (14.6.2 項 を参照)。 キューに保持オプションが設定されていない場合,ジョブは残されない。 |
ERROR |
ジョブが異常終了した場合にのみキューにジョブを残す。 |
UNTIL=時間 |
ジョブの終了状態に関係なく,指定された時間の間, キューにジョブを残す。 このオプションを使うことにより, 適当な時間だけキューにジョブを残し,後でジョブを削除する手間を省くことができる。 時間値は最初にデルタ時間, 次に複合時間,そして最後に絶対時刻と解釈される。 時間指定についての詳細は,『OpenVMS ユーザーズ・マニュアル』 を参照。 |
たとえば次のコマンドは,ジョブ終了後 3 時間を経過するまで 172 というジョブをキューに残します。 3 時間を経過したとき, ジョブは自動的に削除されます。
$ SET ENTRY/RETAIN=UNTIL="+3:00" 172
キューからジョブ保持オプションを削除するには,
INITIALIZE/QUEUE コマンド,START/QUEUE コマンド,または SET QUEUE コマンドに対して /NORETAIN 修飾子を指定します。
14.6.3 キュー特性の指定
特性とは,環境に関連するプリント・ジョブまたはバッチ・ジョブの属性です。 たとえば,プリンタの特性はインクの色,用紙の種類,プリンタの場所などです。 キューの特性を定義した後,ユーザは PRINT コマンドまたは SUBMIT コマンドを入力するときに,ジョブに関連付ける特性を指定できます。
ジョブの特性がキューが持っている特性の一部である場合には,プリント・ジョブを実行キューで処理できます。
しかし,ジョブに割り当てられた特性がキューに割り当てられていない場合には,14.8.2.2 項
で説明しているように,特性の不一致が修正されるまで,ジョブは保留されます。
作業方法
キュー特性を指定するには,次の操作を実行します。
DEFINE/CHARACTERISTIC コマンドを使用して特性を作成する。
特性をキューに割り当てる。
例
3 台の LN03 プリンタをビルの 4 隅でそれぞれ管理しています。 汎用キュー LN03$PRINT は各プリンタの実行キューにジョブを送ります。 EAST,WEST,NORTH,SOUTH という特性を定義できます。
ユーザが EAST 特性を使用してプリント・ジョブを LN03$PRINT に登録すると,そのジョブはビルの東側にある最初のアイドル状態の LN03 プリンタで印刷されます。
複数の階に設置されたプリンタのキューがシステムにある場合には,さらに各階に対して特性を定義できます。
たとえば,FIRST,SECOND,THIRD などの特性を定義できます。
キュー特性オプションを指定するためのコマンド
| コマンド | 説明 |
DEFINE/CHARACTERISTIC |
特性を作成して,名前と番号を割り当てる。 |
DELETE/CHARACTERISTIC |
特性を削除する。 |
SHOW QUEUE/CHARACTERISTIC |
システムに定義されている特性の情報を表示する。 |
INITIALIZE/QUEUE/CHARACTERISTICS SET QUEUE/CHARACTERISTICS START/QUEUE/CHARACTERISTICS |
キューのジョブを処理するための特性を指定する。 |
SHOW QUEUE/FULL |
キューに割り当てられた特性などのキュー情報を表示する。 |
PRINT/CHARACTERISTICS SUBMIT/CHARACTERISTICS SET ENTRY/CHARACTERISTICS |
ジョブに割り当てる特性の名前または番号を指定する。 |
以降の節では,キュー特性の指定の方法について説明します。
14.6.3.1 特性の定義
省略時の設定では,定義されている特性はありません。 特性を定義するためには,次の形式の DEFINE/CHARACTERISTIC コマンドを使用します。
DEFINE/CHARACTERISTIC 特性名 特性番号
1つの番号に対して複数の特性名を定義することはできません。
使用しているキュー構成で,1つの番号に対して複数の特性名が必要な場合には, 論理名を定義することにより,これを行うことができます。
OpenVMS Cluster 環境では,必要なすべてのノードで論理名を定義する必要があります。
注意
既存の論理名でもある特性名を定義したい場合には, 『OpenVMS ユーザーズ・マニュアル』 の論理名に関する記述を参照してください。
例
次の例では,特性名SECOND_FLOORが特性番号2に割り当てられています。 論理名SALES_FLOOR と SALES_DEPTは,特性名SECOND_FLOORと等価であるとして定義されています。 この結果,論理名SALES_FLOOR と SALES_DEPT は,特性名 SECOND_FLOORおよび特性番号2 と等価になります。 この論理名は,/CHARACTERISTIC=特性名 修飾子における 特性名値として指定することができます。
$ DEFINE/CHARACTERISTIC SECOND_FLOOR 2
$ DEFINE/SYSTEM/EXECUTIVE_MODE SALES_FLOOR SECOND_FLOOR
$ DEFINE/SYSTEM/EXECUTIVE_MODE SALES_DEPT SECOND_FLOOR
システムに定義されている特性を表示したい場合は,
次の例に示すように SHOW QUEUE/CHARACTERISTICS コマンドを使用します。
例
$ SHOW QUEUE/CHARACTERISTICS
Characteristic name Number
------------------- ------
EAST 1
WEST 2
NORTH 3
SOUTH 4
省略時の設定では,キューに特性は割り当てられていません。
特性をキューに割り当てるには,
INITIALIZE/QUEUE,START/QUEUE,または SET QUEUE コマンドに /CHARACTERISTICS 修飾子を指定します。
例
$ SET QUEUE/CHARACTERISTICS=(EAST) LN03_1
キューに定義されている特性を知りたい場合は,次の例に示すように DCL の SHOW QUEUE/FULL コマンドを使用します。
例
$ SHOW QUEUE/FULL LN03_1
Printer queue LN03_1, idle, on HERA::TTA3, mounted form DEFAULT
<Printer queue on node HERA for an LN03 printer>
/BASE_PRIORITY=4 /CHAR=(1) /DEFAULT=(FLAG=ONE,FORM=LN03$PORTRAIT
(stock=DEFAULT) ) /LIBRARY=LN03LIBRARY Lowercase
/OWNER=[SYSTEM] /PROCESSOR=LATSYM /PROTECTION=(S:M,O:D,G:R,W:R)
/SEPARATE=(RESET=(ANSI$RESET) )
キューに割り当てられた特性を取り消すには INITIALIZE/QUEUE, START/QUEUE, または SET QUEUE コマンドに /NOCHARACTERISTICS 修飾子を指定します。
14.6.3.6 特性の削除
特性の定義を削除する場合は,次の例に示すように DCL の DELETE/CHARACTERISTIC コマンドに特性名を指定します。
特性番号は分かっているが,特性名が分からないという場合は,SHOW QUEUE/CHARACTERISTIC コマンドを使用して, システムに定義されている特性名と特性番号を調べることができます。
キューまたはジョブが特性を参照している場合,システムからは次のメッセージが返されます。
%DELETE-E-NOTDELETED, error deleting characteristic
-JBC-E-REFERENCED, existing references prevent deletion
特性を削除するためには,特性に対する参照をすべて削除しておく必要があります。
特性に対する参照の削除については,
14.8.5 項
を参照してください。
14.6.4 バッチ処理オプションの指定方法
INITIALIZE/QUEUE,START/QUEUE,SET QUEUE のいずれかのコマンドでキュー・オプションを使用し,バッチ・ジョブの性能や, バッチ・ジョブを実行するプロセスのシステム資源の使用方法を制御することができます。
バッチ処理オプションの指定に使用可能な修飾子は次のとおりです。
また,バッチ処理オプションの指定では,次の修飾子を使用することもできます。 これらの修飾子は実際にはバッチ・キュー専用ではありませんが,バッチ・ジョブの性能や,バッチ・ジョブを実行するプロセスのシステム資源の使用方法を制御するための修飾子として使用されるのが普通です。
こうした制限値,クォータ,優先順位については,次のマニュアルを参照してください。
『OpenVMS DCL ディクショナリ』 の INITIALIZE/QUEUE コマンド
『Guide to OpenVMS Performance Management』(VAX用),『Guide to OpenVMS AXP Performance Management』(Alpha用)
省略時の設定では,バッチ・ジョブを実行するプロセスは,ジョブをキュー登録したユーザの UAF レコードの値か SYSGEN パラメータ設定値を使用します。 また,キュー・オプションに値が指定された場合は,ジョブのキュー登録時にユーザによる値の変更がないかぎり,キューに指定された値を使用します。 ユーザは,ジョブのキュー登録時, CPU 時間の他,省略時の値,クォータ,超過値などワーキング・セットのオプションを指定することができます。
ユーザが指定する値は,管理者がキューに対して設定した値より小さくなければなりません。 管理者が値を指定していない場合には, ユーザが指定する値は,関連する UAF の上限またはシステム・パラメータに指定された値より小さくなければなりません。
次に,これらのオプションの値を選択するときのガイドラインを説明します。
| オプション | 参照箇所 |
基本プロセス優先順位 |
|
ジョブ制限 |
|
ワーキング・セットの省略時設定,クォータ,超過値 |
|
CPU 時間の省略時の値と最大値 |
|
スワッピング |
|
メモリ制約付きシステム用のオプション |
|
Sort/Merge ユーティリティの最適化 |
優先順位値の選択は,バッチ・ジョブを処理したい速度に基づいて行ってください。 システム・パラメータ値 DEFPRI (通常は 4) に等しい値を選択した場合,キューのジョブは一般の会話型ジョブと同じレベルの速度で処理されます。 これは,CPU 時間が十分に使用できるシステムに適切です。
一方,DEFPRI より小さい値を選択した場合,キューのジョブの処理速度は一般の会話型ジョブと同程度になる可能性があります。 これは,DEFPRI 優先順位のジョブのサービスを終えた後しか,キューのジョブに CPU 時間が割り当てられないためです。
非常に特殊な目的で定義されたキューには,
つまり,高い優先順位のジョブには,DEFPRI より大きな値を割り当てます (5 など)。
ただし,このような割り当てをすると,他のユーザやバッチ・ジョブの性能に大幅な影響を及ぼすことがあります。
14.6.4.2 ジョブ制限
バッチ・ジョブは会話型ジョブの性能に影響を与えるので,DEFPRI
またはそれより高い基本プロセス優先順位を使用するときは,
ジョブ制限値を抑えてください。
14.6.4.3 ワーキング・セットの省略時の値とクォータ,超過値
ワーキング・セットに関するオプションが指定されなかった場合, キューのジョブには,所有者の利用者登録ファイル (UAF) レコードに指定された値が適用されます。
一般にワーキング・セットのクォータと超過値は, ユーザの UAF レコードに指定されている値で十分ですが, キューの用途によっては,値をもっと緩めたり, もっと厳しくしたりする必要が出てくることがあります。 たとえば,大きなプログラムのコンパイルやリンクなど,大きなジョブをバッチ・ジョブとして処理したり, 資源を多く必要としないジョブを会話形式で処理する場合などです。 そのような場合は,次のようにクォータと超過値を設定します。
バッチ・ジョブについては,バッチ・キューを作成するときに WSQUOTA と WSEXTENT に大きな値を指定することによって, ワーキング・セット・サイズを大きくする。
会話型ジョブについては,ユーザの UAF レコードの WSQUOTA と WSEXTENT 値を小さくすることによって,ワーキング・セット・サイズを小さくします。
CPU 制限値を設定することによって,ジョブが使用可能な CPU 時間を短くしたり,長くしたりすることができます。
CPU 時間制限値をあまり小さく設定しないでください。 CPU 時間制限値を超えたジョブはエラー終了します。 前の項で説明したように,ワーキング・セットの値が小さすぎても, メモリの使用効率が落ちるだけで,ジョブは正常に終了することができます。 しかし,CPU 時間制限値が小さすぎると,許可された範囲内で CPU を正しく使用しているジョブも途中終了してしまうことがあります。
たとえば,CPU ループに陥る可能性がある新しいソフトウェアの実行専用のバッチ・キューに,CPU 時間制限値を設定したと仮定します。 そうすることによって無限ループが終了するため, CPU 資源の無駄遣いになりません。 しかしながら,正常に動作しているジョブが途中終了することのないよう,制限値の選択には注意し,十分に大きな値にする必要があります。
CPU 資源の割り当てを制御するもう 1 つの方法は,1 日のうちで,
より多くの CPU 時間を割り当てることができるもっと負荷の少ない時間にジョブの実行を行う専用のバッチ・キューを作成することです。
14.6.4.5 スワッピング
一般に,バッチ・キューではスワッピングを有効にします。 ただし,非常に特殊な目的を持つ,優先順位の高いキューでは, 無効にした方がよいかもしれません。 オペレーティング・システムのスワッピングとトリミング機構を介して,プロセスからのメモリ再利用が必要になる時期を考える必要がなくなるため, キューのジョブに適した環境が実現されます。
詳細は『Guide to OpenVMS Performance Management』を参照してください。
14.6.4.6 メモリが制限されたシステムのためのオプション
メモリが制限されたシステムでは,すべてのバッチ・キューでバッチ・ワーキング・セットにとって必要なページの合計を求めます。 また,会話型ジョブに対して十分な流動メモリが残るようにしなければなりません。
流動メモリは,スワッピングやページングによって 1 つのプロセスから別のプロセスに再割り当てできます。
流動メモリは,総メモリから,
オペレーティング・システムに永久的に割り当てられたページ数を差し引いたときに残る容量から計算できます。
これらの値を求めるには,SHOW MEMORY コマンドを入力します。
14.6.4.7 SORT/MERGE ユーティリティ用バッチ・キューの最適化
ソートを行うジョブ専用のバッチ・キューを作成し,非常に大きなワーキング・セット・クォータを設定することによって, OpenVMS の SORT/MERGE ユーティリティの処理速度を向上させることができます。
また,プロセス割り当て量を設定することによって,最大の SORT 処理速度を実現することもできます。 ここで推奨する値は,単純に SORT の効率性だけを考慮したものです。 実際に適切な値を決定するにあたっては, その他の事項も考慮する必要があります。
1 プロセス当たりのワーキング・セット超過値 (WSEXTENT)
最高のソート速度を得るためには,INITIALIZE/QUEUE, START/QUEUE,SET QUEUE のいずれかのコマンドで /WSEXTENT 修飾子を使用し, ソート・ジョブが必要とすると思われる最大の超過値を設定する。 一般に,ワーキング・セットが小さいほど,ソートの効率は悪くなる。
バッチ・モードで大きいファイルをソートする場合には,ソートに対応できるように,WSEXTENT システム・パラメータの値を大きい値に設定する必要がある。
1 プロセス当たりの仮想ページ数(VIRTUALPAGECNT システム・パラメータ)
最高のソート速度を得るためには,最大ワーキング・セット超過値より VAX システムであれば少なくとも 1000 ページ,Alpha システムおよび I64 システムであれば少なくとも 1000 ページレット大きな値を VIRTUALPAGECNT システム・パラメータ値に設定すること。 この場合,ソート・データ構造はプロセスのワーキング・セット超過値の大きさに制限されるが, ワーク・ファイルが必要になると,SORT が I/O バッファ用にメモリを追加使用することができる。 ワーキング・セット超過値よりこのパラメータ値を小さくしすぎると,メモリ上でのファイルのソートが不可能になったとき,SORT がワーク・ファイル用のバッファを作成できないことがある。
14.6.4.8 リソース・アフィニティ・ドメイン (RAD) へのバッチ・キューの割り当て
NUMA 環境では,システム管理者が,バッチ・キューを特定のリソース・アフィニティ・ドメイン (RAD) に割り当てることができます (RAD についての詳細は,『パーティショニングおよび Galaxy ガイド』 を参照してください)。
RAD 値は,0 〜 SYI$_RAD_MAX_RADS の間にある正の整数です。 SHOW/QUEUE/FULL コマンドを実行すると,出力に RAD が表示されます。
この節では,コマンドのシーケンスとそれがバッチ・キューに与える影響について説明します。 それぞれの例では,SHOW コマンドを指定して,バッチ・キューを変更した結果を表示しています。
次の INITIALIZE/QUEUE コマンドは,QUEBID で実行されるようにバッチ・キュー BATCHQ1 を作成または再初期化する。 このキューに割り当てられたジョブはすべて,RAD 0 で実行される。
$
INITIALIZE/QUEUE/ON=QUEBID::/BATCH/RAD=0 BATCHQ1
$ SHOW QUEUE/FULL BATCHQ1
Batch queue BATCHQ1, stopped, QUEBID::
/BASE_PRIORITY=4 /JOB_LIMIT=1 /OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S)
/RAD=0
次の START/QUEUE コマンドは,割り当てられたすべてのジョブが QUEBID の RAD 1 で実行されるように BATCHQ1 を変更し,このキューがジョブを受け取って処理できるように開始する。
$
START/QUEUE/RAD=1 BATCHQ1
$ SHOW QUEUE/FULL BATCHQ1
Batch queue BATCHQ1, idle, on QUEBID::
/BASE_PRIORITY=4 /JOB_LIMIT=3 /OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S)
/RAD=1
次の SET/QUEUE コマンドは,割り当てられたジョブがすべて, QUEBID の RAD 0 で実行されるようにバッチ・キューを変更する。 このキューに割り当てられた新しいジョブは,RAD 0 で実行される。 キューですでに実行中のジョブは,古い RAD の値で最後まで実行される。
$
SET/QUEUE/RAD=0 BATCHQ1
$ SHOW QUEUE/FULL BATCHQ1
Batch queue BATCHQ1, idle, on QUEBID::
/BASE_PRIORITY=4 /JOB_LIMIT=3 /OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S)
/RAD=0
バッチ・キューに対する RAD の値を消去するには,SET/QUEUE/NORAD コマンドを使用する。
$
SET/QUEUE/NORAD BATCHQ1
$ SHOW QUEUE/FULL BATCHQ1
Batch queue BATCHQ1, idle, on QUEBID::
/BASE_PRIORITY=4 /JOB_LIMIT=3 /OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S)
バッチ・キューの RAD 値を変更しても,現在バッチ・キューに存在するジョブは,
キューに対して指定された新しい RAD 値 を反映して動的に更新されるわけではありません。
実行中のジョブは,元の RAD 値を使用して処理を完了します。
保留中,保持中,または時間指定実行の状態にあるジョブは,ジョブの古い RAD 値を維持します。
ただし,これらのジョブが実行可能になった時点で,ジョブが新しい RAD 値によって更新され,キューに指定された RAD で実行されます。
14.6.5 ジョブのスケジューリング優先順位の変更
キュー・マネージャは次の基準に従って,処理可能状態のバッチ・ジョブとプリント・ジョブのスケジューリング優先順位を決定します。
ジョブ・スケジューリング優先順位
キュー・マネージャは,ジョブのスケジューリング優先順位を調べ, 最も優先順位の高いジョブを最初に処理する。 ジョブ・スケジューリング優先順位は,基本プロセス優先順位や現在のプロセス優先順位とは異なる。 ユーザは PRINT や SUBMIT コマンドで /PRIORITY 修飾子を使用して,ジョブ・スケジューリング優先順位を指定することができる。
サイズ (任意,出力ジョブのみに適用)
省略時の設定では,キュー・マネージャは出力ジョブのサイズを調べ, スケジューリング優先順位が同じジョブについては,小さいジョブを先に処理する。
キューが /SCHEDULE=NOSIZE オプションを使用して作成,起動, または変更されている場合,ジョブのサイズはチェックされない。
登録時刻
スケジューリング優先順位が同じジョブについては,キュー登録時刻が早い方のジョブを先に処理する。
作業方法
ジョブ・スケジューリング・オプションを指定するには,次の操作を実行します。
ジョブのサイズを基準にして, プリント・ジョブの実行順序を設定するかどうかを指定する。
印刷するジョブに対して,ブロック制限を設定するかどうかを指定する。
ジョブ・スケジューリング・オプションのコマンド
ジョブ・スケジューリング・オプションを指定するコマンドを次に示します。
| コマンド | 説明 |
INITIALIZE/QUEUE/SCHEDULE=[NO]SIZE START/QUEUE/SCHEDULE=[NO]SIZE SET QUEUE/SCHEDULE=[NO]SIZE |
出力実行キューで保留中のジョブを,ジョブのサイズを基準にして印刷のためにスケジューリングするかどうかを指定する (短いジョブは長いジョブより前に印刷される)。 |
INITIALIZE/QUEUE/[NO]BLOCK_LIMIT= ([下限,]上限) START/QUEUE/[NO]BLOCK_LIMIT= ([下限,]上限) SET QUEUE/[NO]BLOCK_LIMIT= ([下限,]上限) |
出力実行キューで処理できるプリント・ジョブのサイズを制限する。 |
PRINT/PRIORITY=n SUBMIT/PRIORITY=n SET ENTRY/PRIORITY=n |
プリント・ジョブのジョブ・スケジューリング優先順位を指定する。 n の値は0 〜 255 である。 ただし,0 は最低の優先順位であり,255 は最高の優先順位である。 |
14.6.5.1 ジョブ・スケジューリング優先順位とサイズの制限の設定
この節では,ジョブの印刷の優先順位とサイズの設定方法について説明します。
サイズを基準にしたジョブの優先順位の付け方
サイズをもとにジョブの優先順位を付けるには, INITIALIZE/QUEUE,START/QUEUE,または SET QUEUE コマンドに /SCHEDULE=SIZE 修飾子を指定します (/SCHEDULE=NOSIZE 修飾子を指定すると,ジョブはサイズとは無関係に, キューに登録された順に印刷されます)。
次の例では,/SCHEDULE=SIZE (省略時の設定) が使用されているため, プリント・キュー LPA0_PRINT で短い(サイズの小さい)ジョブが長い(サイズの大きな) ジョブより前に印刷されます。
$ INITIALIZE/QUEUE/SCHEDULE=SIZE LPA0_PRINT
保留中のジョブがキューに登録されているときに,このコマンドを入力すると,
この後登録されるジョブに対してコマンドがどのように影響するかは予測できません。
ジョブのサイズの制限方法
プリント・ジョブのサイズを制限するには, INITIALIZE/QUEUE,START/QUEUE,または SET QUEUE コマンドに /BLOCK_LIMIT 修飾子を指定します。 省略時の設定では,プリンタ・キューとターミナル・キューはブロック制限を付けずに作成されます。 したがって,どのようなサイズのジョブも印刷されます。 上限だけを指定することも,上限と下限の両方を指定することもできます。
次の例では,LPB0_PRINT のブロック・サイズは 50 に制限されているため,このキューは 51 ブロックより小さいジョブ専用に使用されます。
$ INITIALIZE/QUEUE/BLOCK_LIMIT=50 LPB0_PRINT
1 日の特定の時間帯だけ,ジョブのサイズを制限しなければならないことがあります。
たとえば,午前 8 時 00 分にキューの最大ブロック・サイズを 500 ブロックに制限するコマンド・プロシージャを実行するバッチ・ジョブをキューに登録できます。
コマンドの実行後にこのコマンドプロシージャ自身をキューに再登録するように作成しておけば毎日午後 5:00 分以降に,ブロックの制限を解除することができます。
このようにすると,通常の勤務時間が終了した後,印刷の作業負荷が軽減されたときに,ユーザはどのようなサイズのジョブも印刷できるようになります。
特定の時刻以降にジョブを印刷することを指定するには,PRINT コマンドに /AFTER 修飾子を指定します。
14.6.5.2 ジョブのスケジューリング優先順位の変更
バッチ・ジョブやプリント・ジョブを処理できない場合には,そのジョブは保留状態になり,保留状態になった原因が解決されるまで処理されません。 詳細は 14.8.2 項 を参照してください。
ジョブのスケジューリング優先順位を変更するには,次の形式で SET ENTRY コマンドに /PRIORITY 修飾子を指定します。
SET ENTRY/PRIORITY=n エントリ番号
次の例では,ジョブのスケジューリング優先順位を 50 に変更します。
$ SET ENTRY/PRIORITY=50 1131
ジョブのスケジューリング優先順位と,キューの基本プロセス優先順位を混同しないでください。
ジョブのスケジューリング優先順位の値は 0 〜 255 の範囲です。
ただし,0 は最低の優先順位であり,255 は最高の優先順位です。
ジョブのスケジューリング優先順位を示す /PRIORITY の省略時の値は,
システム・パラメータ DEFQUEPRI の値です (通常は 100 に設定されます)。
14.6.6 バナー・ページ
バナー・ページ とは,キューに対して設定できる,特殊な形式のページであり,印刷を終了するときに出力ジョブを識別し,ジョブの区切りを確認するのに役立ちます。 また,バナー・ページはジョブに複数のジョブがある場合にそれらのファイルを区切り,識別するのにも役立ちます。
バナー・ページには次の 2 種類があります。
ジョブ・ページは,ジョブを識別し, 分離するバナー・ページである。
ファイル・ページは,ジョブ内の ファイルを識別し,分離するバナー・ページである。
ほとんどのサイトでは,使用可能なバナー・ページのうち,その一部だけしか使用しません。 次の表は使用できるバナー・ページのタイプを示しています。
| タイプ | 説明 | 参照箇所 |
| ジョブ・ページ | ||
フラグ・ページ |
各ジョブの前にプリントされる 1 枚のページ | 図 14-11 |
バースト・ページ |
各ジョブの前にプリントされる,区切りバー (バースト・バー) で区切られた 2 枚のフラグ・ページ | 図 14-11 |
トレーラ・ページ |
各ジョブの最後にプリントされる 1 枚のページ | 図 14-13 |
| ファイル・ページ | ||
フラグ・ページ |
ジョブの各ファイルの前にプリントされる 1 枚のページ |
|
バースト・ページ |
ジョブの各ファイルの前にプリントされる,区切りバー (バースト・バー) で区切られた 2 枚のフラグ・ページ |
|
トレーラ・ページ |
ジョブの各ファイルの最後にプリントされる 1 枚のページ |
注意
プリンタの出力ページをバーストする必要がない場合,たとえばプリンタでカット紙を使用している場合には,バースト・ページ・オプションは使用しないでください。 通常,ジョブの最後を識別するには, フラグ・ページだけか,またはフラグ・ページとトレーラ・ページだけで十分です。
ジョブ・フラグ・ページ,ファイル・フラグ・ページ,
ジョブ・トレーラ・ページ,ファイル・トレーラ・ページの詳細は表 14-2
を参照してください。
表 14-2: ファイル・ページとジョブ・ページの内容
| 項目 | 説明 |
ヘッダ・バー |
次のもので構成されるセグメント化されたバー。 ジョブ・フラグ・ページ: 次のもので構成されるシングル・セグメント・バー。
ファイル・フラグ・ページ: 次のもので構成される 3 セグメント・バー。
ジョブ・トレーラ・ページ: 次のもので構成される 3 セグメント・バー:
ファイル・トレーラ・ページ: 次の要素で構成される 5 セグメント・バー。
|
注記 |
PRINT/NOTE コマンドを使用してユーザが指定する 255 文字以内の文字列。 |
識別バナー |
ジョブを登録したプロセスのユーザ名, ジョブ名,ジョブ番号を印刷する。 |
修飾子句 (ファイル・トレーラ・ページのみ) |
ジョブがキューに登録されたときにアクティブだったプリント修飾子,キュー修飾子,フォーム修飾子を印刷する。 アクティブでなかった修飾子は印刷しない (ただし,/NORECORD_BLOCKING と /NOFEED は例外である)。 |
ファイル文 (ファイル・フラグ・ページとファイル・トレーラ・ページのみ) |
次の情報を示す。
|
受信ボックス (ジョブ・トレーラ・ページのみ) |
Received:,Date:,Operator: というサインオフ・フィールドを印刷する。 |
ジョブ文 |
次の情報を示す。
|
フッタ・バー |
次の要素で構成されるセグメント化されたバー: ジョブ・フラグ・ページ: ジョブ・フラグ・ヘッダ・バーと同一であるが, システム論理名 (PSM$ANNOUNCE) の定義は埋め込み文字列として使用されない。 埋め込み文字列として常に省略時のテキストが使用される。 ファイル・フラグ・ページ: ファイル・フラグ・ヘッダ・バーと同一であるが,埋め込みテキスト文字列は "Compaq Computer Corporation" とオペレーティング・システムのバージョン番号である。 ジョブ・トレーラ・ページ: ジョブ・フラグ・ヘッダ・バーと同一であるが, システム論理名 (PSM$ANNOUNCE) の定義は埋め込み文字列として使用されない。 ファイル・トレーラ・ページ: ファイル・フラグ・ヘッダ・バーと同一であるが, 埋め込みテキスト文字列は "Compaq Computer Corporation" とオペレーティング・システムのバージョン番号である。 |
ルーラ (ファイル・トレーラ・ページとジョブ・トレーラ・ページのみ) |
フォームの最後までカウントした一連の数字。 |
図 14-11
は,
ジョブのフラグ・ページとバースト・ページの例です。
図 14-12
は,ファイル・フラグ・ページとファイル・バースト・ページの例です。
図 14-13
は,ファイル・トレーラ・ページとジョブ・トレーラ・ページの例です。
図 14-11: ジョブのフラグ・ページとバースト・ページ
図 14-12: ファイルのフラグ・ページとバースト・ページ
ファイルとジョブのバナー・ページでサポートされているフォームのサイズは,幅が 40 文字以上,200 文字以下,長さが 40 文字以上です。 200 文字を超える幅のページが要求された場合は, 書式整形されて,200 文字の幅でプリントされます。 長さが 40 文字より短いページが要求された場合は,40 文字のしきい値を超えるまで拡張されます。 バナー・ページの書式整形では,マージンは考慮されません。
注意
バナー・ページの情報は常に,省略時のフォーム・サイズの 80 文字 X 51 行に合わせて書式整形されます。 このため,指定フォーム・サイズによっては,一部情報が捨てられることがあります。 行およびページあふれの制御については,14.6.7.8 項 で説明します。
バナー・ページを指定するコマンド
バナー・ページに関する操作で使用するコマンドは次のとおりです。
プリント・フォームは,特定のページ書式設定属性 (マージン,ページ長, 行の折り返しなど) を指定します。 また,フォーム定義に指定された用紙ストックは,ジョブが印刷に適しているかどうかを判断するときに使用されます。
OpenVMS では,次のいずれかを使用できます。
システム単位の省略時のフォーム
印刷に関する必要条件が限定されている場合には,すべてのキューに対してシステム単位の 省略時のフォーム (フォーム名 DEFAULT) を使用する。 システム単位の省略時のフォームは必要に応じて変更できる。
ユーザが作成して特定のキューに割り当てるフォーム
出力の書式を設定したり,特殊な用紙を指定するには,カスタマイズしたフォームを作成できる。 ユーザはジョブをキューに登録するときに,そのフォームを指定することにより,プリント・ジョブに対して使用するフォームを要求できる。
フォームのマウント
フォームのストックは,ジョブが印刷に適しているかどうかに影響します。 ストックはキューの マウントされたフォームと一致しなければなりません。 マウントされたフォームとは,現在のジョブのフォーム, またはジョブが処理中でないときは,キューで最後に印刷されたジョブのフォームです。
ジョブのフォームのストックが,キューにマウントされているフォームのストックと一致する場合には,そのジョブはジョブのフォームのオプションを使用して処理されます。
マウントされたフォームは,キューで処理されているジョブのフォームに自動的に変化します。
ストックがマウントされたフォームのストックと一致しない場合には,管理者が特別な処理を実行するまで,ジョブは保留状態になります (14.6.7.6 項
を参照)。
フォームを指定するコマンド
| コマンド | 説明 |
DEFINE/FORM |
フォームを作成して,名前と番号を割り当てる。 |
SHOW QUEUE/FORM/FULL |
システムに定義されているフォームの情報を表示する。 |
DELETE/FORM |
フォームを削除する。 |
INITIALIZE/QUEUE/DEFAULT=FORM START/QUEUE/DEFAULT=FORM SET QUEUE/DEFAULT=FORM |
出力実行キューの省略時のフォームの名前か番号を指定する。 |
PRINT/FORM SET ENTRY/FORM |
プリント・ジョブに割り当てる省略時のフォームの名前か番号を指定する。 |
INITIALIZE/QUEUE/FORM_MOUNTED START/QUEUE/FORM_MOUNTED SET QUEUE/FORM_MOUNTED |
出力実行キューのマウント・フォームの名前か番号を指定する。 |
SHOW QUEUE/FULL |
キューの省略時のフォームやマウント・フォームなどのキュー情報を表示する。 |
システム単位の省略時の設定のフォームまたはカスタマイズされたフォーム
システム単位の省略時のフォームを全く変更せずに使用する場合は, 特別な処理は何も必要ありません。 システムはすべてのキューに対して, システム単位の省略時のフォームである DEFAULT を自動的に使用します。
しかし,省略時のフォームを変更する場合には,そのフォームを参照するキューを作成する 前に変更しなければなりません。 変更方法については,14.6.7.3 項 を参照してください。
カスタマイズしたフォームを作成するには, 14.6.7.4 項 で説明している手順を実行します。
この後の節では,すべてのフォーム,システム単位の省略時のフォーム, カスタマイズしたフォームに対して,これらの作業を実行する場合のガイドラインを示します。
| 作業 | フォームの種類 | 参照箇所 |
システムで定義されているフォームの表示 |
すべてのフォーム |
|
キューに割り当てられているフォームの表示 |
すべてのフォーム |
|
システム単位の省略時のフォームの変更 |
省略時のフォーム |
|
フォームの作成 |
カスタマイズされたフォーム |
|
キューの省略時のフォームの割り当て |
カスタマイズされたフォーム |
|
キューでのフォームのマウント |
カスタマイズされたフォーム |
|
フォームの削除 |
カスタマイズされたフォーム |
|
行とページのあふれの制御 |
すべてのフォーム |
|
初期改ページの禁止 |
すべてのフォーム |
システムに定義されているフォームの情報を表示したい場合は,
SHOW QUEUE/FORM/FULL コマンドを使用します。
フォーム名が分かっている場合は,次の例に示すようにそのフォーム名を指定してください。
例
$ SHOW QUEUE/FORM/FULL MEMO
Form name Number Description
--------- ------ -----------
MEMO (stock=DEFAULT) 110 LN03 indented memo format
/LENGTH=66 /MARGIN=(TOP=2,BOTTOM=2,LEFT=5) /STOCK=DEFAULT /TRUNCATE
/WIDTH=80
キューの省略時のフォームを表示するには,SHOW QUEUE/FULL コマンドを入力します。
例
次の例では,省略時のフォームは REPORT であり,そのストックは 8_5x11 です。 このキューで処理されるジョブのうち,PRINT コマンドでフォーム定義が指定されていないジョブはすべて,省略時のフォーム REPORT を使用します。 マウントされたフォームのストックが省略時のフォームのストックと一致する場合には,フォーム定義を指定せずにこのキューに登録されたすべてのジョブは,スケジューリングされて印刷されます。
$ SHOW QUEUE/FULL JEAN_PRINT
Printer queue JEAN_PRINT, idle, on BAY::TTA3:, mounted form 8_5x11
<Queue for printer in Jean's office>
/BASE_PRIORITY=4 /DEFAULT=(FEED,FORM=REPORT (stock=8_5X11) ) /OWNER=[SYSTEM]
/PROTECTION=(S:M,O:D,G:R,W:R)
/DEFAULT=FORM 修飾子を使用せずに初期化したキューでは, フォーム定義が指定されていないプリント・ジョブを処理するために, システム単位の省略時のフォームが使用されます。 システム単位の省略時のフォームはフォーム番号 0 に対応し,次のオプションを使用します。
/MARGIN=(BOTTOM=6)
/STOCK=DEFAULT
/TRUNCATE
/WIDTH=132
/LENGTH=66
これらのオプションについては表 14-3を参照してください。
システム単位の省略時のフォームを変更するには,次の形式で DEFINE/FORM コマンドを使用します。
DEFINE/FORM DEFAULT 0 /修飾子
例
省略時の下マージンを 6 から 4 に変更し,ページ長を 66 から 55 に変更するには,次のコマンドを入力します。
$ DEFINE/FORM DEFAULT 0/MARGIN=(BOTTOM=4)/LENGTH=55
注意
キューまたはジョブでフォームを参照した後,そのフォームのストックを変更することはできません。 省略時のフォームのストックを変更するときは, キューを作成する前に変更してください。
カスタマイズしたフォームを作成するには,次の操作を実行します。
次の形式で DEFINE/FORM コマンドを入力する。
DEFINE/FORM フォーム名 フォーム番号 [/修飾子]
各出力実行キューに対して省略時のフォームを割り当てる。 14.6.7.5 項 で説明するように, INITIALIZE/QUEUE,START/QUEUE,SET QUEUE コマンドのいずれかに /DEFAULT=FORM=種類修飾子を指定する。
省略時のフォームをキューに割り当てなかった場合には,キューはシステム単位の省略時のフォームを使用する。
使用できるフォームと,そのフォームを使用するキューをユーザに通知する。 必要に応じて,PRINT コマンドにフォームを自動的に指定できるようにシンボルを作成できる。 次の例を参照。
$ PRINT_REPORT :== PRINT/FORM=REPORT
フォームを作成する場合には,表 14-3
に示した修飾子を指定できます。
表 14-3: DEFINE/FORM 修飾子
| 修飾子 | 働き |
/WIDTH=n |
|
/LENGTH=n |
用紙の物理的な長さを示す文字数を指定する。 |
/[NO]TRUNCATE |
/WIDTH と /MARGIN 値で決まる行幅を超えた文字を廃棄するよう指定する (14.6.7.8 項 を参照)。 |
/[NO]WRAP |
/WIDTH と /MARGIN 値で決まる行幅を超えた文字を次行送りするよう指定する (14.6.7.8 項 を参照)。 |
/MARGIN= (オプション=n[,...]) |
マージンの空白スペース数を指定する。 マージンは BOTTOM,LEFT,RIGHT,TOP の 4 つ。 |
/[NO]PAGE_SETUP= (モジュール[,...]) |
各ページの始まりで装置を設定する装置制御モジュールを指定する (14.6.8.4 項 を参照)。 |
/SETUP=(モジュール[,...]) |
各ファイルの始まりで装置を設定する装置制御モジュールを指定する (14.6.8.4 項 を参照)。 |
/[NO]SHEET_FEED |
新しい用紙を挿入できるよう,各物理ページの終わりでのプリント・ジョブの一時停止を指定する。 |
/STOCK=文字列 |
フォームに対応付ける用紙ストックのタイプを指定する。 |
/DESCRIPTION=文字列 |
フォームに関する情報を提供する文字列を指定する。 |
用紙ストックを変更せずに,書式オプションを変更するだけの目的でフォームを作成する場合は,個々のフォームについて同じストック・タイプを指定してください。 そのように指定しておけば,それらのフォームのどれをジョブが必要としても, キューを変更するためのコマンドを入力する必要がなくなり,同じキューでプリントが行われます。
/STOCK 修飾子を使用しないかぎり,フォームのストックはフォーム名と同じです。
注意
論理名でもあるフォーム名を定義するときは, 『OpenVMS ユーザーズ・マニュアル』 の論理名に関する記述を参照してください。
例
次は,フォーム名を MEMO,フォーム番号を 3,でフォームを定義している例です。 フォームの書式オプションも定義しています。
$ DEFINE/FORM MEMO 3/STOCK=DEFAULT -
_$ /MARGIN=(TOP=2,BOTTOM=2,LEFT=6)/WIDTH=80/LENGTH=66/TRUNCATE -
_$ /DESCRIPTION="LN03 indented memo format"
PRINT コマンドによるキュー登録時に /FORM 修飾子が指定されなかった場合, ジョブは,それが置かれている実行キューの省略時のフォームを使用します。
出力実行キューに省略時のフォームを割り当てる場合は, INITIALIZE/QUEUE,START/QUEUE,SET QUEUE のいずれかのコマンドに,次の形式で /DEFAULT 修飾子を使用します。
注意
キュー登録時に特定のフォームの要求がないかぎり,プリント・ジョブへのキューの省略時のフォームの割り当ては,ジョブの処理時に行われます。 したがって,/FORM 修飾子を指定せずに汎用キューにジョブが登録された場合は,実行キューに転送されるまで,ジョブにフォームが割り当てられることはありません。
省略時のフォームが設定されていない場合,キューはシステム単位の省略時のフォームの DEFAULT を使用します。
例
次の例では,SET QUEUE コマンドは LN03_PRINT キューの省略時のフォームを LN03_PORTRAIT に変更します。
$ SET QUEUE/DEFAULT=FORM=LN03_PROTRAIT LN03_PRINT
キューへのフォームのマウントは,INITIALIZE/QUEUE,START/QUEUE, SET QUEUE のいずれかのコマンドに, 次の形式で /FORM_MOUNTED 修飾子を使用することによって行います。
INITIALIZE/QUEUE/FORM_MOUNTED= タイプ
タイプはDEFINE/FORM コマンドで定義されるフォーム名または番号です。
ストックが一致しないためにプリント・ジョブが保留状態になっている場合には,プリンタのストックを要求されたストックに変更し,
要求されたストックに関連付けられたフォームをキューにマウントするか,または
14.8.2.1 項
で説明している他のいずれかの処理を実行します。
14.6.7.7 フォームの削除
定義済みのフォームを削除する場合は,次の例に示すように DCL の DELETE/FORM コマンドを使用します。
$ DELETE/FORM MEMO
DELETE/FORM コマンドには,フォーム番号ではなく, フォーム名を指定する必要があります。 フォーム番号は分かっているが,フォーム名が分からないという場合は, SHOW QUEUE/FORM コマンドを使用して,システムに定義されているフォーム名とフォーム番号を調べることができます。
キューまたはジョブがフォームを参照している場合,システムからは次のメッセージが返されます。
%DELETE-E-NOTDELETED, error deleting form-name
-JBC-E-REFERENCED, existing references prevent deletion
フォームを削除するためには,フォームに対する参照をすべて削除しておく必要があります。
フォームに対する参照の削除については,14.8.5 項
を参照してください。
14.6.7.8 ページあふれ制御オプションと行あふれ制御
プリント・シンビオントが整形しても,行やページの長さがプリンタの行幅やページ長を超えることがあります。
そうした場合は,キュー・オプションを使用して,行あふれやページあふれを制御することができます。
行あふれの制御
行あふれは,フォーム定義で制御することをお勧めします。 このためには,物理的な装置幅の限界に達する前に行送りや行切り詰めを行わないよう, ターミナルとプリンタを設定する必要があります。
注意
プリント・シンビオントはフォームに基づいて行幅を決定します。 プリント・シンビオントがデータの書式整形を終えた後, 行幅が装置の/WIDTH 設定より広い場合は, /TRUNCATE か /WRAP オプションが設定されていればその設定を使用して, デバイス・ドライバは行の切り詰めか行送りを行います。
左右と上下マージンの設定は,フォームごとに変えることができます。 そしてユーザは,フォームを使ってページあふれと行あふれを制御することにより, 別のフォームに切り換えることができます。 このときオペレータがキューを停止させて,装置の設定を変更し, 再度キューを起動させるという必要はありません。 キュー・マネージャは, 現在マウントされているフォームと同じストックを使って自動的に任意のフォームをマウントします。 オペレータ支援が必要になるのは,現在マウントされているフォームのストックと, 異なるストックのフォームをマウントする場合だけです。 詳細は14.8.2.1 項 を参照してください。
行あふれを制御したい場合は,DCL の DEFINE/FORM コマンドでフォームを作成するときに,表 14-3
で説明されている /[NO]TRUNCATE と /[NO]WRAP の修飾子を指定します。
ページあふれ
ページあふれを制御する場合は,INITIALIZE/QUEUE,START/QUEUE, または SET QUEUE コマンドで /DEFAULT=[NO]FEED 修飾子を使用します。 この修飾子は,シンビオントがデータの下マージン部分へのあふれを検出したときに,改ページ文字を自動的に挿入するかどうかを制御します。 ユーザは,PRINT/FEED または PRINT/NOFEED コマンドを使用して, キューに指定された改ページ・オプションの省略時の設定を変更できます。
ユーザはまた,PRINT コマンドに /PASSALL 修飾子を指定して,
プリント・シンビオントが行うあらゆるフォーマッティング処理(改行を含む)をバイパスできます。
省略時の設定は /NOPASSALL です。
/PASSALL 修飾子は,プリント・シンビオントによるフォーマッティングが希望するフォーマッティングと異なる場合に使用してください。
/PASSALL 修飾子を使用すると,すべてのフォーマッティングを上書きして,
プリント・シンビオントはデバイス・ドライバに入出力を送ります。
14.6.7.9 初期改ページの抑制
プリント・キューを開始すると,改ページが出力装置に送られて,印刷が始まる前に,用紙がページの一番先頭にくるように設定されます。 初期改ページのために,キュー開始時に,空白のページが印刷されます。
初期改ページを実行しないようにするには,INITIALIZE/QUEUE,
SET QUEUE,START/QUEUE コマンドのいずれかに /NO_INITIAL_FF 修飾子を指定します。
14.6.8 装置制御ライブラリ
装置制御ライブラリは,ユーザが作成したテキスト, またはエスケープ・シーケンスのモジュールから構成されるテキスト形式のライブラリです。 装置制御ライブラリ・モジュールを使用すると,次の操作を実行できます。
ポイント・サイズ,文字セット,太字やイタリック体プリントなどのプリント・オプションを設定する装置独立型エスケープ・シーケンスの挿入 (プログラミング可能なプリンタのみ)
プリント・ジョブ処理時の特定ポイントへのテキスト挿入 (プログラミング可能なプリンタとプログラミング不可能なプリンタの両方)
装置制御モジュールは次の 3 種類あり,それぞれプリント・ジョブ内での位置によって区別されます。
| モジュール・タイプ | 説明 |
SETUP モジュール |
ファイルの先頭に挿入。 |
PAGE_SETUP モジュール |
各ページの先頭に挿入。 |
RESET モジュール |
各ジョブの終わりに挿入。 ジョブの最後でプリンタを既知状態に再設定するときに使用する。 |
作業方法
装置制御ライブラリ・オプションを使用する手順は次のとおりです。
ライブラリを作成して,モジュールを登録する。
キューに装置制御ライブラリを割り当てる。 省略時のライブラリ名 SYSDEVCTL.TLB を使用する場合,このステップは必要ない。
キューに再設定モジュールを割り当てる。
プリント・ジョブを処理するために, 装置制御ライブラリ・モジュールをセットアップするコマンドを次に示します。
キューに割り当てられた再設定モジュール (再設定モジュールは,キュー起動後に最初のジョブをプリントしたこの時点で初めて使用される。)
フォーム定義に指定された設定モジュール
フォーム定義に指定されたページ設定モジュール
PRINT コマンドで指定された設定モジュール
ファイル 1 の 1 ページ目
フォーム定義に指定されたページ設定モジュール
ファイル 1 の 2 ページ目以降
フォーム定義に指定されたページ設定モジュール
ファイル 1 の最終ページ
フォーム定義に指定された設定モジュール
フォーム定義に指定されたページ設定モジュール
PRINT コマンドで指定された設定モジュール
ファイル 2 の 1 ページ目
フォーム定義に指定されたページ設定モジュール
ファイル 2 の 2 ページ目以降
フォーム定義に指定されたページ設定モジュール
ファイル 2 の最終ページ
キューに割り当てられた再設定モジュール
以降の節では,装置制御ライブラリの管理方法を説明します。
14.6.8.2 装置制御ライブラリの作成とモジュールの登録
装置制御ライブラリの作成とモジュールの登録は,次の手順で行います。
次の形式で LIBRARY/CREATE コマンドを入力して, 装置制御ライブラリを作成する。
LIBRARY/CREATE/TEXT SYS$COMMON:[SYSLIB] ファイル名.TLB
モジュールの内容,すなわち,登録するテキスト,または目的のプリンタの設定に必要なエスケープ・シーケンスを決定する。 プリンタ・オプションの正しいエスケープ・シーケンスを確認したい場合は,目的のプリンタの操作手引書を参照すること。
モジュール・ファイルを作成して,エスケープ・シーケンス, キャリッジ制御文字,テキストを入力する。 モジュール・ファイルの作成および編集方法は,通常のテキスト・ファイルを作成および編集する方法と同じである。 ファイルの最後にキャリッジ・リターンや行送りが入らないようにすること。 そうした文字が入ると,プリンタの出力に影響する。
次の形式の LIBRARY/INSERT コマンドを入力して, 装置制御ライブラリに作成したモジュールを登録する。
LIBRARY/INSERT/TEXT ライブラリ・ファイル モジュール・ファイル
注意
ライブラリに対するモジュールの登録または削除は, ライブラリに割り当てられているすべての出力キューを停止してから行う必要があります。
ライブラリの作成とモジュールの登録のさらに詳しい内容については,
『OpenVMS Command Definition, Librarian, and Message Utilities Manual』 を参照してください。
14.6.8.3 キューへのライブラリの割り当て
装置制御ライブラリをキューに割り当てるためには, INITIALIZE/QUEUE か START/QUEUE コマンドに, 次の形式で /LIBRARY 修飾子を指定します。
INITIALIZE/QUEUE/LIBRARY=ファイル名 キュー名
ファイル名は,使用したいモジュールが入っているライブラリ・ファイル名です。
ライブラリは SYS$LIBRARY に存在し, ファイル・タイプが .TLB である必要があります。 /LIBRARY 修飾子が省略された場合は,省略時のライブラリのSYS$LIBRARY:SYSDEVCTL.TLB になります。 これ以外の装置制御ライブラリを使用する場合は,次の例に示すように /LIBRARY 修飾子を使用してください。
$ INITIALIZE/QUEUE/LIBRARY=LN03DEVCTL LN03_A_QUE
注意
/LIBRARY 修飾子を使用する場合,ディレクトリ,ファイル・タイプ, バージョン番号は指定しないでください。 システムは,ファイルが SYS$LIBRARY に存在し,タイプが.TLB であると見なします。 別のノードのライブラリ・ファイルをコピーして使用する場合は, 必ず一意のファイル名を付けてください。
特定の装置制御ライブラリ・モジュールが必要な操作では, キューに指定されたライブラリの該当するモジュールが使用されます。 ライブラリを使用する場合には,次のガイドラインに従ってください。
プリンタの構成が小さく,通常はわずかな数のモジュールだけしか使用しない場合には,すべてのモジュールを 1 つのライブラリに格納し, 各プリンタ・キューに対して同じライブラリを割り当てる。
1 つのライブラリを使用して異なるタイプのプリンタのモジュールを格納する場合には,各モジュールに一意な名前を付けなければならない。
異なる種類のプリンタを数多く使用しているサイトの場合は, 各タイプのプリンタに対して別々に装置制御ライブラリを作成し,割り当てる。 この場合,各モジュールにはそれぞれのタイプのプリンタ固有のエスケープ・シーケンスが格納されるが,同じ機能を実行するモジュールには, すべてのライブラリで同じ名前を付けることが望ましい。
例
3 つのライブラリに横長方向にプリンタを設定するモジュールが格納されている場合,これらのモジュールには 3 つのすべてのライブラリで LANDSCAPE という名前を付けます。 このようにしておくと,それぞれのモジュールには異なる装置固有のシーケンスが格納されますが, ライブラリに指定した名前のモジュールが格納されているどのキューに対しても,同じフォームを使用できます。
特定のライブラリに格納されているすべてのモジュールを表示するには, 次のコマンドを使用します。
LIBRARY/LIST/FULL SYS$LIBRARY: ライブラリ名 .TLB
14.6.8.4 設定モジュールとページ設定モジュールを使用したフォームの定義
キューに対して設定モジュールまたはページ・セットアップ・モジュールを指定するためには,DEFINE/FORM コマンドに /SETUP=モジュール修飾子, または/PAGE_SETUP=モジュール修飾子を指定します。 /SETUP 修飾子に指定したモジュールは,ジョブの各ファイルのプリント前, フォームがマウントされたときにプリンタに送られます。 同様に,/PAGE_SETUP 修飾子に指定したモジュールは, ジョブの各ページのプリント前にプリンタに送られます。
ユーザは,PRINT コマンドに次のいずれかの修飾子を指定することにより, モジュールを要求できます。
PRINT/FORM=フォーム /QUEUE=キュー名 ファイル指定
次の形式の /SETUP 修飾子。
PRINT/SETUP=モジュール ファイル指定
ユーザが PRINT/SETUP コマンドを入力すると,ジョブが印刷されるまで, モジュール名は確認されない。 モジュール名に誤りがある場合には, ジョブは印刷されず,/NOTIFY 修飾子を指定した場合を除き,そのことはユーザに通知されない。
出力実行キューにモジュールを割り当て,各ジョブの最後にプリンタを既知状態に再設定したい場合は,次の例に示すように, INITIALIZE/QUEUE,START/QUEUE,SET QUEUE のいずれかのコマンドに, /SEPARATE=RESET=モジュール 修飾子を使用します。
/SEPARATE 修飾子は必須キュー・オプションを指定するため,
指定された RESET モジュールは,あらゆるジョブの最後にキューに送られます。
ユーザがこのオプションを変更することはできません。
例
次の例では,モジュールに含まれている再設定シーケンスにより, 各ジョブの最後でプリンタは再設定されます。 また,最初のジョブが正しくプリントされるよう, この再設定はキューの起動時にも行われます。
$ INITIALIZE/QUEUE/LIBRARY=MYDEVCTL/SEPARATE=RESET=MODULE2 PDQ_QUE
次は,装置制御ライブラリ・モジュールを使用して, プリント・ジョブを処理している例です。 この例では,MODULE1 と MODULE2 という 2 つの装置制御モジュールを作成して, それを MYDEVCTL.TLB ライブラリ・ファイルに登録しています。 MODULE1 設定モジュールのエスケープ・シーケンスまたはテキストは, REPORT.TXT のプリント前とMEMO.TXT のプリント前にプリンタに送られ, プリンタを設定します。 また,MODULE2 設定モジュールのエスケープ・シーケンスまたはテキストは, REPORT ジョブの両方のファイルがプリントされた後の一度だけプリンタに送られます。
$ LIBRARY/CREATE/TEXT SYS$LIBRARY:MYDEVCTL.TLB
$ EDIT MODULE1.TXT
!enter printer escape sequences or text for module1
$ EDIT MODULE2.TXT
!enter printer escape sequences or text for module2
$ LIBRARY/INSERT SYS$LIBRARY:MYDEVCTL.TLB/TEXT MODULE1
$ LIBRARY/INSERT SYS$LIBRARY:MYDEVCTL.TLB/TEXT MODULE2
$ INITIALIZE/QUEUE/START/ON=TTA9:/LIBRARY=MYDEVCTL PDQ_QUE
$ SET QUEUE/SEPARATE=RESET=MODULE2 PDQ_QUE
$ SHOW QUEUE/FULL PDQ_QUE
Terminal queue PDQ_QUE, idle on TOAD::TTA9, mounted form DEFAULT
/BASE_PRIORITY=4/DEFAULT=(FEED,FORM=DEFAULT)/LIBRARY=MYDEVCTL
/OWNER=[1,4]/PROTECTION=(S:M,O:D,G:R,W:R)/SEPARATE=(RESET=(MODULE2) )
$ DEFINE/FORM/SETUP=MODULE1/STOCK=DEFAULT FORM1 1
$ PRINT/FORM=FORM1 REPORT.TXT,MEMO.TXT/QUEUE=PDQ_QUE
Job REPORT (Queue PDQ_QUE, entry 619) started on PDQ_QUE
キューの設定を終えたら,キューを監視および制御し,必要ならば変更も行います。
また,キューの設定はスタートアップ時に制限されません。 通常の操作を行っている間,必要に応じてキューを作成し,起動することができます。 後でキューを設定する場合には,14.4 節 の説明を参照してください。
後で追加出力キューを作成する場合には,次のことを確実に行ってください。
装置が接続されているノードで, 装置特性を設定するためのコマンドをスタートアップ・コマンド・プロシージャに追加する。
LAT ポートに接続されている装置の場合には,その装置のキューがあるすべてのノードで,スタートアップ・プロシージャにコマンドを追加する。
追加の非自動起動キューに対して,キューが実行されるノードでスタートアップ・コマンド・プロシージャに適切な START/QUEUE コマンドを追加する。 適切な START/QUEUE コマンドを追加しなかった場合には, システムがリブートされるときにキューは起動されない。
キューの作成と制御に使用される基本的なコマンドを表 14-4に示します。
自動起動型であるか非自動起動型であるかの区別によって効果が異なるかどうかも説明しています。
表 14-4: キュー・コマンドの効果
| コマンド | 効果 | |
| 自動起動キュー | 非自動起動キュー | |
ASSIGN/MERGE |
ジョブを別のキューに移す。 |
ジョブを別のキューに移す。 |
ASSIGN/QUEUE |
論理キューのジョブを実行キューに送る。 |
論理キューのジョブを実行キューに送る。 |
DELETE/QUEUE |
キューを削除する。 |
キューを削除する。 |
DISABLE AUTOSTART /QUEUES |
ジョブの終了を待ってから,ノード・リストに登録されていて次に使用可能なノードに,各自動起動型キューをフェールオーバさせる。 リストが指定されていない場合,そのキューは停止させられる。 |
なし |
ENABLE AUTOSTART /QUEUES |
ノードで動作可能な,アクティブな停止中の自動起動型キューをすべて起動する。 |
なし |
INITIALIZE/QUEUE |
キューを作成する。 /AUTOSTART_ON 修飾子は,キューを実行できるノード (1 または複数) および装置を指定する。 |
キューを作成する。 キューを動作させるノード,またはノードと装置の指定には,/ON 修飾子を使用する。 |
INITIALIZE/QUEUE /START |
キューを作成して,その自動起動機能をアクティブにする。 /AUTOSTART_ON 修飾子はキューを実行できるノード (1 または 複数) および装置を指定する。 |
キューを作成して,起動する。 キューを動作させるノード,またはノードと装置の指定には,/ON 修飾子を使用する。 |
SET QUEUE |
キューを変更する。 |
キューを変更する。 |
SHOW QUEUE |
キュー情報を表示する。 |
キュー情報を表示する。 |
START/QUEUE |
キューの自動起動機能をアクティブにする。 |
キューを起動する。 |
STOP/QUEUE |
キューを一時停止させる。 |
キューを一時停止させる。 |
STOP/QUEUES/ON_NODE |
キュー・マネージャを停止させることなく,ノードの現在のジョブを終了させ,すべてのキューを停止させる。 |
キュー・マネージャを停止させることなく,ノードの現在のジョブを終了させ,すべてのキューを停止させる。 |
STOP/QUEUE/NEXT |
現在のジョブの終了を待ってから,キューを停止させ,その自動起動機能を非アクティブする。 |
現在のジョブの終了を待ってから,キューを停止させる。 |
STOP/QUEUE/RESET |
ただちにキューを停止させ,その自動起動機能を非アクティブにする。 |
ただちにキューを停止させる。 |
以降の節では,キューの管理におけるこれらの作業について説明しています。
| 作業 | 参照箇所 |
キューの監視 |
|
キューの変更 |
|
キューの一時停止 |
|
キューのクローズ |
|
キューの停止 |
|
自動起動型キューの起動禁止 |
|
ノード上の自動起動の禁止 |
|
ノード上のすべてのキューの停止 |
|
システムのシャットダウン前のキューの停止 |
|
論理キューの割り当て |
|
別のキューへのすべてのジョブの移動 |
|
キューの削除 |
DCL の SHOW QUEUE コマンドを使用して,キューの状態を表示し, 監視することができます。 次の形式で SHOW QUEUE コマンドを入力します。
SHOW QUEUE [/ 修飾子 ,...] [ キュー名 ]
修飾子とキュー名のどちらも省略された場合,システムは,そこに存在するすべてのキューと,コマンド実行者が所有するすべてのジョブの状態を表示します。 修飾子には,キューのタイプや表示する情報量を指定することができます。
| 修飾子 | 説明 |
指定された状態のジョブを保持しているキューを表示する。 指定可能なキーワードは次のとおり。
キーワードが省略された場合,省略時の設定ではすべての状態のキューが表示される。 ジョブ状態については,表 14-6 を参照。 |
|
バッチ実行キューの状態を表示する。 |
|
出力実行キューを表示する。 次のキーワードを指定することによって,表示する実行キューのタイプが選択可能。
キーワードが省略された場合は,すべてのタイプの出力キュー が表示される。 |
|
汎用キューの状態を表示する。 |
| 修飾子 | 説明 |
/ALL_JOBS |
|
/BRIEF |
キューのジョブに関する情報を簡単なリスト形式で表示する。 この形式は SHOW QUEUE コマンドの省略時の表示形式。 |
/FILES |
|
/FULL |
|
/SUMMARY |
いくつかの修飾子を組み合せることによって,表示するキューをもっと細かく指示することもできます。
SHOW QUEUE コマンドによって返されるキュー状態は,表 14-5
に示すとおりです。
表 14-5: SHOW/QUEUE コマンドで表示されるキュー状態
| キュー状態 | 説明 |
キュー・マネージャが START/QUEUE/ALIGN コマンドを処理中である。 |
|
停止しており,アクティブにする必要がある (14.8.4 項 を参照)。 |
|
少なくとも 1 つのジョブを処理中であるが,さらに同時に処理可能。 |
|
ジョブの処理中のため,これ以上ジョブは処理不可能。 |
|
クローズされており,オープンするまでジョブを受け付けられない (14.7.1.4 項 を参照)。 |
|
割り当てられている装置は使用不可。 |
|
ジョブ処理を行っておらず,処理可能な状態。 |
|
キュー・マネージャが STOP/QUEUE コマンドを処理中。 |
|
キュー・マネージャが STOP/QUEUE コマンドを処理中。 |
|
割り当てられている物理装置がローカル・システムに接続されていない。 |
|
キュー・マネージャが休止中の START/QUEUE コマンドを処理中。 |
|
キュー処理はサーバ・シンビオントに切り換え可能。 |
|
装置関連の問題でシンビオント処理が一時的に停止中。 |
|
起動されたが,シンビオント・プロセスがアクティブではない。 |
|
停止中であり,起動されるまで処理は行われない。 |
|
Stop pending |
|
Stopping |
システムで使用可能なフォームや特性を確認したい場合は,それぞれ DCL の SHOW QUEUE/FORM と SHOW QUEUE/CHARACTERISTIC コマンドを使用します。
コマンド・プロシージャで F$GETQUI レキシカル関数を使用すると, 表示するキュー情報をさらに細かく指定することができます。 F$GETQUI 関数は $GETQUI システム・サービスを起動し, キュー・データベースに保持されている情報を返します。
F$GETQUI レキシカル関数を使用して情報を得ることが可能なオブジェクトのタイプは次のとおりです。
特性
フォーム
キュー
キューに登録されているジョブ
キューに登録されているジョブのファイル
たとえば,すべてのプリンタ・キューにおける保留状態のジョブの総ブロック数を表示するコマンド・プロシージャを作成することができます。 ジョブ情報やファイル情報を得るためには,ジョブに対する読み込みアクセス権,SYSPRV 権,OPER 権のいずれかを所有している必要があります。
F$GETQUI レキシカル関数が起動するシステム・サービス ($GETQUI) については,
『OpenVMS System Services Reference Manual』 を参照してください。
例
次は,すべてのプリンタおよびターミナル・キューのサマリ情報を表示している例である。
$ SHOW QUEUE/SUMMARY/DEVICE=(PRINTER,TERMINAL)
Printer queue HERA_LPA0, busy, on HERA::LPA0, mounted form DEFAULT
<Printer queue on node HERA for a line printer>
Job summary: 1 executing
Printer queue HERA_LPB0, busy, on HERA::LPB0, mounted form DEFAULT
<Printer queue on node HERA for a line printer>
Job summary: 1 executing
Generic printer queue CLUSTER_PRINT
<Generic printer queue for LPA0: and LPB0:>
Job summary: 1 holding
Terminal queue LQ_PRINT, stopped, on HERA::TXA7:,
<Letter quality printer in Bob's office>
mounted form PORTRAIT_INDENTED (stock=DEFAULT)
Job summary: 2 pending (445 blocks), 1 holding
次は,動作中のすべてのジョブの状態とオプションを詳細に表示している例である。
$ SHOW QUEUE/FULL/ALL/BY_JOB_STATUS=EXECUTING
Batch queue HERA_BATCH, available, on HERA::
/AUTOSTART_ON=(HERA::) /BASE_PRIORITY=3 /JOB_LIMIT=25 /OWNER=[SYSTEM]
/PROTECTION=(S:M,O:D,G:R,W:R)
Entry Jobname Username Status
----- ------- -------- ------
700 VUE SMITH Executing
Submitted 25-FEB-2000 14:46 /KEEP /NOLOG /NOPRINT /PRIORITY=100
File: _$333$DISK1:[SMITH.COM]VUE.COM;19 (executing)
Batch queue ZZ_BATCH, available, on ZZ::
/AUTOSTART_ON=(ZZ::) /BASE_PRIORITY=3 /JOB_LIMIT=25 /OWNER=[SYSTEM]
/PROTECTION=(S:M,O:D,G:R,W:R)
Entry Jobname Username Status
----- ------- -------- ------
874 PIPE FITZGERALD Executing
Submitted 26-FEB-2000 11:25 /KEEP /NOTIFY /NOPRINT /PRIORITY=100
/RESTART=CLUSTER_BATCH /RETAIN=UNTIL="0 01:00"
File: _$333$DISK1:[FITZGERALD]PIPE.COM;2 (executing)
Server queue NM$QUE01, available, on HERA::, mounted form DEFAULT
/BASE_PRIORITY=4 /DEFAULT=(FEED,FORM=DEFAULT) /OWNER=[DOC,SMITH]
/PROCESSOR=NM$DAEMON /PROTECTION=(S:M,O:D,G:R,W:R) /RETAIN=ERROR
Entry Jobname Username Status
----- ------- -------- ------
236 NM ROSENBERG Processing
Submitted 23-FEB-2000 08:42 /FORM=DEFAULT /PRIORITY=100
File: _$5$DISK3:[FOLK$.NM]NM$J1991072308340647.WRK;1
INITIALIZE/QUEUE,START/QUEUE,SET QUEUE のいずれかのコマンドを使用して, キュー・オプションを変更することができます。 このとき,キュー・データベースのキュー情報は,変更に合わせて更新されます。 3 つのコマンドのうち,SET QUEUE コマンドを停止中のキューに対して使用することはできません。
SET QUEUE コマンドを使用すると,キューを停止させることなく, 多くのキュー・オプションを変更することができます。 動作中のバッチ・キュー SYS$BATCH を変更するコマンドの例を次に示します。
$ SET QUEUE/JOB_LIMIT=4/DISABLE_SWAPPING SYS$BATCH
このコマンドでは,キューのジョブ制限を変更し,SYS$BATCH で処理されるすべてのジョブについてスワッピングを禁止しています。
これ以外のキュー・オプションが変更されることはありません。
変更したオプションが現在実行中のジョブに作用することはありませんが,
以降のジョブはすべて,新しいオプションを有効にした状態で実行されます。
作業方法
SET QUEUE コマンドで変更不可能なキュー・オプションは, 次の手順で変更することができます。
STOP/QUEUE/NEXT コマンドでキューを停止させる。
START/QUEUE か INITIALIZE/QUEUE/START コマンドに目的のオプションの修飾子を指定して,キューを再起動する。
指定しなかった修飾子は,前回初期設定,起動,または設定したときの状態のままである。
既存のキューを初期設定することによって,キューに現在存在するジョブが削除されることはありません。 INITIALIZE/QUEUE コマンドによって新たに設定したキュー・オプションは,キューで待ち状態になっているすべてのジョブ,あるいは以降キューに登録されたすべてのジョブに作用します。
バッチ・キューと出力キューに使用可能なオプションについては,
表 14-1
を参照してください。
14.7.1.3 キューの一時停止
DCL コマンド STOP/QUEUE を(修飾子を何も指定せずに)使用すると, キューに登録されているすべての現在のジョブの実行を一時的に停止させ, キューを一時停止状態にすることができます。 出力キューの場合は, 一時停止させることによって,プリント・ジョブの配置コマンドや位置調整コマンドを,プリント・シンビオントに対して発行することが可能です。 SET/QUEUE コマンドによるプリント・ジョブの制御については, 14.7.2.7 項 で詳しく説明します。
一時停止させたキューの実行を再開する場合は,DCL の START/QUEUE コマンドを入力します。
14.7.1.4 キューのクローズ
プリンタの修理などの理由でキューが長い時間使用不能になる場合は, SET QUEUE,INITIALIZE/QUEUE,START/QUEUE のいずれかのコマンドに /CLOSE 修飾子を指定すると, 新しいジョブがキューに登録されるのを防ぐことができます。 すなわち,/CLOSE 修飾子は,ユーザが PRINT コマンドや SUBMIT コマンドでキューにジョブを登録するのを禁止します。 ユーザがジョブをプリントしようとする,またはクローズされたキューにジョブを登録しようとすると,ジョブが拒否され,ユーザはキューがクローズされている旨の通知を受けます。
$ PRINT/QUE=$PRINTER_1 REPORT.TXT;
%PRINT-F-CREJOB, error creating job
-JBC-E-QUE_CLOSED, queue closed, jobs not accepted
キューに現在あるジョブが影響を受けることはありません。
キューが使用可能になったら,/OPEN 修飾子を使用してキューをオープンし,ジョブのキュー登録を可能にします。
14.7.1.5 キューの停止
キューを停止させたい場合は,次のいずれかのコマンドを使用します。
14.7.1.6 項
で説明するように,
これらのコマンドは,自動起動キューに対してキューの自動起動を非アクティブ化します。
停止中の非自動起動キューを再起動,または非アクティブ化されている自動起動キューのアクティブ化には START/QUEUE コマンドを入力してください。
14.7.1.6 自動起動型キューの起動禁止
自動起動型キューが存在するシステムで STOP/QUEUE/NEXT または STOP/QUEUE/RESET コマンドを実行すると,
START/QUEUE コマンドを入力するまでキューが停止し,
自動起動機能が非アクティブになります。
14.7.1.7 ノードの自動起動の禁止
DISABLE AUTOSTART/QUEUES コマンドは,ノードに対して次のことを行うようキュー・マネージャに指示します。
自動起動型キューがノードにフェールオーバすることを禁止する。
シャットダウンに備えて,ノードすべてのキューに "stop pending" のマークを付ける。 これによって,現在キューで実行中のジョブを終了させることができる。
ノードの自動起動型キューで現在実行中のジョブが終了したら, キューのフェールオーバ・リストに登録されていて,自動起動が有効なノードのうちの次に使用可能なノードに強制的にキューをフェールオーバさせる。 自動起動型キューがフェールオーバできるのは,複数のノードで動作するように設定されている場合だけである。
省略時の設定では,DISABLE AUTOSTART/QUEUES コマンドは, このコマンドが入力されたノードでのみ有効です。 別のノードで自動起動機能を禁止するには,/ON_NODE 修飾子を指定します。
DISABLE AUTOSTART/QUEUES コマンドは,ノードをシャットダウンする前に使用します。
詳細は
14.7.1.9 項
を参照してください。
14.7.1.8 ノードのすべてのキューの停止
キュー・マネージャを停止させずにノードのすべてのキューを停止したい場合は,DCL の STOP/QUEUES/ON_NODE コマンドを使用します。 省略時の設定ではこのコマンドは,それが入力されたノードにしか作用しません。 別のノードのキューを停止させたい場合は,次に示すように,/ON_NODE 修飾子の後に停止したいノード名を指定します。
STOP/QUEUES/ON_NODE=ノード名
STOP/QUEUES/ON_NODE コマンドが入力されると, 非自動起動型キューと,フェールオーバ・リストのない自動起動型キューが停止します。 そしてフェールオーバ・リストを指定して作成または起動された自動起動型キューは,そのリストに登録されていて, 自動起動機能が有効なノードのうちの次に使用可能なノードにフェールオーバします。
自動起動型キューで現在実行中のジョブを最後まで実行させたい場合は,DISABLE AUTOSTART/QUEUES コマンドを入力して,
ジョブの終了を待ち,それから STOP/QUEUES/ON_NODE コマンドを入力してください。
詳細は
14.7.1.9 項
を参照してください。
14.7.1.9 システムのシャットダウン前のキューの停止
シャットダウン・コマンド・プロシージャ SYS$SYSTE:SHUTDOWN.COM には次のコマンドが含まれており,SHUTWOND.COM を使用してノードをシャットダウンすると,自動的に実行されます。
DISABLE AUTOSTART/QUEUES
STOP/QUEUES/ON_NODE
STOP/QUEUES/ON_NODE コマンドはジョブを途中で終了させ,ノードのすべてのキューを停止します。 一方,DISABLE AUTOSTART コマンドは自動起動型キューのジョブの終了を待ち,それから, フェールオーバか自動起動型キューの停止のいずれかの処理を行います。 システムで自動起動型キューを使用している場合は, ジョブを終了させてから,それらキューを停止することをお勧めします。
SHUTDOWN.COM では,STOP/QUEUES/ON_NODE コマンドがノードのシャットダウンのすぐ前に実行されます。 そして,DISABLE AUTOSTART/QUEUES コマンドとシャットダウンまでの間隔を指定することにより,自動起動型キューを停止する前にジョブが終了する猶予時間を与えることができます。
| タイミング | 方法 |
SHUTDOWN.COM の実行前 |
次の形式で論理名 SHUTDOWN$DISABLE_AUTOSTART を定義し,時間間隔 (単位: 分) を設定する。 DEFINE/SYSTEM/EXECUTIVE_MODE SHUTDOWN$DISABLE_AUTOSTART 分数 |
SHUTDOWN.COM の実行中 |
次の形式でシャットダウン・オプションに時間間隔 (単位: 分) を指定する。
|
自動起動型キューのジョブ数やジョブ・タイプに基づいて適当な時間間隔を決定してください。
SHUTDOWN.COM を使用せずにノードをシャットダウンする場合は,
DISABLE AUTOSTART/QUEUES コマンドを入力して,数分ほどジョブが終了するのを待ち,それから STOP/QUEUES/ON_NODE コマンドを入力することをお勧めします。
14.7.1.10 論理キューの割り当て
プリント装置に問題が発生した場合は,その装置に対応付けられているキューの内容を,正しく動作する装置に対応付けられているキューに移し換えることができます。 この操作を実行するには,論理キューを作成します。 ジョブを別のキューに移動するために論理キューを作成するには,次の手順に従ってください。
次の形式で STOP/QUEUE/NEXT コマンドを入力して, 誤動作しているプリント装置に対応付けられているキューを停止させる。
STOP/QUEUE/NEXT キュー名[:]
このコマンドは新しいジョブの処理を禁止し,プリント装置が動作不能でないならば,現在のジョブが最後まで処理されるのを可能にする。 装置が動作不能な場合は,STOP/QUEUE/RESET コマンドを使用してキューを停止し,ただちに装置へのすべての出力を取り消す。
プリント装置をオフライン状態にする。
次の形式で ASSIGN/QUEUE コマンドを入力して, 誤動作しているプリント装置の既存のジョブを別のプリント装置に移す。
ASSIGN/QUEUE キュー名[:] 論理キュー名[:]
新しいプリント装置のオプションに新しいジョブの処理に問題となるものがないか調べること。
論理キューの割り当て解除
論理キューを割り当て解除する場合は,次のコマンドを使用します。
DEASSIGN/QUEUE 論理キュー名[:]
キューを削除する前に,そこに登録されているすべてのジョブを別のキューに再登録したい場合があります。 そうした場合は,次の形式の ASSIGN/MERGE コマンドを使用します。
ASSIGN/MERGE ターゲット・キュー ソース・キュー
ターゲット・キューはジョブの移動先のキュー, ソース・キューは削除するキューです。
ASSIGN/MERGE コマンドは, ソース・キューに現在存在するすべてのジョブをターゲット・キューに移動します。 削除前にソース・キューに新しいジョブが登録された場合, そのジョブはソース・キューに残り,ターゲット・キューに転送されません。 したがって,ASSIGN/MERGE コマンドを入力する場合は, 14.7.1.4 項 で説明するように, キューをクローズして,新しいジョブがキューに登録されないようにしてください。
ジョブの出力先を変更する場合は,14.7.1.10 項
で説明した ASSIGN/QUEUE コマンドを使用します。
14.7.1.12 キューの削除
キューを削除する手順は次のとおりです。
STOP/QUEUE/NEXT コマンドを入力して,キューを停止させる (実行中のすべてのジョブを途中で終了したい場合は, STOP/QUEUE/RESET コマンドを使用すること)。
実行中のジョブが終了するのを待つ。
キューで保留中のエントリを別のキューに再登録する。 このステップを省略すると,キューと一緒にジョブも削除される。
削除するキューに対する汎用キューまたはジョブからの参照をすべて削除する。 キューの参照の削除については,14.8.5 項 を参照すること。
DELETE/QUEUE コマンドを入力して,キューを削除する。
システム管理者は,バッチ・ジョブやプリント・ジョブの流れを制御したり, 効率的なジョブ処理の性能を維持する操作を行います。 そうしたジョブ管理のために行う日常的な作業として,次の作業があります。
| 作業 | 参照箇所 |
ジョブの監視 |
|
ジョブ処理オプションの変更 |
|
ジョブの保持と解放 |
|
実行中のジョブのキュー再登録 |
|
保留中のジョブのキュー再登録 |
|
ジョブの削除 |
|
ジョブのプリント位置と位置調整の制御のための出力キューの一時停止 |
バッチおよびプリント・ジョブの状態を監視する場合は, DCL の SHOW ENTRY コマンドを使用します。 ジョブの状態については,表 14-6 を参照してください。
次の形式で SHOW ENTRY コマンドを入力します。
SHOW ENTRY [ エントリ番号 [,...]], [ ジョブ名 [,...]]
エントリ番号もジョブ名も省略された場合,システムは, コマンドを入力したユーザまたは /USER_NAME 修飾子に指定されたユーザが所有するすべてのジョブの状態を表示します。 また,ジョブ名が指定された場合は,コマンドを入力したユーザあるいは /USER_NAME 修飾子に指定されたユーザが所有するジョブのうち, 指定された文字列に一致するジョブの状態を表示します。 コマンド行にエントリ番号またはジョブ名のリスト,あるいはその両方を指定することによって,複数のジョブの状態を表示することもできます。
SHOW ENTRY コマンドには,表示するジョブ情報のタイプを指示する修飾子を指定することもできます。 詳細は『OpenVMS DCL ディクショナリ』 を参照してください。
表 14-6
は,SHOW ENTRY コマンドによって返されるジョブ状態をまとめたものです。
表 14-6: SHOW ENTRY が返すジョブ状態
| 状態 | 説明 |
実行中のジョブが正常終了の前に停止し,処理が継続されない。 |
|
バッチ・キューから実行中。 |
|
明示的に解放指示があるまで保持 (14.7.2.3 項 を参照)。 |
|
実行待ち (14.8.2 項 を参照)。 |
|
プリンタまたはターミナル・キューから実行中。 |
|
サーバ・キューから実行中。 |
|
実行終了までキューに残されているジョブ(14.6.2.3 項 を参照)。 |
|
処理中にジョブが停止した。 ただし,原因が解決されれば処理は継続される。 |
|
ジョブの処理が開始されるところ。 |
|
ジョブは指定された時間だけ実行前にキューで保持される。 |
例
次の例では,GARDNER というユーザが所有するジョブの状態を表示している。
$ SHOW ENTRY/USER_NAME=GARDNER
Entry Jobname Username Blocks Status
----- ------- -------- ------ ------
4 TEST GARDNER Holding
On available batch queue OPAL_BATCH
611 SET GARDNER 140 Pending
On stopped printer queue LQPRINT
次の例では,/FULL 修飾子を指定して,ジョブ状態情報とジョブのキュー登録時刻,ファイル指定,ジョブ処理オプションを表示するよう指示している。
$ SHOW ENTRY/FULL 4,611
Entry Jobname Username Blocks Status
----- ------- -------- ------ ------
4 TEST GARDNER Holding
On available batch queue OPAL_BATCH
Submitted 15-JAN-2000 16:12 /LOG=_$5$DUA1:[GARDNER]TEST.LOG;
/PRIORITY=100
File: _$5$DUA1:[GARDNER]TEST.COM;8
611 SET GARDNER 140 Pending
On stopped printer queue LQPRINT
Submitted 21-JAN-2000 16:23 /FORM=DEFAULT /PRIORITY=200
File: _$5$DUA1:[GARDNER]SET.TXT;5
File: _$5$DUA1:[GARDNER]WAIT.TXT;1
多くのジョブ処理オプションは,次の形式で SET ENTRY コマンドを使用することによって変更することができます。
SET ENTRY/ 修飾子 [,...] エントリ番号
表 14-7
は,ジョブ処理オプションの変更でよく使用される修飾子をまとめたものです。
SET ENTRY コマンドで変更可能なすべての処理オプションについては,
『OpenVMS DCL ディクショナリ』 を参照してください。
表 14-7: ジョブ変更用の SET ENTRY 修飾子
ユーザは,PRINT,SUBMIT,SET ENTRY コマンドで次のいずれかの修飾子を指定することにより,処理の前にジョブを保持するよう指定することができます。
/AFTER=時刻 指定時刻になるまでジョブを保持する。
/HOLD 無期限にジョブを保持する。
| コマンド | 目的 |
SET ENTRY/HOLD |
キューに無期限にジョブを保持する。 |
SET ENTRY/AFTER=時刻 |
指定した時刻まで,キューのジョブを保持する。 /AFTER 修飾子を指定するには,指定した時刻までジョブを保持した後で解放するために,/NOHOLD 修飾子も指定しなければならない。 |
SET ENTRY/NOHOLD |
次のいずれかの理由でキューに保持されていたキューを解放する。
|
SET ENTRY/NOAFTER |
SET ENTRYコマンドで指定した時刻まで待ち状態になっているジョブを解放する。 |
SET ENTRY/RELEASE |
次のいずれかの理由でキューに保持されていたキューを解放する。
|
例
次の例では,最初に指定時刻までジョブを保持するよう指示し, その後,その時刻になる前にジョブを解放するよう指示している。
$ SET ENTRY 1121/AFTER=12-FEB-2000:17:30
$ SET ENTRY/NOAFTER
次の例では,最初に当日の真夜中 (00:00:00 時) までジョブを保持するよう指示し,その後,その時刻になる前にジョブを解放するよう指示している。
$ SET ENTRY 1121/AFTER=TODAY
$ SET ENTRY/NOAFTER
次の例では,最初に無期限にジョブを保持するよう指示し, その後,解放している。
$ SET ENTRY 1234/HOLD
$ SET ENTRY 1234/RELEASE
実行中のプリント・ジョブを停止させて,キューに再登録する場合は, STOP/QUEUE/REQUEUE コマンドを使用します。 このコマンドは,現在のジョブの実行を中断し,そのジョブを,指定したキューに再登録します。 キューの他のジョブは,処理されるまで保留状態になります。
注意
STOP/QUEUE/REQUEUE コマンドが停止させるのは, キューで現在実行中のジョブだけです。 キューが停止することはありません。
例
たとえば,BETA_LPB0 という出力実行キューから 1 つのジョブが実行されているとき,キューに割り当てられているプリンタが紙詰りを起こした場合を考えます。 キューで他のジョブが保留中でない場合は, ジョブを停止させ,別のプリンタのキューにジョブを再登録することになります。 キュー自体を停止することも考えられます。 こうした場合,入力するコマンドは次のようになります。
$ STOP/QUEUE/REQUEUE=BETA_LPA0 BETA_LPB0
$ STOP/QUEUE/RESET BETA_LPB0
最初のコマンドで,プリント・ジョブのBET_LPB0 での実行が停止されて, BET_LPA0 に再登録されます。 2 番目のコマンドは,BETA_LPB0 キューを停止させます。
バッチ・キューにジョブを再登録する場合は,次の例に示すように /ETNRY=n 修飾子を指定する必要があります。
$ STOP/QUEUE/ENTRY=1251/REQUEUE=FRED_BATCH WILMA_BATCH
強制終了させたジョブを保持する場合は,次に示すように /HOLD 修飾子を使用します。
STOP/QUEUE/REQUEUE[= キュー名 ]/HOLD[/ENTRY= エントリ番号 ] キュー名
/HOLD 指定された強制終了ジョブは保持状態になるため, この状態を解除するには,SET ENTRY/RELEASE か SET ENTRY/NOHOLD コマンドを使用します。
強制終了させたジョブのスケジューリング優先順位を変更する場合は, 次に示すように /PRIORITY 修飾子を使用します。
STOP/QUEUE/REQUEUE[=キュー名 ]/PRIORITY=n[/ENTRY= エントリ番号 ] キュー名
変更後の優先順位を
n
に指定します。
14.7.2.5 保留中ジョブの再登録
キューで保留中のジョブを他のキューに登録し直す場合は, 次の例に示すように SET ENTRY/REQUEUE コマンドを使用します。
$ SET ENTRY/REQUEUE=LN03$PRINT 196
この例では,196 というジョブを LN03$PRINT というキューに移しています。
14.7.2.6 ジョブの削除
次のいずれかの DCL コマンドを入力して,ジョブのエントリ番号を求める。
SHOW ENTRY/USER_NAME= ユーザ名 [ エントリ番号 ]
SHOW QUEUE/ALL_JOBS [ キュー名 ]
ジョブ名,ユーザ名,キュー名のいずれも分からない場合は, 次のコマンドを入力する。
$ SHOW QUEUE/BATCH/ALL_JOBS/BY_JOB_STATUS=EXECUTING
次の形式で DELETE コマンドを入力して,ジョブを削除する。
DELETE/ENTRY=(エントリ番号)[,...]
例
たとえば, ジョブが無限ループに入っていることに気づいた場合, そのジョブの所有者でない限りそのジョブを停止することができません。 そのような場合, システム管理者は,たとえば次のようなコマンドを入力することになります。
$ SHOW QUEUE/BATCH/ALL_JOBS/BY_JOB_STATUS=EXECUTING
Batch queue JADE_BATCH, available, on JADE::
Entry Jobname Username Status
----- ------- -------- ------
312 ARTWORK HUNTER Executing
Batch queue OPAL_BATCH, available, on OPAL::
Entry Jobname Username Status
----- ------- -------- ------
317 STOCKS CHANDLER Executing
Batch queue RUBY_BATCH, available, on RUBY::
Entry Jobname Username Status
----- ------- -------- ------
888 TEMPO ENGLISH Executing
$ DELETE/ENTRY=317
14.7.2.7 ジョブのプリント位置と位置調整の制御 (出力キューの一時停止)
修飾子を指定せずに STOP/QUEUE コマンドを入力し, 出力キューを一時停止させることによって, プリント・シンビオントと会話型で通信することができます。 このとき,行えることとしては,たとえば次のような操作があります。
一時停止させたジョブのプリントを再開する位置を指定する。 たとえば,プリンタが紙詰りを起こしたため,プリント・ジョブの最初の数ページが正しくプリントされなかったと仮定する。 その場合は,キューを一時停止させて,ジョブを再起動し,ファイルの先頭からプリントを再開することができる。
詳細は14.7.2.7.1 項 を参照。
プリンタ・フォームの位置調整のためページ数とデータ・タイプを指定する。 たとえば,プリンタがプリント済みの連続用紙からなる用紙ストックを使用していると仮定する。 ジョブのプリントを開始しようとして用紙を調べると,正しい位置調整が行われておらず,プリント済みフォームの正しい場所にプリントが行われないことが判明する。 そうした場合は,キューを一時停止させて,サンプル・データをプリントし,用紙の位置調整を行うことができる。
詳細は14.7.2.7.2 項 を参照すること。
注意
上記の作業を行うためには,ジョブのプリントが始まった後, STOP/QUEUE コマンドでキューを一時停止させる必要があります。
キューを一時停止させて,再起動した場合,省略時の設定ではプリントは, 現在のジョブのプリント停止位置近くのチェックポイントから再開されます。 現在のジョブのプリント再開位置を具体的に指定した場合は, 次のいずれかの修飾子を指定して,START/QUEUE コマンドを入力してください。
| 修飾子 | 説明 |
/BACKWARD[=n] |
プリントを再開する前にファイルを後戻りさせるページ数を指定する。 省略時の値は 1 であり,この場合,プリントは現在のページの先頭から再開される。 |
/FORWARD[=n] |
プリントを再開する前にファイルを先送りするページ数を指定する。 省略時の値は 1 であり,この場合,プリントは次ページの先頭から再開される。 |
/SEARCH= "検索文字列" |
指定した検索文字列を含むページからプリントを再開するよう指定する。 文字列の検索は,現在のページの次のページから始めて順方向で行われる。 また,連続タブとスペースはスペース 1 つとして扱われ, 英字の大文字と小文字の区別は行われない。 文字列は 1 〜 63 文字の長さであり,引用符 (" ") で囲まなければならない。 |
/TOP_OF_FILE |
出力実行キューが一時停止したとき,停止時に実行中であったファイルの先頭からプリントを再開するよう指定する。 |
START/QUEUE コマンドに複数の位置付け修飾子を指定する必要がある場合は,次の順序で位置修飾子を指定してください。
/TOP_OF_FILE
/FORWARD
/BACKWARD
/SEARCH
例
次の例では,最初に STOP/QUEUE コマンドを使用して, JADE_PRINT というプリンタ・キューからプリント中のジョブを一時停止させ,キューを保留状態にする。 そして START/QUEUE コマンドによって,キューの保留状態を解除している。 このコマンドには TOP_OF_FILE 修飾子が指定されているので, 一時停止させられたジョブのプリントは,中断した場所ではなく, ファイルの先頭から再開される。
$ STOP/QUEUE JADE_PRINT
$ START/QUEUE/TOP_OF_FILE JADE_PRINT
次の例では,まずファイルをその先頭に位置付け,そこから 15 ページ先送りしてから,SYS_LPA0 というプリンタに出力を再開している。
$ START/QUEUE/TOP_OF_FILE/FORWARD=15 SYS_LPA0
サンプル・データをプリントして,プリント・フォームを位置調整したい場合は, いったんキューを一時停止させ,続いて,/ALIGN 修飾子を指定した START/QUEUE コマンドを入力します。
START/QUEUE/ALIGN[=(オプション [,...])]
次のオプションを指定して,位置調整ページ数と位置調整データを制御することができます。
| オプション | 説明 |
MASK |
英字を X,数字を 9 に置き換えることによって, 入力データにマスクをかけるよう指示する。 マスク文字を使用することにより,重要な情報を隠すことができる。 MASK オプションを省略した場合,入力データはそのとおりにプリントされる。 |
n |
プリントする位置調整ページ数を示す 10 進数を指定する。 指定可能な値は 1 から 20 の範囲であり, 省略時の設定は 1 ページ。 |
/ALIGN 修飾子と,前項で説明したファイル位置付け修飾子を組み合せることができます。
この場合,ファイルの位置付けは,位置調整データをプリントする前に行われます。
位置調整が終了すると,
キューは START/QUEUE コマンドによって再起動されるまで一時停止状態になります。
プリントが再開されるのは,位置調整のプリントが開始された位置からです。
すなわち,ジョブは位置調整用にプリントされたページ分後戻りします。
例
次は,4 ページ分の出力をマスク・データで位置調整するよう指示している例です。 この例では,キューが一時停止されたときに印刷されていたジョブのファイルはまず,2 ページ分後戻りし,その後で位置調整が実行されます。 4 ページ分の位置調整マスク文字が印刷されます。 その後,現在のジョブの出力は 4 ページ前の位置に設定され,キューが一時停止します。
$ START/QUEUE/BACKWARD=2/ALIGN=(MASK,4) SYS_LPA0
この節では,キューでよく発生する問題を取り上げ,その対処方法を説明します。
| 問題 | 参照箇所 |
一般的なプリンタの問題 |
|
保留中のジョブのスケジューリング |
|
ストックの不一致 |
|
特性の不一致の問題 |
|
出力キューの一時停止 |
|
自動起動型キューの不起動 |
|
キューとフォーム,特性削除時の問題 |
|
プリント後のファイル削除時の問題 |
|
装置制御ライブラリのモジュール追加と削除時の問題 |
|
キューの使用不能 |
プリンタに関連した一般的な問題の原因を究明する場合は, 次の手順に従ってください。
次の形式で SHOW QUEUE/FULL コマンドを入力して, 問題のプリンタに割り当てられているキューの状態を確認する。
SHOW QUEUE/FULL キュー名
キューの状態については,表 14-5 を参照すること。
SHOW LOGICAL /FULL SMBSRVSHR コマンドを入力して, 論理名 SMBSRVSHR が設定されているかどうか確認する。 設定されている場合は,DEASSIGN SMBSRVSHR コマンドを入力して,設定を解除する。 たいていの場合,論理名 SMBSRVSHR は定義しないほうがよい。 ただし,SMBSRVSHR が指定されている場合は, /USER_MODE,/SUPER_USER_MODE,または /EXECUTIVE_MODE 修飾子のいずれかを指定してDEASSIGN SMBSRVSHR コマンドを入力し指定を解除する。
プリント要求に対して致命的なエラーが返されるか, またはプリントが行われない場合は,次の操作を行う。
STOP/QUEUE/RESET コマンドを入力して,キューを停止させる。
出力装置をスプールしている場合は, SET DEVICE/NOSPOOLED コマンドを入力して,スプールを解除する。
次の形式で COPY コマンドを使用して,プリントするファイルをコピーする。
COPY 入力ファイル名 出力ファイル名
COPY コマンドによって複製が作成されないと, PRINT コマンドが動作しない。
問題が LATSYM シンビオントを使用するキューにある場合は, 省略時のシンビオントの PRTSMB を使用して, 問題が解決しないか調べる。 PRTSMB は,LAT ポートに接続されているプリンタに使用することができる。 ただし,プリンタにジョブを送ることが可能なキューは一度に 1 つだけである。
キューが LATSYM シンビオントを使用しているか調べたい場合は, SHOW QUEUE/FULL コマンドを使用する。 LATSYM シンビオントを使用している場合,/PROCESSOR=LATSYM と表示される。
キューのシンビオントを PRTSMB に変更する手順は次のとおり。
STOP/QUEUE/RESET コマンドを入力して, キューを停止する。
START/QUEUE/NOPROCESSOR コマンドを入力して, キューを再起動する。
PRTSMB を使用しているキューに対する PRINT 要求が正しく処理された場合,問題があるのは LATSYM か,LAT ドライバの LTDRIVER のいずれかである。
プリンタに使用されているケーブルの一方をターミナルに接続する。 ターミナルにデータが表示され,Hold Screen キーが働き, かつデータが失われていない場合は,プリンタの設定を間違えているなどの問題が考えられる。 ターミナルでも問題がある場合は,たいてい,ケーブルかハードウェア・インタフェース・ポート,あるいはハードウェア・ポート設定が原因と考えられる。
予想どおりにジョブが実行されない場合は,ジョブが保留または保持状態になっていることが考えられます。 そうした場合は SHOW QUEUE/FULL/ALL_JOBS コマンドを使用して,キューのすべてのジョブの状態を表示してみてください。
ジョブが保持状態のときのジョブの解放については, 14.7.2.3 項 を参照してください。
ジョブが保留状態の場合は,/FULL 修飾子を使用することによって, ジョブが実行不可能な状態になっている理由を知ることができます。 すべての情報を表示したい場合は,132 文字幅のディスプレイを使用してください。
たとえば,次は /FULL 修飾子を使用して保留中のジョブの状態を表示している例です。
$ SHOW QUEUE/FULL/ALL_JOBS/BY_JOB_STATUS=PENDING
Generic printer queue REG$GENERIC
/GENERIC=(REG$Q1,REG$Q2,REG$Q3)/OWNER=[SYSTEM]/PROTECTION=(S:M,O:D,G:R,W:R)
Entry Jobname Username Blocks Status
----- ------- -------- ------ ------
684 PROBLEMS CHURCHILL 3118 Pending (check execution queues)
Submitted 7-MAR-2000 17:49 /FORM=DEFAULT /NOTIFY /PRIORITY=100
File: _$5$DUA174:[CHURCHILL]PROBLEMS.TXT;2
Printer queue REG$Q1, stopped, on LONDON::NPA1, mounted form DEFAULT
/BASE_PRIORITY=4/DEFAULT=(FEED,FORM=DEFAULT)/OWNER=[SYSTEM]
/PROTECTION=(S:M,O:D,G:R,W:R)
Entry Jobname Username Blocks Status
----- ------- -------- ------ ------
687 PM$SPEECH CHURCHILL 3558 Pending (queue stopped)
Submitted 7-MAR-2000 17:51 /FORM=DEFAULT /NOTIFY /PRIORITY=100
File: _$5$DUA174:[CHURCHILL]PM$SPEECH.TXT;1 (checkpointed)
実行不可能になった場合,ジョブは必ず保留状態になります。
表 14-8
は,ジョブが保留状態になる原因としてよく見られるものと,その対処方法をまとめたものです。
表 14-8: よく見られるジョブ保留の原因と対処方法
| 問題 | 対処方法 |
これ以上,キューがジョブを処理することはできない。 |
他のジョブの終了を待つ。 |
キューが停止または一時停止した。 |
SHOW QUEUE/FULL コマンドを入力して,停止または一時停止と示された場合は,キューがその状態になった理由を調べること。 停止の場合は,START/QUEUE コマンドを使用して起動する。 自動起動型キューが停止した場合は,START/QUEUE コマンドを使用してキューをアクティブにし, ENABLE AUTOSTART/QUEUES を使用してキューを起動する。 一時停止の場合は,14.8.3 項 の操作を行うこと。 |
プリント・ジョブのフォーム・ストックとキューでマウントされているフォーム・ストックと一致しない。 |
14.8.2.1 項 の操作を行う。 |
キューにない特性でジョブが登録または変更された。 |
14.8.2.2 項 の操作を行う。 |
プリント・ジョブのサイズが,キューに設定されているブロック制限の範囲外である。 |
SET ENTRY/REQUEUE コマンドを使用してジョブを別のキューに移すか, SET QUEUE/[NO]BLOCK_LIMIT コマンドを使用して,キューに設定されているブロック制限を変更または解除する。 |
ジョブの所有者に実行キューに対する書き込みアクセス権がない。 |
SET ENTRY/REQUEUE コマンドを使用してジョブを別のキューに移すか, 14.6.1 項 の手順に従ってキューに対するアクセス権を変更する。 |
停止した実行キューに対応付けられている論理キューのプリント・ジョブである。 |
SET ENTRY/REQUEUE コマンドを使用してジョブを別のキューに移すか, 論理キューが対応付けられている実行キューを起動する。 |
英小文字プリントを有効にした出力装置が必要である。 |
プリンタが英小文字プリントをサポートしている場合は,SET PRINTER か SET TERMINAL コマンドで /LOWERCASE 修飾子を使用して, 英小文字プリントを有効にする。 プリンタが英小文字プリントをサポートしていない場合は, SET ENTRY/REQUEUE コマンドを使用して,英小文字プリントが有効なプリンタに出力を送る実行キューにジョブを移す。 |
14.8.2.1 ストック不一致でプリント・ジョブが保留状態になったときの対処法
ジョブのフォーム・ストックがマウント・フォームのストックと一致しないために,プリント・ジョブがキューで保留中になることがあります。 たとえば次は SHOW ENTRY コマンドの出力であり,ジョブが保留中になっていることと,その原因がストックの不一致であることが分かります。
$ SHOW ENTRY 133/FULL
Entry Jobname Username Blocks Status
----- ------- -------- ------ ------
133 SET RANDOM 74 Pending (stock type mismatch)
On idle printer queue SUE$PRINT
Submitted 21-JAN-2000 16:14 /FORM=MANUAL (stock=HQ) /PRIORITY=100
File: _$5$DUA1:[RANDOM]SET.TXT;5
ストック不一致のために保留中のジョブを保留解除するためには, 次の操作を行います。
SET QUEUE/FORM_MOUNTED などのコマンドでキューに別のフォームをマウントする,または SET ENTRY/FORM などのコマンドでジョブに別のフォームを指定することにより,ストックを一致させる。
SET ENTRY/REQUEUE などのコマンドを使用して,マウント・フォームのストックがジョブのフォーム・ストックに一致するキューにジョブを移す。
DELETE/ENTRY などのコマンドを使用してジョブを削除する。
フォームについての詳細は,14.6.7 項
を参照してください。
14.8.2.2 特性不一致でプリント・ジョブが保留状態になったときの対処法
ジョブの特性がキューに割り当てられている特性と一致しないために, プリント・ジョブがキューで保留中になることがあります。 たとえば次は SHOW ENTRY コマンドの出力であり,ジョブが保留中になっていることと,その原因がストックの不一致であることが分かります。
$ SHOW ENTRY 882/FULL
Entry Jobname Username Blocks Status
----- ------- -------- ------ ------
882 SETHOST RANDOM 5 Pending (characteristics mismatch)
On idle printer queue $PRINTER_1
Submitted 28-MAR-2000 15:21 /CHAR=(5) /FORM=DEFAULT /PRIORITY=100
File: _$5$DUA1:[RANDOM]SETHOST.LOG;5
特性不一致のために保留中のジョブを保留解除するためには,次のことを行います。
SET ENTRY/REQUEUE などのコマンドを使用して,特性がジョブの特性に一致するキューにジョブを移す。
SET QUEUE/CHARACTERISTIC などのコマンドでキューに新しい特性を割り当てることにより,特性を一致させる。
特性についての詳細は,14.6.3 項
を参照してください。
14.8.3 出力キューの一時停止の解決
出力キューが一時停止した場合,その原因はキューが割り当てられている装置にあります。 装置を調べて,問題を解決してください。 問題が解決すると,キューの一時停止状態は解消されます。
問題をすぐに解決できない場合は,STOP/QUEUE/RESET コマンドを入力して,キューを停止してください。
停止させると,キューのジョブを他の正しく動作するキューに移すことができます (14.7.1.10 項
を参照)。
問題が解決したら,論理キューを割り当て解除し,
START/QUEUE コマンドを入力してキューを起動します。
14.8.4 自動起動型キュー不起動の原因究明
ENABLE AUTOSTART/QUEUES を入力しても自動起動型キューが起動しない場合は,キューの自動起動機能がアクティブになっていないことが考えられます。
ENABLE AUTOSTART/QUEUES コマンドは,ノードで動作可能で
アクティブな自動起動型キューしか起動しません。
自動起動型キューをアクティブにするためには,
INITIALIZE/QUEUE コマンドに /START 修飾子を指定するか,
START/QUEUE コマンドを入力する必要があります。
次に,ENABLE AUTOSTART/QUEUES コマンドの使用例を示します。
例
$ ENABLE AUTOSTART/QUEUES/ON_NODE=KATY:: [1]
$ SHOW QUEUE KATY_BATCH
Batch queue KATY_BATCH, stopped, autostart inactive, on KATY:: [2]
$ START/QUEUE KATY_BATCH [3]
$ SHOW QUEUE KATY_BATCH/ALL
Batch queue KATY_BATCH, idle, on KATY:: [4]
この例では,次の操作を実行します。 リスト中の番号は例中の番号に対応します。
ENABLE AUTOSTART/QUEUES コマンドで, KATY というノードの自動起動型キューを起動しようとしている。
SHOW QUEUE コマンドの出力から, 自動起動型バッチ・キュー KATY_BATCH の自動起動機能がアクティブでなかったため,キューが起動しなかったことが分かる。 この原因は,キューが最初からアクティブになっていなかったか, STOP/QUEUE/NEXT または STOP/QUEUE/RESET コマンドによって非アクティブに設定されたかのいずれか。
START/QUEUE コマンドでキューの自動起動機能をアクティブにしている。
SHOW QUEUE コマンドによって,キューが起動されたことが示されている。
キュー,フォーム,または特性の削除時に問題が発生した場合は,次の条件が満たされているか確認してください。
DELETE/FORM や DELETE/CHARACTERISTICS コマンドでフォームや特性を削除する場合は,フォーム名と特性名を指定する必要がある。 DELETE コマンドでフォーム番号や特性番号を使用することはできない。 フォーム名または特性名を知りたい場合は,それぞれ SHOW QUEUE/FORM と SHOW QUEUE/CHARACTERISTIC コマンドを使用する。
キューを削除するためには,キューを停止状態にする必要がある。
キュー,フォーム,または特性を削除するためには,それらに対する参照をすべて削除しておく必要がある。
キュー,フォーム,または特性に対する参照があると,次のようなメッセージが表示されます。
%DELETE-E-NOTDELETED, error deleting object-name
-JBC-E-REFERENCED, existing references prevent deletion
たとえばこうしたメッセージは,削除しようとしたキューが汎用キューの送り先として指定されていたり,削除しようとしたフォームがプリント・ジョブに指定されていたりした場合に表示されます。
キュー,フォーム,または特性を削除するためには,それらに対する参照をすべて削除しておく必要があります。
作業方法
ここでは,キュー,フォーム,または特性に対する参照を見つけて, 削除する手順を示します。
SHOW QUEUE/FULL/ALL_JOBS/OUTPUT=ファイル名 コマンドを入力する。 ファイル名は,コマンドの出力の送り先にするファイルの名前。
SEARCH コマンドを使用して,出力ファイルの中に削除したい フォーム名かキュー名,または特性番号が存在するか調べる。 SEARCHコマンドの検索結果には,キュー,フォーム,または特性に対するすべての参照情報が含まれる。
削除しようとするキュー,フォーム,または特性を参照しているキューが存在する場合は,次の操作を行う。
STOP/QUEUE/NEXT コマンドを実行して, それぞれを参照しているキューを停止する。
START/QUEUE コマンドに適切な修飾子を指定して実行し,参照のないキューを再起動する。
SEARCH コマンドがそのキュー,フォーム,特性を参照するジョブを見つけた場合には,次の手順に従う。
ジョブの完了するのを待つ (14.6.5.2 項 の説明に従って,ジョブの優先順位を高くしてジョブがただちに処理されるようにスケジューリングすることもできる)。
次のいずれかの操作を実行する。
14.7.2.6 項 の説明に従って,ジョブを削除する。
14.7.2.2 項 の説明に従って,ジョブに対するオプションを変更する,またはジョブの所有者に対してその操作を要求する。
例
ここでは,いくつかのコマンドを使用して,キューの削除時の問題を解決している例を紹介します。
$ DELETE/QUEUE JADE_BATCH [1]
%DELETE-E-NOTDELETED, error deleting JADE_BATCH
-JBC-E-QUENOTSTOP, queue must be stopped to perform operation [2]
$ STOP/QUEUE/NEXT JADE_BATCH [3]
$ DELETE/QUEUE JADE_BATCH [4]
%DELETE-E-NOTDELETED, error deleting JADE_BATCH [5]
-JBC-E-REFERENCED, existing references prevent deletion
$ SHOW QUEUE/FULL
.
.
.
Generic batch queue CLUSTER_BATCH [6]
/GENERIC=(JADE_BATCH,RUBY_BATCH,OPAL_BATCH) /OWNER=[SYSTEM]
/PROTECTION=(S:M,O:D,G:R,W:R)
.
.
.
$ STOP/QUEUE/NEXT CLUSTER_BATCH [7]
$ START/QUEUE CLUSTER_BATCH/GENERIC=(RUBY_BATCH,OPAL_BATCH) [8]
$ DELETE/QUEUE JADE_BATCH [9]
この例では,次の操作を実行します。
DELETE/QUEUE コマンドで JADE_BATCH というキューを削除しようとしている。
キューが停止していないことを示すメッセージ。
STOP/QUEUE/NEXT コマンドで,現在のジョブの終了を待ってキューを停止させるよう指示している。
再び DELETE/QUEUE コマンドでキューを削除しようとしている。
今度は,キューに対する参照が存在することを示すメッセージが出されている。
SHOW QUEUE/FULL コマンドですべてのキューに関する情報を表示している。 JADE_BATCH は,汎用キュー CLUSTER_BATCH の送り先キューとして参照されているだけである。
STOP/QUEUE/NEXT コマンドで,JADE_BATCH を送り先とする汎用キュー CLUSTER_BATCH を停止させている。
送り先に JADE_BATCH を指定せずに,START/QUEUE コマンドで CLUSTER_BATCH を再起動することによって,JADE_BATCH に対する参照を削除している。
再び DELETE/QUEUE コマンドを入力することによって, キューを削除している。
PRINT/DELETE または SUBMIT/DELETE コマンドを使用してファイルを削除する場合は,クラスタ全体のキュー・マネージャ・プロセスが, 指定されたファイルにアクセスする必要があります。 キュー・マネージャ・プロセスがファイルにアクセスしない場合は,ファイルのプリントとキュー登録は行われますが,ファイルは削除はされません。
指定したファイルが存在するディスクをクラスタ全体にマウントすると, PRINT/DELETE または SUBMIT/DELETE コマンドがそのファイルを削除したかどうか確認できます。 ディスクをクラスタ全体にマウントするには,MOUNT コマンドに /CLUSTER 修飾子を指定します。
操作環境の制限で,クラスタ全体にディスクをマウントできない場合には,そのディスクにアクセスするノードでキュー・マネージャ・プロセスを実行することにより,この問題を解決できます。
キュー・マネージャ・プロセスを実行するノードを指定するには,START/QUEUE/MANAGER コマンドに /ON=ノード修飾子を指定して実行します。
この修飾子についての詳細は,
『OpenVMS DCL ディクショナリ』 を参照してください。
14.8.7 装置制御ライブラリ・モジュールの追加または削除時の問題
装置制御ライブラリ・モジュールを追加または削除しようとしたときに, 次のメッセージが表示される場合があります。
$LIBRAR-F-OPENIN, error opening module-name
-RMS-E-FLK, file currently locked by another user
ライブラリ・モジュールを追加または削除するためには,ライブラリが割り当てられているすべての出力キューを停止する必要があります。 ライブラリが割り当てられているキューを調べたい場合は,次の操作を行います。
次の形式で SHOW QUEUE/FULL コマンドを入力する。
SHOW QUEUE/FULL/OUTPUT= ファイル名
ファイル名は,コマンドの出力の送り先にするファイルの名前。
SEARCH コマンドを使用して,出力ファイルから目的のライブラリ名を検索する。
検索結果には,ライブラリが割り当てられているすべてのキューが含まれています。 それらキューを停止させ,再度ライブラリ・モジュールを追加または削除するためのコマンドを入力してください。
注意
INITIALIZE/QUEUE,または START/QUEUE コマンドに /LIBRARY 修飾子を指定して, 明示的にライブラリをキュー割り当てていない場合, SHOW QUEUE/FULL コマンドによってキューに割り当てられているライブラリが示されることはありません。 明示的にライブラリをキューに割り当てていない場合は, 省略時のライブラリ SYSDEVCTL が使用されます。
削除しようとするモジュールが省略時のライブラリの SYSDEVCTL に含まれている場合は,SHOW QUEUE/FULL コマンドによってライブラリが示されないすべてのキューを停止する必要があります。 SHOW QUEUE/FULL の出力に SYSDEVCTL ライブラリも含まれるようにしたい場合は,キューを再起動するときに /LIBRARY=SYSDEVCTL を指定してください。
キューをすぐに停止させることが不可能な場合は, 次の操作を行います。
COPY コマンドを使用して,変更するライブラリを自分のディレクトリにコピーする。
ライブラリのコピーにモジュールを追加するか, コピーからモジュールを削除する。
COPY コマンドを使用して,ライブラリを SYS$COMMON:[SYSLIB] に戻す。 変更したライブラリの名前を変更しないかぎり,各キューは,再起動されたときにライブラリを認識する。
異種プリンタを大量に使用している場合は,ライブラリの数を増やして,
各ライブラリが割り当てられるキューを減らすことにより,
この問題の発生を防ぐ一助とすることができます。
14.6.8.3 項
で説明したように,
プリンタのタイプごとにライブラリを作成して,割り当ててみてください。
14.8.8 使用不能キューの修正
キュー・マネージャは,検出した破損を修正します。 破損がキュー・レコードで検出されれば,キューを使用不能にして破損を分離します。 キューが使用不能にされると, 次のメッセージがコンソールおよびオペレータ・ログ・ファイルに出力されます。
%QMAN-I-QUEDISCOR, queue 'queue_name' has been
disabled due to database corruption
キューが使用不能にされている場合には,キューを変更または登録しようとすると,次のメッセージが表示されます。
%JBC-E-QUEDISABLED, disabled queue cannot be modified, nor can a job be
submitted to it
上記のいずれかのメッセージが表示されたら,次の作業を実行してください。
弊社のサポート担当者に連絡をする。
キューを削除してから新規キューを作成して置き換える。
キューに問題が生じ,それを弊社に報告する必要がある場合には, できる限り多くの情報をご提供ください。 13.12 節 には,弊社がキュー・システムを診断する際に最も有用な事項を説明してあります。