[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

13 キューの設定と保守

プリンタを使用する場合,またはバッチ処理を行う場合は,キュー を使用する必要があります。キューを使用すると,プリントおよびバッチ処理の要求を登録しておき, 資源が使用できるようになれば,登録しておいたユーザのジョブをプリントしたり, バッチ処理したりできます。

プリンタをセットアップする場合には,キュー・マネージャとキュー・ データベースをどのように操作するか,またOpenVMSでどのようにこれらを作成するかについて理解する必要があります。 これらについては第12章で説明しています。

本章の内容

本章では,次の作業について説明します。

作業
小型システム上のキュー管理 第13.1.1項
バッチ・キュー環境の設計 第13.2.1 項
出力キュー環境の設計 第13.2.2項
キュー設定の計画 第13.3 節
キューの作成と起動 第13.4節
再ブート時の実行キューの再起動 第13.5節
キュー・ オプションの使用 第13.6節
フォームの使用と作成 第13.6.7項
キュー管理コマンドの使用 第13.7.1項
ジョブの管理 第13.7.2 項
キューに関する問題の解決 第13.8節

さらに,次の項目について説明します。

項目
キュー・ プロセス 第13.1 節
キューの種類 第13.1.2項
自動起動機能 第13.1.3 項
キュー・アクセス制御オプション 第13.6.1項
ジョブ保持 第13.6.2項
キュー特性 第13.6.3項
バッチ処理オプション 第13.6.4項
ジョブ・スケジューリング・ オプション 第13.6.5 項
バナー・ページ 第13.6.6項
フォームとストック 第13.6.7 項
ページと行のあふれ 第13.6.7.8項
初期改ページ 第13.6.7.9 項
装置制御ライブラリ 第13.6.8項


注意
本章では,多くの場所でDCL コマンドを参照しています。DCLコマンドについての詳細は,『OpenVMS DCL ディクショナリ』を参照してください。

13.1 キュー登録

DCLのSUBMITまたはPRINTコマンドを入力する,またはアプリケーションを介してキューに登録されたバッチ・ ジョブまたはプリント・ジョブは,キューに送られて処理を待ちます。 ジョブのタイプ,ファイル名,キュー名, 特殊オプションを含めた,ユーザのキュー要求についての情報は,キュー・ マネージャに送られます。キュー・マネージャは該当する情報をキュー・ データベースに記録し,実際にジョブをプリントまたは実行するときにデータベースから読み出します。

また,キュー・マネージャはジョブを適切なキューに登録して,ジョブの処理の順番を待ちます。1 台のプリンタが一度にプリントできるプリント・ ジョブは1つだけですが,バッチ・キューのバッチ・ジョブは一度に複数実行することができます。

キュー・マネージャ,キュー・データベース,バッチ・キュー,プリント・ シンビオントを含めたプリント・キューの操作については,第12章を参照してください。

13.1.1 小型システムのキュー管理

キューで利用できる機能の多くは,ワークステーションなどのように最低限のキューしか必要としない小型システムでは必要ありません。 小型システムをご使用の場合には, 次の節をお読みください。

項目
簡単なバッチ・ キュー構成 第13.2.1.1 項
簡単な出力キュー構成 第13.2.2.1項
キューの設定と起動 第13.3節
キュー・オプションの選択と指定 第13.6 節
キューの管理 第13.7.1項
キューのジョブの管理 第13.7.2 項

13.1.2 キューのクラスと種類

バッチ・キューとプリント・キューは,一般的に次の2つのクラスに分けることができます。

クラス 説明
実行キュー 処理を待つバッチまたはプリント・ ジョブを受け付けるキュー。
汎用キュー 適切な実行キューが使用可能になるまでジョブを保留するキュー。 実行キューが使用可能になると, キュー・マネージャは,その使用可能な実行キューにジョブを再登録する。

以降の項では,実行キューと汎用キューについてさらに詳しく説明します。

13.1.2.1 実行キュー

実行キューの各タイプを説明します。

13.1.2.2 汎用キュー

次に汎用キューの種類を説明します。

13.1.3 自動起動キュー

可能なかぎり自動起動型のキューを使用することをおすすめします。 自動起動機能は,実行キューの起動を簡略化して, できるだけキューがいつでも利用できるようにします。自動起動機能によって可能なことは次のとおりです。

自動起動型キューを使用するためには,次の作業を実行する必要があります。

作業 説明
1 キューを自動起動キューとして作成し,オプションとしてフェイルオーバ・ リストを指定する。
2 自動起動のためにキューをアクティブにする。 この操作はキューを作成するとき,またはキューを作成した後で実行できる。
3 ノードで自動起動機能を有効にする。 この操作は,キューを作成する前または作成した後に実行できる。

ノードで自動起動機能を有効にすると,キュー・マネージャはノードで実行可能なすべての停止されていたキューとアクティブ自動起動キューを自動的に起動する。 そのノードにフェイルオーバされた自動起動キューも自動的に起動される。

詳細は第13.3節を参照してください。

13.2 キュー環境の設計

この後の節では,バッチ・キュー環境および出力キュー環境の設計方法について説明します。

13.2.1 バッチ・キュー環境の設計

1つのキュー,複数のキュー,またはOpenVMS Cluster環境に対してバッチ・ キューを設計できます。次の表で参照している各節では,バッチ処理環境を設計するのに役立つ構成の例を図で示しています。 実際の構成では, ここに示した複数の例から適切な要素を組み合わせて使用できます。

構成 参照箇所
バッチ処理が少なく,キューは1つでよい。 第13.2.1.1項
バッチ処理が大量にあり,複数のキューが必要である。または, 特殊なバッチ処理を行うため独自のキューが必要である。 第13.2.1.2項
OpenVMS Cluster環境である。 第13.2.1.3項
キューができるだけ常時使用可能な状態になっている必要がある。 第13.1.3 項

13.2.1.1 単純なバッチ・キュー構成の使用

おもに会話型処理をサポートするスタンドアロン・システムの場合は,この単純な構成を使用できます。 この構成は,必要とされるバッチ処理が限定されている場合に適しています。

図 13-1は1つの省略時のバッチ・ キューを示しています。

図 13-1 省略時のバッチ・キュー

SUBMITコマンドでバッチ・ジョブがキュー登録された場合,省略時の設定では, ジョブはSYS$BATCHというキューに登録されます。スタンドアロン型システムで省略時のキューを1 つだけ設定する場合,キューの名前はSYS$BATCH にしてください。

13.2.1.2 特殊な要件があるバッチ・キュー

ユーザのバッチ処理の要件が大きかったり,あるいは特殊な処理の要件がある場合は, 複数のキューを設定しなければならないことがあります。そうした場合は, バッチ・キューのジョブに性能オプションと資源オプションを指定することによって, キューをカスタマイズし,特殊なジョブに対応することができます。

図 13-2は複数のキューの構成例であり, それぞれのキューが特定の種類のバッチ・ ジョブを処理するためにカスタマイズされています。

図 13-2 特別な資源オプションと性能オプションを設定した複数のバッチ・ キュー構成例

図 13-2の例のSYS$BATCHは省略時のキューです。 通常のバッチ・ジョブはこのキューに登録されます。FASTキューは, メモリからスワップされることがない優先順位の高いジョブを実行します。SLOW は,優先順位の低いジョブを処理するためのバックグラウンド・ キューです。これらは物理メモリを大量に必要とする大きいジョブです。

キューの基本優先順位とスワップを有効にするか無効にするかの変更は, 慎重に行ってください。ちょっと変更しただけでも,バッチ処理と会話型処理性能に多大な悪影響を与えることがあります。 たとえば,キューの基本優先順位を1 増やしただけでも,性能に多大な影響があることがあります。

バッチ・キューに対するこれらのオプションの指定方法については,第13.6.4項で説明します。

13.2.1.3 OpenVMS Cluster環境内での汎用バッチ・ キュー

第13.1.2項で説明したように,汎用キューを使用してOpenVMS Cluster のノード間でバッチ処理を分散させることにより, OpenVMS Cluster環境で資源利用のバランスを取ることができます。

図 13-3は,そうした分散を行うときの代表的な構成例を表したものです。

図 13-3 クラスタ全体に汎用キューを分散させたバッチ・ キューの構成例

図 13-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 Systems』を参照してください。 汎用キューの作成方法については, 第13.4.3項を参照してください。

13.2.2 出力キュー環境の設計

次の構成例を使用して,バッチ処理環境を設計してください。ユーザの構成は, これらの例の中からいくつかの要素を組み合わせて設計できます。

設定 参照箇所
限定された用途で1つのプリンタキューがあればよい 第13.2.2.1項
異機種のプリンタを使用する 第13.2.2.2項
PostScriptプリントを行う 第13.2.2.3 項
複数のシステムからプリンタにアクセスする 第13.2.2.4 項
同一種のプリンタを複数台使用する 第13.2.2.5 項
OpenVMS Cluster環境である 第13.2.2.6 項
出力キューを使用せずに直接プリンタに出力を行うアプリケーションを使用する 第13.2.2.7項
分散プリントを行う 第13.2.2.8 項

13.2.2.1 簡単な出力キュー構成

図 13-4は,簡単なキュー構成について説明したものです。 この構成は,プリンタが1台のスタンドアロン・システムに適した構成です。

図 13-4 簡単な出力キュー

PRINTコマンドでプリント・ジョブがキュー登録された場合,省略時の設定では, ジョブはSYS$PRINTというキューに登録されます。スタンドアロン型システムで省略時のプリンタ・ キューを1つだけ設定する場合,キューの名前はSYS$PRINT にしてください。

13.2.2.2 異種プリンタを使用する場合

LN03プリンタ,LA210プリンタ,LP27ライン・プリンタというように,複数の異種プリンタを使用している場合は, それぞれのプリンタ別にキューを設定する必要があります。 これは,省略時のフォームや装置制御ライブラリなど, それらのキューで使用するオプションが,たいていのプリンタごとに異なるためです。 たとえば,ライン・プリンタの省略時のフォームの幅が132 カラムであるの対し,LN03プリンタの省略時のフォームの幅が80 カラムということがあります。

図 13-5は,こうしたケースでの出力実行キューの構成例です。

図 13-5 異種プリンタ使用時のキュー構成

13.2.2.3 PostScriptプリントを行う場合

オペレーティング・システムには,PostScriptプリントをサポートするソフトウェアが含まれていません。PostScript プリントを行うためには,次のいずれかが必要です。

詳細は弊社のサポート担当者にお問い合わせください。

13.2.2.4 LATプリンタを使用する場合

複数のシステムまたは複数のOpenVMS Cluster環境間でプリンタを共用する場合は, ターミナル・サーバのLATポートにプリンタを接続します。図 13-6 は,ターミナル・サーバに遠隔プリンタを接続したときの出力キューの構成例を表したものです。

図 13-6 ターミナル・サーバに遠隔プリンタを接続したときの構成例

通常,LATプリンタは複数のシステムまたは複数のクラスタのユーザの間で共用されるため,LAT キューが使用不能になったときに影響を受けるユーザの数は多くなります。 このため,できるだけ常時使用可能になるよう,LAT キューはフェイルオーバ・リストを使用して,自動起動型として設定することをおすすめします。

自動起動型キューの作成方法については,第13.4.2 項を参照してください。

13.2.2.5 汎用出力キュー

ライン・プリンタ3台というように,同一種のプリンタを複数台使用する場合は, 汎用キューを使用して,プリンタ間のプリント負荷のバランスを取るべきです。 図 13-7は,そうしたキューの構成例を表しています。

図 13-7 3台の同種プリンタ使用時の汎用キュー構成

汎用キューの作成方法については,第13.4.3項で詳しく説明します。

13.2.2.6 OpenVMS Clusterキュー

図 13-8は,OpenVMS Cluster用の代表的な出力キュー構成例を表しています。 クラスタのキュー構成については,『OpenVMS Cluster Systems』を参照してください。

図 13-8 OpenVMS Clusterにおける出力キュー構成

13.2.2.7 スプールされたプリンタ

出力キューを使用せずにプリンタに直接出力を行うアプリケーションを使用する場合, またはLATキューを使用する場合は,プリンタをスプールすることをおすすめします。 プリンタをスプールすると,アプリケーション・ プログラムは中間記憶装置に出力を書き込むため,プログラムの動作中でも他のユーザがプリンタを使用することができます。

図 13-9は,スプールされたプリンタを使用するときの出力キュー構成を表したものです。

図 13-9 スプールされた装置を使用するときのキュー構成

スプールされたプリンタについては,第7.8.2.1 項を参照してください。

13.2.2.8 プリントの分散

OpenVMSバッチおよびプリント・キュー登録システムを使用すると,ローカル・ システムやOpenVMS Clusterに接続された出力装置でファイルをプリントすることができます。

これに対しDQS (Distributed Queuing System:分散キュー・システム) は,OpenVMSのキュー登録システムのプリント機能を分散環境に広げるレイヤード製品です。DQS を使用して,ネットワーク上の遠隔ノードに接続されている出力装置でファイルをプリントすることができます。

このDQSについての詳細は,DQSの資料を参照するか,弊社のサポート担当者にお問い合わせください。

13.3 キュー設定の計画

ジョブをキューに登録するためには,キューを作成する必要があります。 つまり,ジョブが処理を開始できるようにキューを起動する必要があります。 キューを設定し起動するには,次の順序で作業を行ってください。

ステップ 作業 参照箇所
1 キュー・マネージャの起動, キュー・データベースの作成を確認する。 第12.5節
2 出力キューを使用する場合は,出力装置を設定して, ブート時に装置を設定するコマンド・プロシージャを作成する。 第13.3.1 項
3 フォーム, 特性,バナー・ページなど,キュー・オプションを使用する場合には, これらのオプションの指定に必要な修飾子を決定する。さらに, キューを作成する前に使用するフォームと特性を定義する(この手順の説明は長くなるため, ステップ5を説明した節の後に,対応する節が設けられている) 。 第13.6 節
4 キューを作成して, 起動する。 第13.4 節
5 ブートのたびに必要な設定作業を実行するコマンド・ プロシージャを作成する。 第13.5節

13.3.1 出力装置の設定

出力キューを作成するためには,それらキューが出力を送る装置を設定しておく必要があります。

作業方法

  1. ユーザがアクセスするプリンタやプロッタなどの出力装置をインストールする。 インストール方法については,装置付属の資料を参照すること。

  2. LATプリンタを使用する場合は,論理LATポートを作成する。LAT プリンタが使用可能なすべてのサービス・ノードに論理LAT ポートを作成し,ターミナル・サーバ・ノードの物理ポートまたはサービスに対応付ける必要がある。 このために使用するコマンドは,LATCP のCREATE PORTとSET PORTコマンド。詳細は『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』を参照すること。

  3. SETコマンドを使用して,ターミナル・ポートに接続されているライン・ プリンタとプリンタに装置特性を設定する(第7.8.1項を参照)。 ステップ5では,システムのブートのたびに装置を設定するコマンド・ プロシージャを作成する。 装置特性を設定するためのコマンドは,コマンド・プロシージャに登録すること。

  4. プリンタをスプールする。LATプリンタを使用する場合,またはプリンタに直接出力を行うアプリケーションを使用する場合は, プリンタをスプールすること。プリンタのスプールについては,第13.2.2.7項を参照。

    プリンタをスプールするためには,SET DEVICE/SPOOLEDコマンドを使用する。 詳細は第7.8.2.1項を参照すること。

  5. システムのブートのたびに装置特性の設定とプリンタのスプールを行うコマンド・ プロシージャを作成する。ステップ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】

この例では,次の操作を実行します。

【1】
ライン・プリンタ装置のパラメータを設定する。
【2】
LATプリンタ装置のパラメータを設定する。
【3】
装置をスプールし,LPA0というキューを作成する。
【4】
装置をスプールし,LN03_1というキューを作成する。

13.4 キューの作成と起動

キューは次の順序で作成します。

  1. 実行キュー

  2. 汎用キュー

キューの作成と起動についての詳細は,以降の項を参照してください。

作業 参照箇所
自動起動型実行キュー 第13.4.1 項
非自動起動型実行キュー 第13.4.2項
汎用キュー 第13.4.3 項

13.4.1 自動起動実行キューの作成と起動

自動起動実行キューを作成して起動するには,次の操作を実行します。

  1. 自動起動キューとしてキューを作成し,オプションとしてフェイルオーバ・ リストを指定する。

  2. 自動起動のためにキューをアクティブにする。この操作は,キューを作成するとき, またはキューを作成した後で実行できる。

  3. ノードで自動起動機能を有効にする。この操作は,キューを作成する前または作成した後で実行できる。

     $ 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】

この例では,次の操作を実行します。

【1】
LPA0という自動起動キューを作成し, それを自動起動のためにアクティブにする。これはフェイルオーバ・ リストが指定された自動起動キューであるため,このキューは,LILITH::LPA0 またはSMITTN::LPA0で実行できる。
【2】
LATプリンタに対してLN03_1 という自動起動キューを作成し,それを自動起動のためにアクティブにする。 これはフェイルオーバ・リストが指定された自動起動キューであるため,LILITH ノードのLTA3331:またはSMITTNノードのLTA555: というLATポートに接続されたプリンタで実行できる。
【3】
プロセスが実行されているノードで自動起動機能を有効にする。 このノードがLILITHであるとする。 LPA0とLN03_1は,いずれもLILITHノードで実行できるアクティブな自動起動キューであるため, これらのキューはこのノードで起動する。
【4】
SMITTNノードで自動起動機能を有効にする。LILITH が使用不可になると,LPA0とLN03_1はどちらもSMITTNノードにフェイルオーバできる。

各作業についての詳細は,この後の節を参照してください。

13.4.1.1 自動起動キューの作成

自動起動型実行キューを作成するためには,次の表に示す形式でINTIALIZE/QUEUE コマンドに/AUTOSTART_ON修飾子を指定します。

キューの種類 使用するコマンド
出力キュー INITIALIZE/QUEUE /AUTOSTART_ON= (ノード名::[装置名:] [,...])キュー名

ノード名::には,キューを実行するノード名を指定すること。

装置名:には,キューの出力先となる出力装置名を指定すること。 自動起動キューを別のノードと装置にフェイルオーバするために, ノードと装置をコンマで区切って指定すること。

バッチ・キュー INITIALIZE/QUEUE/BATCH /AUTOSTART_ON=(ノード名:: [,...])キュー名

/BATCH修飾子はバッチ・キューを作成する。

ノード名::には,キューを実行するノード名を指定すること。自動起動キューを別のノードと装置にフェイルオーバするために, ノードをコンマで区切って指定すること。


重要
ノード名::に指定されたノード名が, 既存のノード名であるかチェックされることはありません。 したがって,誤ったノード名を指定することのないように注意してください。

フェイルオーバ・リストの指定方法

フェイルオーバ・リストを指定するには,次の操作を実行します。

13.4.1.2 自動起動型キューのアクティブ設定

自動起動型キューは,次のいずれかの方法で最初にアクティブにする必要があります。

アクティブになった自動起動型キューは, STOP/QUEUE/NEXTコマンド,またはSTOP/QUEUE/RESET コマンドで停止させられないかぎり,アクティブであり続けます。 ノードをシャットダウンしても,それによってノードの自動起動型キューがアクティブでなくなることはありません。

非アクティブな自動起動型キューを起動する

STOP/QUEUE/NEXTコマンド,またはSTOP/QUEUE/RESETコマンドで非アクティブにした自動起動型キューを起動する場合は,START/QUEUE コマンドを入力します。 これにより,キューは自動的にキュー・マネージャによって起動されます。 この場合,次のいずれかになります。

13.4.1.3 自動起動キューの有効化

自動起動キューを起動するノードで自動起動機能を有効にしなければなりません。 この操作は,自動起動キューを作成する前または作成した後で実行できます。 自動起動機能を有効にするには,次の操作を実行してください。

  1. 自動起動キューを実行する各ノード(キューが後でフェイルオーバされる可能性のあるノードも含む) に対して,次のコマンドを入力する。
         $ ENABLE AUTOSTART/QUEUES
    

    ノードで自動起動機能を有効にすると,次の処理を自動的に実行するようキュー・ マネージャに通知される。

    省略時の設定では,コマンドは,そのコマンドを入力したノードでのみ有効である。 別のノードで自動起動機能を有効にするには,/ON_ NODE修飾子を指定する。


    注意
    ENABLE AUTOSTART/QUEUESコマンドは, ノードで動作可能な,アクティブな自動起動型キューしか起動しません。 このコマンドを入力しても自動起動キューが起動しない場合には, そのキューは自動起動に対してアクティブになっていません。 第13.4.1.2項で説明したように, 自動起動型キューは最初にアクティブにしておく必要があります。

  2. 自動起動型キューを実行するすべてのノードのスタートアップ・ コマンド・プロシージャにENABLE AUTOSTART/QUEUESコマンドを登録して, ノードのブートのたびに自動起動が有効になるようにする。

停止した自動起動キューの起動

ノード上のアクティブな停止中の自動起動型キューはすべて,ENABLE AUTOSTART/QUEUEコマンドでキューの自動起動を有効にすることにより, まとめて起動することができます。したがって,キューごとにSTART /QUEUEコマンドを登録する必要はありません。

ノードが再ブートすると,ENABLE AUTOSTART/QUEUEコマンドが入力されないかぎり, 自動起動は有効にはなりません。

13.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テンプレートには, この他の例も含まれています。

13.4.2 非自動起動型実行キューの作成と起動

ここでは非自動起動型実行キューの作成と起動の方法について説明します。

次の例は,SYS$BATCHという名前でバッチ・キューを作成し,ノードLILITH: で起動する例です。

     $ INITIALIZE/QUEUE/START/BATCH/ON=LILITH::SYS$BATCH

13.4.2.1 非自動起動キューの作成

非自動起動実行キューを作成するには,次の表に示すように,INITIALIZE /QUEUEコマンドに/ON修飾子を指定します。

キューの種類 コマンド
出力キュー INITIALIZE/QUEUE /ON=ノード名:: 装置名:キュー名

ノード名::には,キューを実行するノード名を指定すること。

装置名:には,キューの出力先となる出力装置名を指定する。

バッチ・キュー INITIALIZE/QUEUE/BATCH /ON=ノード名::キュー名

バッチ・キューを作成するためには,/BATCH修飾子を指定する必要がある。

ノード名::には,キューを実行するノード名を指定すること。

13.4.2.2 非自動起動キューの起動

非自動起動キューは,次のいずれかの方法で起動しなければなりません。

13.4.3 汎用キューの作成と起動

この節では汎用キューの作成と起動の方法について説明します。

13.4.3.1 汎用キューの作成

汎用キーを作成するには,次の表に示すように,INITIALIZE/QUEUEコマンドに/GENERIC 修飾子を指定します。

キューの種類 コマンド
出力キュー INITIALIZE/QUEUE /GENERIC[=(キュー名[,...])] キュー名

/GENERIC修飾子はキューが汎用キューであることを指定する。

最初のキュー名に対しては,汎用キューがジョブを送信する送信先の実行キューを指定する。

2番目のキュー名に対しては,出力が送信される汎用キューを指定する。

バッチ・キュー INITIALIZE/QUEUE/BATCH /GENERIC[=(キュー名[,...])キュー名

バッチ・キューを作成するには,/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

13.4.3.2 汎用キューの起動

汎用キューは,次のいずれかの方法で起動しなければなりません。

13.5 再ブート時の実行キューの再起動

フォーム,特性,キューに関する情報はキュー・データベースに格納されます。 この理由から,ノードやOpenVMS Clusterシステムが再ブートするたびに, フォーム,キュー,特性を作成する必要はありません。しかし, ノードを再ブートするたびに,非自動起動実行キューを起動し,自動起動機能を有効に設定しなければなりません。 そのために,コマンド・プロシージャを作成します。

システム構成が単純な場合,一般にこのようなコマンドは,汎用的なサイト別スタートアップ・ コマンド・プロシージャSYSTARTUP_VMS.COMに登録する方法もあります。 ただし大量のコマンドが必要になる場合は,コマンド・ プロシージャ・ファイルを別に作成し,それをSYSTARTUP_VMS.COMから実行するようにしてください。

ノードがシャットダウンされると,汎用キューは自動的に停止されます。 したがって,スタートアップ・コマンドプロシージャに汎用キューの起動コマンドを入れる必要はありません。

13.6 キュー・オプションの使用

次の表は,キューに対して使用できるオプションを示しています。

オプション キューの種類 参照箇所
キュー・アクセス制御オプション バッチと出力 第13.6.1項
ジョブ保持オプション バッチと出力 第13.6.2項
キュー特性オプション バッチと出力 第13.6.3項
バッチ処理オプション バッチ 第13.6.4項
ジョブ・ スケジューリング・オプション 出力 第13.6.5項
バナー・ ページ・オプション 出力 第13.6.6項
フォーム・ オプション 出力 第13.6.7項
ページあふれ制御オプションと行あふれ制御オプション 出力 第13.6.7.8項
初期改ページの抑制 出力 第13.6.7.9項
装置制御ライブラリ・ オプション 出力 第13.6.8 項

各オプションは次のいずれかの方法で指定します。

表 13-1は,キュー・オプションを指定するために使用できる修飾子と, 各オプションを指定できるキューのタイプを示しています。

表 13-1 キュー・オプション設定用の修飾子

修飾子 キュー・タイプ 説明 参照箇所
/AUTOSTART_ON バッチと出力 自動起動型実行キューを作成して,キューが動作可能なノードを( 出力キューの場合は装置も)指定する。 第13.4.1項
/BASE_PRIORITY バッチと出力 ジョブ・スケジューリング優先順位と異なる基本プロセス優先順位を指定する。 バッチ・キューの場合は,キューのジョブを実行するプロセスの基本優先順位, 出力キューの場合は,シンビオント・プロセスの基本優先順位を指定する。 第13.6.4.1 項
/BLOCK_LIMIT 出力 出力実行キューで処理可能なプリント・ジョブのサイズを制限する。 第13.6.5.1項
/CHARACTERISTIC
/CHARACTERISTICS
バッチと出力 キューの特性を指定する。 第13.6.3 項
/CPUDEFAULT バッチ キューから実行されるバッチ・ジョブに対する省略時のCPU 時間割り当ての基本値を定義する。 第13.6.4項
/CPUMAXIMUM バッチ キューから実行されるバッチ・ ジョブに対する最大CPU時間制限を定義する。 第13.6.4項
/DEFAULT 出力 PRINTコマンドのいくつかのオプションに対する省略時の値を設定する。 この修飾子を使用してキューのオプションを設定しておくと, ユーザがPRINTコマンドでオプションを指定する必要がなくなる。 ただし,ここで設定した省略時の値はPRINT コマンドで変更可能。設定可能な省略時のオプションは次のとおり。


BURST 第13.6.6 項


FEED 第13.6.7.8 項


FLAG 第13.6.6項


FORM 第13.6.7項


TRAILER 第13.6.6項
/DESCRIPTION バッチと出力 キューに関する情報をユーザに提供する文字列を定義する。
/DEVICE 出力 出力実行キューのタイプを指定する。指定可能なキーワードは次のとおり。

PRINTER (省略時の設定)

TERMINAL

SERVER

第13.7.1.1項
/DISABLE_SWAPPING バッチ キューから実行するバッチ・ジョブをスワップ・ イン,スワップ・アウトするかどうか指定する。 第13.6.4項
/FORM_MOUNTED 出力 出力実行キューに対するマウント・ フォームを指定する。 第13.6.7項
/GENERIC バッチと出力 汎用キューを作成し, それがジョブを送り込む実行キュー名を指定する。 第13.4.3.1項
/JOB_LIMIT バッチ バッチ・キューから同時並行で実行可能なバッチ・ ジョブ数を指定する。 第13.6.4項
/LIBRARY 出力 装置制御ライブラリのファイル名を指定する。 第13.6.8 項
/NAME_OF_MANAGER バッチと出力 キューと関係のあるキュー・マネージャ名を指定する。 第12.8 節
/NO_INITIAL_FF 出力 出力実行キューの識別子を指定し,出力実行キューに送られる初期改ページを抑制する。 第13.6.7.9項
/ON バッチと出力 非自動起動型実行キューを作成して, キューが動作可能なノードを(出力キューの場合は装置も) 指定する。 第13.4.2.1 項
/OWNER_UIC バッチと出力 キューに対するUIC (利用者識別コード) を指定する。 第13.6.1.2 項
/PROCESSOR 出力 出力実行キューで使用するシンビオントを指定する。 省略時の設定は,標準オペレーティング・システムの標準プリント・シンビオントPRTSMB 。 第13.4.1 項
/PROTECTION バッチと出力 キューの保護コードを指定する。 第13.6.1.2項
/RECORD_BLOCKING 出力 出力装置に出力レコードを転送するときに, シンビオントによるレコード連結またはブロック化を許可するかどうか指定する。 第13.4.1項
/RETAIN バッチと出力 ジョブの実行後もキューにジョブを保持する。 第13.6.2項
/SCHEDULE 出力 キューに保留中のジョブのスケジューリングを, ジョブの大きさに基づいて行うかどうか指定する。 第13.6.5項
/SEPARATE 出力 出力実行キューに対するジョブ区切りまたはジョブ再設定オプションを指定する。 ここで指定したオプションは,PRINT コマンドで変更可能。設定可能なオプションは次のとおり。


BURST 第13.6.6 項


FLAG 第13.6.6項


RESET 第13.6.8項


TRAILER 第13.6.6項
/WSDEFAULT バッチと出力 バッチ・ キューの場合は,そこから実行されるバッチ・ジョブに対するワーキング・ セット・サイズ,出力キューの場合は,シンビオント・プロセスに対するワーキング・ セット・サイズを指定する。

この修飾子を使って値を設定した場合,キューにジョブを登録したユーザのUAF に定義されている値は無効になる。

第13.6.4項
/WSEXTENT バッチと出力 バッチ・キューの場合は, そこから実行されるバッチ・ジョブに対するワーキング・セット超過値, 出力キューの場合は,シンビオント・プロセスに対するワーキング・ セット超過値を指定する。

この修飾子を使って値を設定した場合,キューにジョブを登録したユーザのUAF に定義されている値は無効になる。

第13.6.4項
/WSQUOTA バッチと出力 バッチ・キューの場合は, そこから実行されるバッチ・ジョブに対するワーキング・セット・ クォータ,出力キューの場合は,シンビオント・プロセスに対するワーキング・ セット・クォータを指定する。

この修飾子を使って値を設定した場合,キューにジョブを登録したユーザのUAF に定義されている値は無効になる。

第13.6.4項

13.6.1 キューのアクセス制御

キューは永続的に機密保護管理をするオブジェクトです。キューはキューのセキュリティ・ プロファイルとともにシステム・キュー・データベースに格納されます。

ファイルやディレクトリ同様,キューに対するアクセスを,UICまたはACL に基づく保護機構を使って制御することができます。

システムの機密保護を確立する方法については,『OpenVMS Guide to System Security』を参照してください。

13.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』を参照。

13.6.1.2 UICに基づいたキュー保護の設定と表示

UICに基づくキューの保護を設定または表示するコマンドを次に示します。

コマンド 説明
INITIALIZE/QUEUE/PROTECTION=(所有者権[:アクセス権],...)
START/QUEUE/PROTECTION=(所有者権[:アクセス権],...)
SET QUEUE/PROTECTION=(所有者権[:アクセス権],...)
キューの保護を指定する。

  • 所有者権パラメータをシステム(S),所有者権(O),グループ(G) ,ワールド(W)のいずれかとして指定する。

  • アクセス・パラメータを読み込み(R),登録(S),管理(M),削除(D) として指定する。
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 キュー・クラスのオブジェクトに対して現在設定されている保護を表示する。

  1. 次の例は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
    

  2. 次の例では,所有者にキューの管理アクセス権および削除アクセス権を与えている。 また,ユーザ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>
    

13.6.1.3 ACLに基づくキュー保護

UICに基づく保護に加えて,ACL (アクセス制御リスト)でキューを保護することもできます。ACL に基づく保護は,UICグループという単位ではなく, 特定のプロジェクト・グループのメンバーがキューに対するアクセス権を必要とする場合にもっと細かいレベルの保護を実現します。

保護オブジェクトに対してACLを設定する詳細は『OpenVMS Guide to System Security』を参照してください。

13.6.1.4 ACLに基づくキュー保護の設定と表示

ACLに基づくキュー保護の設定または表示を行うコマンドを次に示します。

コマンド 説明
SET SECURITY/ACL=(IDENTIFIER= (識別子, ACCESS=アクセス・タイプ) [,...])CLASS=QUEUE キューのACL保護を設定
SHOW QUEUE/FULL キューのACL セットが存在すれば表示
SHOW SECURITY/CLASS=QUEUE VAXシステムでキューのACLセットが存在すれば表示

ACLに基づく機密保護についての詳細は,『OpenVMS Guide to System Security』を参照してください。

  1. 次の例の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)
    

  2. 次の例は,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))
    

  3. 次の例は,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)
    

13.6.1.5 キューに対する特権の働き

アカウント特権には,UICやACLに基づく保護に関係なくキューへのアクセスを可能にするものがあります。 次の表はそうしたアカウント特権と,それらの特権がキューに対して行えるアクセス・ タイプをまとめたものです。

特権 アクセス
OPER すべてのキューに対する管理アクセス権と制御アクセス権
BYPASS すべてのキューに対する管理アクセス権と制御アクセス権
READALL すべてのジョブに対する読み込みアクセス権とキューの機密保護情報に対する読み込みアクセス権
SYSPRV システムUIC のユーザに対して指定されたアクセス権
GRPPRV システムUICまたはグループUICのユーザに指定されたアクセス権

13.6.2 ジョブ保持オプションの使用

ジョブ保持オプションを使用すると,ユーザはジョブが完了した後も,ジョブをキューに保持しておくことができます。 システム管理者はジョブ保持オプションを使用して, ジョブが完了した後,キューに登録されているすべてのジョブに関する情報を保存できます。 他のユーザが登録したジョブを追跡する場合は, この機能を使用すると便利です。

13.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コマンドを使用して,異常終了したジョブのリストを表示することができます。 ジョブが正常終了しなかった場合には, このメッセージから,エラーが発生した理由を判断できます。また, 保持されていたジョブが完了した日付と時刻も表示されます。

キューに対してジョブ保持オプションを指定すると,そのキューのジョブに対してユーザが要求したジョブ保持オプションより優先します。 図 13-10は,汎用キューに登録されたジョブに対して, ジョブ保持機能がどのように影響するかを示しています。

図 13-10 ジョブ保持の決定

ジョブを削除しないかどうか,またジョブをどこに保持するかは,次の項目で決まります。

キューにジョブを保持した場合は,保持する必要のなくなったジョブを定期的に削除するようにしてください。

13.6.2.2 ジョブ保持の期限の指定

ユーザはジョブ保持の期限を指定できます。次の例を参照してください。

     $ SUBMIT/RETAIN=UNTIL=19-MAY-1998:07:31:0.0 MYFILE.DAT

この機能を使えば,キューに保持したジョブを手作業で削除する必要はありません。 したがって,/RETAIN修飾子を使用する場合は,ユーザにこの機能を使用させることをおすすめします。

13.6.2.3 ジョブの保持の変更

ジョブに対してユーザが指定した保持の原則を変更するには,次の形式でSET ENTRY コマンドに/RETAIN=オプション修飾子を指定します。

SET ENTRY/RETAIN=オプション エントリ番号

次のいずれかのオプションを指定できます。

オプション 説明
ALWAYS ジョブの終了状態に関係なくキューにジョブを残す。
DEFAULT キューの保持オプションの指定通りにキューにジョブを残す(第13.6.2項を参照)。 キューに保持オプションが設定されていない場合, ジョブは残されない。
ERROR ジョブが異常終了した場合にのみキューにジョブを残す。
UNTIL=時間 ジョブの終了状態に関係なく,指定された時間の間, キューにジョブを残す。このオプションを使うことにより,適当な時間だけキューにジョブを残し, 後でジョブを削除する手間を省くことができる。 時間値は最初にデルタ時間,次に複合時間,そして最後に絶対時刻と解釈される。 時間指定についての詳細は,『OpenVMSユーザーズ・マニュアル』を参照。

たとえば次のコマンドは,ジョブ終了後3時間を経過するまで172というジョブをキューに残します。3 時間を経過したとき,ジョブは自動的に削除されます。

     $ SET ENTRY/RETAIN=UNTIL="+3:00" 172

キューからジョブ保持オプションを削除するには,INITIALIZE/QUEUE コマンド,START/QUEUEコマンド,またはSET QUEUEコマンドに対して/NORETAIN 修飾子を指定します。

13.6.3 キュー特性の指定

特性とは,環境に関連するプリント・ジョブまたはバッチ・ジョブの属性です。 たとえば,プリンタの特性はインクの色,用紙の種類,プリンタの場所などです。 キューの特性を定義した後,ユーザはPRINTコマンドまたはSUBMIT コマンドを入力するときに,ジョブに関連付ける特性を指定できます。

ジョブの特性がキューが持っている特性の一部である場合には,プリント・ ジョブを実行キューで処理できます。しかし,ジョブに割り当てられた特性がキューに割り当てられていない場合には, 第13.8.2.2項で説明しているように, 特性の不一致が修正されるまで,ジョブは保留されます。

作業方法

キュー特性を指定するには,次の操作を実行します。

  1. DEFINE/CHARACTERISTICコマンドを使用して特性を作成する。

  2. 特性をキューに割り当てる。

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
ジョブに割り当てる特性の名前または番号を指定する。

以降の節では,キュー特性の指定の方法について説明します。

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

13.6.3.2 システムに定義されている特性の表示

システムに定義されている特性を表示したい場合は,次の例に示すようにSHOW QUEUE/CHARACTERISTICS コマンドを使用します。

     $ SHOW QUEUE/CHARACTERISTICS

     Characteristic name                  Number
     -------------------                  ------
     EAST                                      1
     WEST                                      2
     NORTH                                     3
     SOUTH                                     4

13.6.3.3 キューへの特性の割り当て

省略時の設定では,キューに特性は割り当てられていません。特性をキューに割り当てるには,INITIALIZE/QUEUE ,START/QUEUE,またはSET QUEUE コマンドに/CHARACTERISTICS修飾子を指定します。

     $ SET QUEUE/CHARACTERISTICS=(EAST) LN03_1

13.6.3.4 キューの特性の表示

キューに定義されている特性を知りたい場合は,次の例に示すように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))

13.6.3.5 キューに割り当てられた特性の取り消し

キューに割り当てられた特性を取り消すにはINITIALIZE/QUEUE, START /QUEUE,またはSET QUEUEコマンドに/NOCHARACTERISTICS修飾子を指定します。

13.6.3.6 特性の削除

特性の定義を削除する場合は,次の例に示すようにDCLのDELETE /CHARACTERISTICコマンドに特性名を指定します。

特性番号は分かっているが,特性名が分からないという場合は,SHOW QUEUE/CHARACTERISTICコマンドを使用して,システムに定義されている特性名と特性番号を調べることができます。

キューまたはジョブが特性を参照している場合,システムからは次のメッセージが返されます。

     %DELETE-E-NOTDELETED, error deleting characteristic
     -JBC-E-REFERENCED, existing references prevent deletion

特性を削除するためには,特性に対する参照をすべて削除しておく必要があります。 特性に対する参照の削除については,第13.8.5項を参照してください。

13.6.4 バッチ処理オプションの指定方法

INITIALIZE/QUEUE,START/QUEUE,SET QUEUEのいずれかのコマンドでキュー・ オプションを使用し,バッチ・ジョブの性能や,バッチ・ジョブを実行するプロセスのシステム資源の使用方法を制御することができます。

バッチ処理オプションの指定に使用可能な修飾子は次のとおりです。

修飾子 説明
/JOB_LIMIT=n キューで同時に実行可能なジョブ数を指定。
/[NO]DISABLE_SWAPPING キューでジョブを実行しているプロセスをメモリからスワップ可能にするかどうか指定。
/CPUDEFAULT=時間 省略時のCPU時間割り当ての基本値を指定する。/CPUMAXIMUM 修飾子で設定された時間割り当てを超えてはならない。
/CPUMAXIMUM=時間 キューのすべてのジョブに対して最大CPU時間制限を指定。

また,バッチ処理オプションの指定では,次の修飾子を使用することもできます。 これらの修飾子は実際にはバッチ・キュー専用ではありませんが, バッチ・ジョブの性能や,バッチ・ジョブを実行するプロセスのシステム資源の使用方法を制御するための修飾子として使用されるのが普通です。

オプション 説明
/BASE_PRIORITY=n バッチ・キューから起動するジョブの基本プロセス優先順位を指定する。
/WSDEFAULT=n バッチ・キューから実行するジョブの省略時のワーキング・ セット・サイズを指定する。 出力キューの場合は,シンビオント・プロセスに対する省略時のワーキング・ セット・サイズである。
/WSEXTENT=n バッチ・キューから実行するジョブのワーキング・ セット超過値を指定する。出力キューの場合は,シンビオント・ プロセスに対する省略時のワーキング・セット超過値である。
/WSQUOTA=n バッチ・ キューから実行するジョブのワーキング・セット・クォータを指定する。 出力キューの場合は,シンビオント・プロセスに対する省略時のワーキング・ セット・クォータである。

こうした制限値,クォータ,優先順位については,次のマニュアルを参照してください。

省略時の設定では,バッチ・ジョブを実行するプロセスは,ジョブをキュー登録したユーザのUAF レコードの値かSYSGENパラメータ設定値を使用します。 また,キュー・オプションに値が指定された場合は,ジョブのキュー登録時にユーザによる値の変更がないかぎり, キューに指定された値を使用します。 ユーザは,ジョブのキュー登録時,CPU時間の他,省略時の値, クォータ,超過値などワーキング・セットのオプションを指定することができます。

ユーザが指定する値は,管理者がキューに対して設定した値より小さくなければなりません。 管理者が値を指定していない場合には,ユーザが指定する値は, 関連するUAFの上限またはシステム・パラメータに指定された値より小さくなければなりません。

次に,これらのオプションの値を選択するときのガイドラインを説明します。

オプション 参照箇所
基本プロセス優先順位 第13.6.4.1 項
ジョブ制限 第13.6.4.2項
ワーキング・ セットの省略時設定,クォータ,超過値 第13.6.4.3項
CPU時間の省略時の値と最大値 第13.6.4.4 項
スワッピング 第13.6.4.5項
メモリ制約付きシステム用のオプション 第13.6.4.6項
Sort/Mergeユーティリティの最適化 第13.6.4.7 項

13.6.4.1 基本プロセス優先順位

優先順位値の選択は,バッチ・ジョブを処理したい速度に基づいて行ってください。 システム・パラメータ値DEFPRI (通常は4)に等しい値を選択した場合, キューのジョブは一般の会話型ジョブと同じレベルの速度で処理されます。 これは,CPU時間が十分に使用できるシステムに適切です。

一方,DEFPRIより小さい値を選択した場合,キューのジョブの処理速度は一般の会話型ジョブと同程度になる可能性があります。 これは,DEFPRI優先順位のジョブのサービスを終えた後しか, キューのジョブにCPU時間が割り当てられないためです。

非常に特殊な目的で定義されたキューには,つまり,高い優先順位のジョブには,DEFPRI より大きな値を割り当てます(5など)。ただし,このような割り当てをすると, 他のユーザやバッチ・ジョブの性能に大幅な影響を及ぼすことがあります。

13.6.4.2 ジョブ制限

バッチ・ジョブは会話型ジョブの性能に影響を与えるので,DEFPRIまたはそれより高い基本プロセス優先順位を使用するときは, ジョブ制限値を抑えてください。

13.6.4.3 ワーキング・セットの省略時の値とクォータ, 超過値

ワーキング・セットに関するオプションが指定されなかった場合,キューのジョブには, 所有者の利用者登録ファイル(UAF)レコードに指定された値が適用されます。

プロセス制限 説明
ワーキング・セットの省略時の値 各イメージの終了時にワーキング・ セットが戻るべき値。一般に,この値は比較的に小さい値にすべきであり, 通常は,ユーザのUAFレコードに指定されている値のままにしておくのがよい。
ワーキング・ セット・クォータ メモリ制約があるシステムで, キューの各バッチ・ジョブが使用する物理メモリ量を示す値。
ワーキング・セット超過値 メモリが豊富なシステムにおいてキューの各バッチ・ジョブが使用可能な最大物理メモリ量を示す値。

一般に,このオプションには大きな値を設定する。ワーキング・セット超過値はワーキング・ セットの上限のサイズ。したがって,ジョブがさらにメモリを必要としたとしても, この値よりワーキング・セットが大きくなることない。 このオプションの値を小さくしすぎると,システムに大量の未使用メモリがあっても, 頻繁にジョブがページ・フォルトを起こすことになる。 安全を期すためには,システムで設定可能な最大ワーキング・セット・ サイズを示すシステム・パラメータ値WSMAXと同じ値にすることを推奨。

一般にワーキング・セットのクォータと超過値は,ユーザのUAFレコードに指定されている値で十分ですが, キューの用途によっては,値をもっと緩めたり, もっと厳しくしたりする必要が出てくることがあります。たとえば, 大きなプログラムのコンパイルやリンクなど,大きなジョブをバッチ・ ジョブとして処理したり,資源を多く必要としないジョブを会話形式で処理する場合などです。 そのような場合は,次のようにクォータと超過値を設定します。

13.6.4.4 CPU時間の省略時の値と最大値

CPU制限値を設定することによって,ジョブが使用可能なCPU時間を短くしたり, 長くしたりすることができます。

CPU時間制限値をあまり小さく設定しないでください。CPU時間制限値を超えたジョブはエラー終了します。 前の項で説明したように,ワーキング・ セットの値が小さすぎても,メモリの使用効率が落ちるだけで,ジョブは正常に終了することができます。 しかし,CPU時間制限値が小さすぎると, 許可された範囲内でCPUを正しく使用しているジョブも途中終了してしまうことがあります。

たとえば,CPUループに陥る可能性がある新しいソフトウェアの実行専用のバッチ・ キューに,CPU時間制限値を設定したと仮定します。そうすることによって無限ループが終了するため,CPU 資源の無駄遣いになりません。 しかしながら,正常に動作しているジョブが途中終了することのないよう, 制限値の選択には注意し,十分に大きな値にする必要があります。

CPU資源の割り当てを制御するもう1つの方法は,1日のうちで,より多くのCPU 時間を割り当てることができるもっと負荷の少ない時間にジョブの実行を行う専用のバッチ・ キューを作成することです。

13.6.4.5 スワッピング

一般に,バッチ・キューではスワッピングを有効にします。ただし,非常に特殊な目的を持つ, 優先順位の高いキューでは,無効にした方がよいかもしれません。 オペレーティング・システムのスワッピングとトリミング機構を介して, プロセスからのメモリ再利用が必要になる時期を考える必要がなくなるため, キューのジョブに適した環境が実現されます。

詳細は『Guide to OpenVMS Performance Management』を参照してください。

13.6.4.6 メモリが制限されたシステムのためのオプション

メモリが制限されたシステムでは,すべてのバッチ・キューでバッチ・ワーキング・ セットにとって必要なページの合計を求めます。また,会話型ジョブに対して十分な流動メモリが残るようにしなければなりません。

流動メモリは,スワッピングやページングによって1つのプロセスから別のプロセスに再割り当てできます。 流動メモリは,総メモリから,オペレーティング・ システムに永久的に割り当てられたページ数を差し引いたときに残る容量から計算できます。 これらの値を求めるには,SHOW MEMORY コマンドを入力します。

13.6.4.7 SORT/MERGEユーティリティ用バッチ・キューの最適化

ソートを行うジョブ専用のバッチ・キューを作成し,非常に大きなワーキング・ セット・クォータを設定することによって,OpenVMSのSORT/MERGE ユーティリティの処理速度を向上させることができます。

また,プロセス割り当て量を設定することによって,最大のSORT処理速度を実現することもできます。 ここで推奨する値は,単純にSORTの効率性だけを考慮したものです。 実際に適切な値を決定するにあたっては,その他の事項も考慮する必要があります。

13.6.5 ジョブのスケジューリング優先順位の変更

キュー・マネージャは次の基準に従って,処理可能状態のバッチ・ジョブとプリント・ ジョブのスケジューリング優先順位を決定します。

  1. ジョブ・スケジューリング優先順位

    キュー・マネージャは,ジョブのスケジューリング優先順位を調べ, 最も優先順位の高いジョブを最初に処理する。ジョブ・スケジューリング優先順位は, 基本プロセス優先順位や現在のプロセス優先順位とは異なる。 ユーザはPRINTやSUBMITコマンドで/PRIORITY修飾子を使用して, ジョブ・スケジューリング優先順位を指定することができる。

  2. サイズ(任意,出力ジョブのみに適用)

    省略時の設定では,キュー・マネージャは出力ジョブのサイズを調べ, スケジューリング優先順位が同じジョブについては,小さいジョブを先に処理する。

    キューが/SCHEDULE=NOSIZEオプションを使用して作成,起動,または変更されている場合, ジョブのサイズはチェックされない。

  3. 登録時刻

    スケジューリング優先順位が同じジョブについては,キュー登録時刻が早い方のジョブを先に処理する。

作業方法

ジョブ・スケジューリング・オプションを指定するには,次の操作を実行します。

  1. ジョブのサイズを基準にして,プリント・ジョブの実行順序を設定するかどうかを指定する。

  2. 印刷するジョブに対して,ブロック制限を設定するかどうかを指定する。

ジョブ・スケジューリング・オプションのコマンド

ジョブ・スケジューリング・オプションを指定するコマンドを次に示します。

コマンド 説明
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は最高の優先順位である。

13.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修飾子を指定します。

13.6.5.2 ジョブのスケジューリング優先順位の変更

バッチ・ジョブやプリント・ジョブを処理できない場合には,そのジョブは保留状態になり, 保留状態になった原因が解決されるまで処理されません。 詳細は第13.8.2項を参照してください。

ジョブのスケジューリング優先順位を変更するには,次の形式でSET ENTRYコマンドに/PRIORITY修飾子を指定します。

SET ENTRY/PRIORITY=n エントリ番号

次の例では,ジョブのスケジューリング優先順位を50に変更します。

     $ SET ENTRY/PRIORITY=50 1131

ジョブのスケジューリング優先順位と,キューの基本プロセス優先順位を混同しないでください。 ジョブのスケジューリング優先順位の値は0〜255 の範囲です。ただし,0は最低の優先順位であり,255は最高の優先順位です。 ジョブのスケジューリング優先順位を示す/PRIORITYの省略時の値は, システム・パラメータDEFQUEPRIの値です(通常は100に設定されます) 。

13.6.6 バナー・ページ

バナー・ページとは,キューに対して設定できる,特殊な形式のページであり, 印刷を終了するときに出力ジョブを識別し,ジョブの区切りを確認するのに役立ちます。 また,バナー・ページはジョブに複数のジョブがある場合にそれらのファイルを区切り, 識別するのにも役立ちます。

バナー・ページには次の2種類があります。

ほとんどのサイトでは,使用可能なバナー・ページのうち,その一部だけしか使用しません。 次の表は使用できるバナー・ページのタイプを示しています。

タイプ 説明 参照箇所
ジョブ・ ページ
フラグ ・ページ 各ジョブの前にプリントされる1枚のページ 図 13-11
バースト ・ページ 各ジョブの前にプリントされる,区切りバー( バースト・バー)で区切られた 2枚のフラグ・ページ 図 13-11
トレーラ ・ページ 各ジョブの最後にプリントされる1 枚のページ 図 13-13
ファイル・ ページ
フラグ ・ページ ジョブの各ファイルの前にプリントされる1枚のページ 図 13-12
バースト ・ページ ジョブの各ファイルの前にプリントされる, 区切りバー(バースト・バー)で区切られた2 枚のフラグ・ページ 図 13-12
トレーラ ・ページ ジョブの各ファイルの最後にプリントされる1 枚のページ 図 13-13


注意
プリンタの出力ページをバーストする必要がない場合, たとえばプリンタでカット紙を使用している場合には, バースト・ページ・オプションは使用しないでください。通常, ジョブの最後を識別するには,フラグ・ページだけか,またはフラグ・ページとトレーラ・ ページだけで十分です。

ジョブ・フラグ・ページ,ファイル・フラグ・ページ,ジョブ・ トレーラ・ページ,ファイル・トレーラ・ページの詳細は表 13-2 を参照してください。

表 13-2 ジョブ・ページとファイル・ページの内容

項目 説明
ヘッダ・ バー 次のもので構成されるセグメント化されたバー。

ジョブ・フラグ・ページ:

次のもので構成されるシングル・セグメント・バー。

  • キュー内でのジョブの順序を示す数値を繰り返した行。

  • PSM$ANNOUNCEシステム論理名を定義することにより指定される, 埋め込みテキスト文字列。文字列の長さは1枚のフォーム幅に制限される。PSM$ANNOUNCE が定義されていない場合には,省略時のテキスト文字列は"Compaq Computer Corporation" とシステム・バージョン番号である( フォーム幅が狭いときは"Compaq"を使用する)。

ファイル・フラグ・ページ:

次のもので構成される3セグメント・バー。

  • 中央のセグメントはジョブ・フラグ・ページと同一である。

  • ジョブ内でのファイルの順序を示す文字を繰り返した行で構成される両側のセグメント。

ジョブ・トレーラ・ページ:

次のもので構成される3セグメント・バー:

  • "END OF JOB"というバナーのついた中央セグメント。

  • ジョブの順序を示す数値を印刷した両側のセグメント。

ファイル・トレーラ・ページ:

次の要素で構成される5セグメント・バー。

  • "END OF FILE"というバナーのついた中央セグメント。

  • ジョブの順序を示す数字を印刷した両側の内側のセグメント。

  • ファイルの順序を示す文字を印刷した両側の外側のセグメント。
注記 PRINT/NOTEコマンドを使用してユーザが指定する255 文字以内の文字列。
識別バナー ジョブを登録したプロセスのユーザ名,ジョブ名, ジョブ番号を印刷する。
修飾子句(ファイル・ トレーラ・ページのみ) ジョブがキューに登録されたときにアクティブだったプリント修飾子, キュー修飾子,フォーム修飾子を印刷する。 アクティブでなかった修飾子は印刷しない(ただし,/NORECORD_ BLOCKINGと/NOFEEDは例外である)。
ファイル文( ファイル・フラグ・ページとファイル・トレーラ・ページのみ) 次の情報を示す。

  • 完全なファイル指定(装置とディレクトリ,ファイル名,ファイル・ タイプ,バージョン,更新日時)

  • ファイル・サイズ(ブロック数)

  • ファイルの編成方式

  • ファイルの所有者のUIC

  • ファイル・レコード特性:レコード・タイプ,キャリッジ制御, 最大レコード・サイズ
受信ボックス(ジョブ・トレーラ・ページのみ) Received:,Date:,Operator:というサインオフ・フィールドを印刷する。
ジョブ文 次の情報を示す。

  • ジョブ名とジョブ番号

  • ジョブが登録されたキューの名前

  • 登録の日時

  • プロセス・ユーザ名,UIC,アカウント

  • ジョブのスケジューリング優先順位

  • プリント装置名

  • ジョブの起動時刻

  • 実行キュー名
フッタ・バー 次の要素で構成されるセグメント化されたバー:

ジョブ・フラグ・ページ:

ジョブ・フラグ・ヘッダ・バーと同一であるが,システム論理名(PSM$ANNOUNCE) の定義は埋め込み文字列として使用されない。埋め込み文字列として常に省略時のテキストが使用される。


ファイル・フラグ・ページ:

ファイル・フラグ・ヘッダ・バーと同一であるが,埋め込みテキスト文字列は"Compaq Computer Corporation" とオペレーティング・システムのバージョン番号である。


ジョブ・トレーラ・ページ:

ジョブ・フラグ・ヘッダ・バーと同一であるが,システム論理名(PSM$ANNOUNCE) の定義は埋め込み文字列として使用されない。


ファイル・トレーラ・ページ:

ファイル・フラグ・ヘッダ・バーと同一であるが,埋め込みテキスト文字列は"Compaq Computer Corporation" とオペレーティング・システムのバージョン番号である。

ルーラ(ファイル・トレーラ・ ページとジョブ・トレーラ・ページのみ) フォームの最後までカウントした一連の数字。

図 13-11は,ジョブのフラグ・ ページとバースト・ページの例です。図 13-12 は,ファイル・フラグ・ページとファイル・バースト・ページの例です。 図 13-13は,ファイル・ トレーラ・ページとジョブ・トレーラ・ページの例です。

図 13-11 ジョブのフラグ・ページとバースト・ ページ

図 13-12 ファイルのフラグ・ページとバースト・ ページ

図 13-13 ファイルとジョブのトレーラ・ページ

ファイルとジョブのバナー・ページでサポートされているフォームのサイズは, 幅が40文字以上,200文字以下,長さが40文字以上です。200文字を超える幅のページが要求された場合は, 書式整形されて,200文字の幅でプリントされます。 長さが40文字より短いページが要求された場合は,40 文字のしきい値を超えるまで拡張されます。バナー・ページの書式整形では, マージンは考慮されません。


注意
バナー・ページの情報は常に, 省略時のフォーム・サイズの80文字X 51行に合わせて書式整形されます。 このため,指定フォーム・サイズによっては,一部情報が捨てられることがあります。 行およびページあふれの制御については,第13.6.7.8項で説明します。

バナー・ページを指定するコマンド

バナー・ページに関する操作で使用するコマンドは次のとおりです。

コマンド 説明
INITIALIZE/QUEUE/SEPARATE= オプション
START/QUEUE/SEPARATE= オプション
SET QUEUE/SEPARATE= オプション
次のジョブ・ バナー・ページ・オプションを指定する。
[NO]BURST
[NO]FLAG
[NO]TRAILER

キューに指定されたジョブ・バナー・ページをユーザは変更できない。

INITIALIZE/QUEUE/DEFAULT= オプション=キーワード
START/QUEUE/DEFAULT= オプション=キーワード
SET QUEUE/DEFAULT= オプション=キーワード
次のファイル・バナー・ページ・オプションを指定する。
[NO]BURST
[NO]FLAG
[NO]TRAILER

キーワードはALLかONEのいずれか。

ユーザは,PRINTコマンドに/BURST,/FLAG,/TRAILERのいずれかの修飾子を指定することによって, キューに指定されたファイル・バナー・ページを変更することができる。

PRINT/BURST [=キーワード] ジョブに対してALLかONEキーワードを指定することによって, キューに指定されたファイル・バースト・ ページを無効にする。
PRINT/FLAG[=キーワード ] ジョブに対してALLかONEキーワードを指定することによって, キューに指定されたファイル・フラグ・ページを無効にする。
PRINT/TRAILER [=キーワード ] ジョブに対してALLかONEキーワードを指定することによって, キューに指定されたファイル・トレーラ・ページを無効にする。

13.6.7 フォームの使用と作成

プリント・フォームは,特定のページ書式設定属性(マージン,ページ長, 行の折り返しなど)を指定します。また,フォーム定義に指定された用紙ストックは, ジョブが印刷に適しているかどうかを判断するときに使用されます。

OpenVMSでは,次のいずれかを使用できます。

フォームのマウント

フォームのストックは,ジョブが印刷に適しているかどうかに影響します。 ストックはキューのマウントされたフォームと一致しなければなりません。 マウントされたフォームとは,現在のジョブのフォーム, またはジョブが処理中でないときは,キューで最後に印刷されたジョブのフォームです。

ジョブのフォームのストックが,キューにマウントされているフォームのストックと一致する場合には, そのジョブはジョブのフォームのオプションを使用して処理されます。 マウントされたフォームは,キューで処理されているジョブのフォームに自動的に変化します。 ストックがマウントされたフォームのストックと一致しない場合には, 管理者が特別な処理を実行するまで, ジョブは保留状態になります(第13.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を自動的に使用します。

しかし,省略時のフォームを変更する場合には,そのフォームを参照するキューを作成する に変更しなければなりません。変更方法については, 第13.6.7.3項を参照してください。

カスタマイズしたフォームを作成するには,第13.6.7.4 項で説明している手順を実行します。

この後の節では,すべてのフォーム,システム単位の省略時のフォーム, カスタマイズしたフォームに対して,これらの作業を実行する場合のガイドラインを示します。

作業 フォームの種類 参照箇所
システムで定義されているフォームの表示 すべてのフォーム 第13.6.7.1項
キューに割り当てられているフォームの表示 すべてのフォーム 第13.6.7.2 項
システム単位の省略時のフォームの変更 省略時のフォーム 第13.6.7.3項
フォームの作成 カスタマイズされたフォーム 第13.6.7.4 項
キューの省略時のフォームの割り当て カスタマイズされたフォーム 第13.6.7.5項
キューでのフォームのマウント カスタマイズされたフォーム 第13.6.7.6 項
フォームの削除 カスタマイズされたフォーム 第13.6.7.7項
行とページのあふれの制御 すべてのフォーム 第13.6.7.8項
初期改ページの禁止 すべてのフォーム 第13.6.7.9項

13.6.7.1 システムに定義されているフォームの表示

システムに定義されているフォームの情報を表示したい場合は,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

13.6.7.2 キューに割り当てられているフォームの表示

キューの省略時のフォームを表示するには,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)

13.6.7.3 システム単位の省略時のフォームの変更

/DEFAULT=FORM修飾子を使用せずに初期化したキューでは,フォーム定義が指定されていないプリント・ ジョブを処理するために,システム単位の省略時のフォームが使用されます。 システム単位の省略時のフォームはフォーム番号0 に対応し,次のオプションを使用します。


/MARGIN=(BOTTOM=6)
/STOCK=DEFAULT
/TRUNCATE
/WIDTH=132
/LENGTH=66

これらのオプションについては表 13-3 を参照してください。

システム単位の省略時のフォームを変更するには,次の形式でDEFINE /FORMコマンドを使用します。

DEFINE/FORM DEFAULT 0 /修飾子

省略時の下マージンを6から4に変更し,ページ長を66から55に変更するには, 次のコマンドを入力します。

     $ DEFINE/FORM DEFAULT 0/MARGIN=(BOTTOM=4)/LENGTH=55


注意
キューまたはジョブでフォームを参照した後, そのフォームのストックを変更することはできません。 省略時のフォームのストックを変更するときは,キューを作成する前に変更してください。

13.6.7.4 カスタマイズしたフォームの作成

カスタマイズしたフォームを作成するには,次の操作を実行します。

  1. 次の形式でDEFINE/FORMコマンドを入力する。

    DEFINE/FORM フォーム名 フォーム番号[/修飾子]

  2. 各出力実行キューに対して省略時のフォームを割り当てる。第13.6.7.5項で説明するように, INITIALIZE/QUEUE,START/QUEUE,SET QUEUEコマンドのいずれかに/DEFAULT=FORM= 種類修飾子を指定する。

    省略時のフォームをキューに割り当てなかった場合には,キューはシステム単位の省略時のフォームを使用する。

  3. 使用できるフォームと,そのフォームを使用するキューをユーザに通知する。 必要に応じて,PRINTコマンドにフォームを自動的に指定できるようにシンボルを作成できる。 次の例を参照。
         $ PRINT_REPORT :== PRINT/FORM=REPORT
    

フォームを作成する場合には,表 13-3 に示した修飾子を指定できます。

表 13-3 DEFINE/FORM修飾子

修飾子 働き
/WIDTH=n 用紙の物理的な幅を示す文字数を指定する。
/LENGTH=n 用紙の物理的な長さを示す文字数を指定する。
/[NO]TRUNCATE /WIDTHと/MARGIN値で決まる行幅を超えた文字を廃棄するよう指定する( 第13.6.7.8 項を参照)。
/[NO]WRAP /WIDTHと/MARGIN値で決まる行幅を超えた文字を次行送りするよう指定する( 第13.6.7.8項を参照)。
/MARGIN= (オプション=n[,...]) マージンの空白スペース数を指定する。 マージンはBOTTOM,LEFT,RIGHT,TOPの4 つ。
/[NO]PAGE_SETUP= (モジュール[,...]) 各ページの始まりで装置を設定する装置制御モジュールを指定する( 第13.6.8.4 項を参照)。
/SETUP=(モジュール [,...]) 各ファイルの始まりで装置を設定する装置制御モジュールを指定する( 第13.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"

13.6.7.5 キューへの省略時のフォームの割り当て

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

13.6.7.6 キューへのフォームのマウント

キューへのフォームのマウントは,INITIALIZE/QUEUE,START/QUEUE,SET QUEUEのいずれかのコマンドに,次の形式で/FORM_MOUNTED修飾子を使用することによって行います。

INITIALIZE/QUEUE/FORM_MOUNTED=タイプ

タイプはDEFINE/FORMコマンドで定義されるフォーム名または番号です。

ストックが一致しないためにプリント・ジョブが保留状態になっている場合には, プリンタのストックを要求されたストックに変更し,要求されたストックに関連付けられたフォームをキューにマウントするか, または第13.8.2.1項で説明している他のいずれかの処理を実行します。

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

フォームを削除するためには,フォームに対する参照をすべて削除しておく必要があります。 フォームに対する参照の削除については,第13.8.5項を参照してください。

13.6.7.8 ページあふれ制御オプションと行あふれ制御

プリント・シンビオントが整形しても,行やページの長さがプリンタの行幅やページ長を超えることがあります。 そうした場合は,キュー・オプションを使用して, 行あふれやページあふれを制御することができます。

行あふれの制御

行あふれは,フォーム定義で制御することをおすすめします。このためには, 物理的な装置幅の限界に達する前に行送りや行切り詰めを行わないよう, ターミナルとプリンタを設定する必要があります。


注意
プリント・シンビオントはフォームに基づいて行幅を決定します。 プリント・シンビオントがデータの書式整形を終えた後, 行幅が装置の/WIDTH設定より広い場合は, /TRUNCATEか/WRAPオプションが設定されていればその設定を使用して,デバイス・ ドライバは行の切り詰めか行送りを行います。

左右と上下マージンの設定は,フォームごとに変えることができます。そしてユーザは, フォームを使ってページあふれと行あふれを制御することにより, 別のフォームに切り換えることができます。このときオペレータがキューを停止させて, 装置の設定を変更し,再度キューを起動させるという必要はありません。 キュー・マネージャは,現在マウントされているフォームと同じストックを使って自動的に任意のフォームをマウントします。 オペレータ支援が必要になるのは,現在マウントされているフォームのストックと, 異なるストックのフォームをマウントする場合だけです。 詳細は第13.8.2.1項を参照してください。

行あふれを制御したい場合は,DCLのDEFINE/FORMコマンドでフォームを作成するときに, 表 13-3で説明されている/[NO]TRUNCATE と/[NO]WRAPの修飾子を指定します。

ページあふれ

ページあふれを制御する場合は,INITIALIZE/QUEUE,START/QUEUE,またはSET QUEUE コマンドで/DEFAULT=[NO]FEED修飾子を使用します。この修飾子は, シンビオントがデータの下マージン部分へのあふれを検出したときに, 改ページ文字を自動的に挿入するかどうかを制御します。ユーザは, PRINT/FEEDまたはPRINT/NOFEEDコマンドを使用して,キューに指定された改ページ・ オプションの省略時の設定を変更できます。

ユーザはまた,PRINTコマンドに/PASSALL修飾子を指定して,プリント・ シンビオントが行うあらゆるフォーマッティング処理(改行を含む)をバイパスできます。 省略時の設定は/NOPASSALLです。/PASSALL修飾子は,プリント・ シンビオントによるフォーマッティングが希望するフォーマッティングと異なる場合に使用してください。/PASSALL 修飾子を使用すると,すべてのフォーマッティングを上書きして, プリント・シンビオントはデバイス・ ドライバに入出力を送ります。

13.6.7.9 初期改ページの抑制

プリント・キューを開始すると,改ページが出力装置に送られて,印刷が始まる前に, 用紙がページの一番先頭にくるように設定されます。初期改ページのために, キュー開始時に,空白のページが印刷されます。

初期改ページを実行しないようにするには,INITIALIZE/QUEUE,SET QUEUE,START/QUEUEコマンドのいずれかに/NO_INITIAL_FF修飾子を指定します。

13.6.8 装置制御ライブラリ

装置制御ライブラリは,ユーザが作成したテキスト,またはエスケープ・ シーケンスのモジュールから構成されるテキスト形式のライブラリです。 装置制御ライブラリ・モジュールを使用すると, 次の操作を実行できます。

装置制御モジュールは次の3種類あり,それぞれプリント・ジョブ内での位置によって区別されます。

モジュール・タイプ 説明
SETUPモジュール ファイルの先頭に挿入。
PAGE_SETUPモジュール 各ページの先頭に挿入。
RESETモジュール 各ジョブの終わりに挿入。ジョブの最後でプリンタを既知状態に再設定するときに使用する。

作業方法

装置制御ライブラリ・オプションを使用する手順は次のとおりです。

  1. ライブラリを作成して,モジュールを登録する。

  2. キューに装置制御ライブラリを割り当てる。省略時のライブラリ名SYSDEVCTL.TLB を使用する場合,このステップは必要ない。

  3. 設定またはページ設定モジュールを指定して,フォームを作成する。

  4. キューに再設定モジュールを割り当てる。

プリント・ジョブを処理するためのコマンド

プリント・ジョブを処理するために,装置制御ライブラリ・モジュールをセットアップするコマンドを次に示します。

コマンド 説明
DEFINE/FORM/SETUP ジョブの各ファイルの先頭に, 装置を設定する1つ以上のモジュールを指定する。
DEFINE/FORM/[NO]PAGE_SETUP ジョブの各ページの先頭に, 装置を設定する1つ以上のモジュールを指定する。
INITIALIZE/QUEUE/LIBRARY
START/QUEUE/LIBRARY
装置制御ライブラリのファイル名を指定する。
INITIALIZE/QUEUE/SEPARATE=[NO]RESET
START/QUEUE/SEPARATE=[NO]RESET
SET QUEUE/SEPARATE=[NO]RESET
キューのジョブ・リセット・ シーケンスを格納した1つ以上の装置制御ライブラリ・モジュールを指定する。
PRINT/FORM プリント・ジョブに関連付けたフォームの名前または番号を指定する。

13.6.8.1 装置制御モジュールの出力順序

装置制御モジュールは,次の順序でプリンタに送られます。

  1. キューに割り当てられた再設定モジュール(再設定モジュールは, キュー起動後に最初のジョブをプリントしたこの時点で初めて使用される。)

  2. フォーム定義に指定された設定モジュール

  3. フォーム定義に指定されたページ設定モジュール

  4. PRINTコマンドで指定された設定モジュール

  5. ファイル1の1ページ目

  6. フォーム定義に指定されたページ設定モジュール

  7. ファイル1の2ページ目以降

  8. フォーム定義に指定されたページ設定モジュール

  9. ファイル1の最終ページ

  10. フォーム定義に指定された設定モジュール

  11. フォーム定義に指定されたページ設定モジュール

  12. PRINTコマンドで指定された設定モジュール

  13. ファイル2の1ページ目

  14. フォーム定義に指定されたページ設定モジュール

  15. ファイル2の2ページ目以降

  16. フォーム定義に指定されたページ設定モジュール

  17. ファイル2の最終ページ

  18. キューに割り当てられた再設定モジュール

以降の節では,装置制御ライブラリの管理方法を説明します。

13.6.8.2 装置制御ライブラリの作成とモジュールの登録

装置制御ライブラリの作成とモジュールの登録は,次の手順で行います。

  1. 次の形式でLIBRARY/CREATEコマンドを入力して,装置制御ライブラリを作成する。

    LIBRARY/CREATE/TEXT SYS$COMMON:[SYSLIB] ファイル名.TLB

  2. モジュールの内容,すなわち,登録するテキスト,または目的のプリンタの設定に必要なエスケープ・ シーケンスを決定する。プリンタ・ オプションの正しいエスケープ・シーケンスを確認したい場合は, 目的のプリンタの操作手引書を参照すること。

  3. モジュール・ファイルを作成して,エスケープ・シーケンス, キャリッジ制御文字,テキストを入力する。モジュール・ファイルの作成および編集方法は, 通常のテキスト・ファイルを作成および編集する方法と同じである。 ファイルの最後にキャリッジ・リターンや行送りが入らないようにすること。 そうした文字が入ると,プリンタの出力に影響する。

  4. 次の形式のLIBRARY/INSERTコマンドを入力して,装置制御ライブラリに作成したモジュールを登録する。

    LIBRARY/INSERT/TEXT ライブラリ・ファイル モジュール・ファイル


注意
ライブラリに対するモジュールの登録または削除は, ライブラリに割り当てられているすべての出力キューを停止してから行う必要があります。

ライブラリの作成とモジュールの登録のさらに詳しい内容については,『OpenVMS Command Definition, Librarian, and Message Utilities Manual』を参照してください。

13.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であると見なします。 別のノードのライブラリ・ファイルをコピーして使用する場合は, 必ず一意のファイル名を付けてください。

特定の装置制御ライブラリ・モジュールが必要な操作では,キューに指定されたライブラリの該当するモジュールが使用されます。 ライブラリを使用する場合には, 次のガイドラインに従ってください。

3つのライブラリに横長方向にプリンタを設定するモジュールが格納されている場合, これらのモジュールには3つのすべてのライブラリでLANDSCAPE という名前を付けます。このようにしておくと,それぞれのモジュールには異なる装置固有のシーケンスが格納されますが, ライブラリに指定した名前のモジュールが格納されているどのキューに対しても, 同じフォームを使用できます。

特定のライブラリに格納されているすべてのモジュールを表示するには, 次のコマンドを使用します。

LIBRARY/LIST/FULL SYS$LIBRARY:ライブラリ名.TLB

13.6.8.4 設定モジュールとページ設定モジュールを使用したフォームの定義

キューに対して設定モジュールまたはページ・セットアップ・モジュールを指定するためには,DEFINE/FORM コマンドに/SETUP=モジュール 修飾子,または/PAGE_SETUP=モジュール修飾子を指定します。/SETUP 修飾子に指定したモジュールは,ジョブの各ファイルのプリント前, フォームがマウントされたときにプリンタに送られます。同様に,/PAGE_SETUP 修飾子に指定したモジュールは,ジョブの各ページのプリント前にプリンタに送られます。

ユーザは,PRINTコマンドに次のいずれかの修飾子を指定することにより, モジュールを要求できます。

13.6.8.5 キューへの再設定モジュールの割り当て

出力実行キューにモジュールを割り当て,各ジョブの最後にプリンタを既知状態に再設定したい場合は, 次の例に示すように, 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

13.7 キューの管理

キューの設定を終えたら,キューを監視および制御し,必要ならば変更も行います。

また,キューの設定はスタートアップ時に制限されません。通常の操作を行っている間, 必要に応じてキューを作成し,起動することができます。 後でキューを設定する場合には,第13.4 節の説明を参照してください。

後で追加出力キューを作成する場合には,次のことを確実に行ってください。

13.7.1 キューの管理

キューの作成と制御に使用される基本的なコマンドを表 13-4 に示します。自動起動型であるか非自動起動型であるかの区別によって効果が異なるかどうかも説明しています。

表 13-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 ただちにキューを停止させ,その自動起動機能を非アクティブにする。 ただちにキューを停止させる。

以降の節では,キューの管理におけるこれらの作業について説明しています。

作業 参照箇所
キューの監視 第13.7.1.1 項
キューの変更 第13.7.1.2項
キューの一時停止 第13.7.1.3項
キューのクローズ 第13.7.1.4項
キューの停止 第13.7.1.5項
自動起動型キューの起動禁止 第13.7.1.6 項
ノード上の自動起動の禁止 第13.7.1.7 項
ノード上のすべてのキューの停止 第13.7.1.8項
システムのシャットダウン前のキューの停止 第13.7.1.9項
論理キューの割り当て 第13.7.1.10項
別のキューへのすべてのジョブの移動 第13.7.1.11 項
キューの削除 第13.7.1.12項

13.7.1.1 キューの監視

DCLのSHOW QUEUEコマンドを使用して,キューの状態を表示し,監視することができます。 次の形式でSHOW QUEUEコマンドを入力します。

SHOW QUEUE [/修飾子,...] [キュー名]

修飾子とキュー名のどちらも省略された場合,システムは,そこに存在するすべてのキューと, コマンド実行者が所有するすべてのジョブの状態を表示します。 修飾子には,キューのタイプや表示する情報量を指定することができます。

表示する情報を指定するための修飾子は次のとおりです。

修飾子 説明
/BY_JOB_STATUS
[=キーワード・リスト]
指定された状態のジョブを保持しているキューを表示する。 指定可能なキーワードは次のとおり。
EXECUTING
HOLDING
PENDING
RETAINED
TIMED_RELEASE

キーワードが省略された場合,省略時の設定ではすべての状態のキューが表示される。 ジョブ状態については,表 13-6を参照。

/BATCH バッチ実行キューの状態を表示する。
/DEVICE[=キーワード・ リスト] 出力実行キューを表示する。次のキーワードを指定することによって, 表示する実行キューのタイプが選択可能。
PRINTER
TERMINAL
SERVER

キーワードが省略された場合は,すべてのタイプの出力キューが表示される。

/GENERIC 汎用キューの状態を表示する。

表示する情報量を指定するための修飾子は次のとおりです。

修飾子 説明
/ALL_JOBS 選択されたキューのすべてのジョブに関する情報を表示する。
/BRIEF キューのジョブに関する情報を簡単なリスト形式で表示する。この形式はSHOW QUEUE コマンドの省略時の表示形式。
/FILES 各ジョブに関係するファイルのリストも表示する。
/FULL キューとジョブに関するすべての情報とともに, キューに設定されているACLも表示する。
/SUMMARY 動作中と保留中, 保持中,保持,そして指定時刻解放ジョブの合計を表示する。 ジョブ自体は表示されない。

いくつかの修飾子を組み合せることによって,表示するキューをもっと細かく指示することもできます。

SHOW QUEUEコマンドによって返されるキュー状態は,表 13-5 に示すとおりです。

表 13-5 SHOW/QUEUEコマンドで表示されるキュー状態

キュー状態 説明
Aligning キュー・マネージャがSTART/QUEUE/ALIGN コマンドを処理中である。
Autostart inactive 停止しており,アクティブにする必要がある( 第13.8.4項を参照)。
Available 少なくとも1つのジョブを処理中であるが, さらに同時に処理可能。
Busy ジョブの処理中のため,これ以上ジョブは処理不可能。
Closed クローズされており, オープンするまでジョブを受け付けられない(第13.7.1.4項を参照)。
Device unavailable 割り当てられている装置は使用不可。
Idle ジョブ処理を行っておらず, 処理可能な状態。
Paused キュー・マネージャがSTOP/QUEUEコマンドを処理中。
Pausing キュー・ マネージャがSTOP/QUEUEコマンドを処理中。
Remote 割り当てられている物理装置がローカル・ システムに接続されていない。
Resuming キュー・マネージャが休止中のSTART/QUEUEコマンドを処理中。
Server キュー処理はサーバ・ シンビオントに切り換え可能。
Stalled 装置関連の問題でシンビオント処理が一時的に停止中。
Starting 起動されたが,シンビオント・プロセスがアクティブではない。
Stopped 停止中であり, 起動されるまで処理は行われない。
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』を参照してください。

  1. 次は,すべてのプリンタおよびターミナル・キューのサマリ情報を表示している例である。
         $ 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
    

  2. 次は,動作中のすべてのジョブの状態とオプションを詳細に表示している例である。
         $ 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-1998 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-1998 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     Blocks  Status
           -----  -------         --------     ------  ------
             236  NM              ROSENBERG        12  Processing
                  Submitted 23-FEB-1998 08:42 /FORM=DEFAULT /PRIORITY=100
                  File: _$5$DISK3:[FOLK$.NM]NM$J1991072308340647.WRK;1
    

13.7.1.2 キューの変更

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コマンドで変更不可能なキュー・オプションは,次の手順で変更することができます。

  1. STOP/QUEUE/NEXTコマンドでキューを停止させる。

  2. START/QUEUEかINITIALIZE/QUEUE/STARTコマンドに目的のオプションの修飾子を指定して, キューを再起動する。

    指定しなかった修飾子は,前回初期設定,起動,または設定したときの状態のままである。

既存のキューを初期設定することによって,キューに現在存在するジョブが削除されることはありません。INITIALIZE/QUEUE コマンドによって新たに設定したキュー・ オプションは,キューで待ち状態になっているすべてのジョブ, あるいは以降キューに登録されたすべてのジョブに作用します。

バッチ・キューと出力キューに使用可能なオプションについては,表 13-1 を参照してください。

13.7.1.3 キューの一時停止

DCLコマンドSTOP/QUEUEを(修飾子を何も指定せずに)使用すると,キューに登録されているすべての現在のジョブの実行を一時的に停止させ, キューを一時停止状態にすることができます。出力キューの場合は,一時停止させることによって, プリント・ジョブの配置コマンドや位置調整コマンドを, プリント・シンビオントに対して発行することが可能です。SET/QUEUE コマンドによるプリント・ジョブの制御については,第13.7.2.7項で詳しく説明します。

一時停止させたキューの実行を再開する場合は,DCLのSTART/QUEUEコマンドを入力します。

13.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修飾子を使用してキューをオープンし, ジョブのキュー登録を可能にします。

13.7.1.5 キューの停止

キューを停止させたい場合は,次のいずれかのコマンドを使用します。

コマンド 説明
STOP/QUEUE/NEXT 実行中のすべてのジョブの終了を待ってから, キューを停止する。このコマンドが入力された場合, 新しいジョブは実行されない。
STOP/QUEUE/RESET キューをただちに停止させて,システムに制御を戻す。 現在実行中のジョブはただちに停止する。

エラー終了したジョブの保持を設定していない場合は,このコマンドを使ってキューを停止する前に SET QUEUE/RETAIN=ERROR コマンドを入力すること。 これにより,エラー終了したジョブに関する情報をキューに残すことができる。

プリント・ジョブに対してエラー発生時の保持を指定している場合は, SET ENTRY/RELEASE/NOCHECKPOINTコマンドを使用して,中断したジョブを最初から再起動できる。 省略時の設定では,プリント・ジョブは再起動可能, バッチ・ジョブは再起動不可能。バッチ・ジョブを再起動可能にするためには,/RESTART 修飾子を指定してジョブをキュー登録しておくこと。

第13.7.1.6項で説明するように, これらのコマンドは, 自動起動キューに対してキューの自動起動を非アクティブ化します。 停止中の非自動起動キューを再起動,または非アクティブ化されている自動起動キューのアクティブ化にはSTART/QUEUE コマンドを入力してください。

13.7.1.6 自動起動型キューの起動禁止

自動起動型キューが存在するシステムでSTOP/QUEUE/NEXTまたはSTOP /QUEUE/RESETコマンドを実行すると,START/QUEUEコマンドを入力するまでキューが停止し, 自動起動機能が非アクティブになります。

13.7.1.7 ノードの自動起動の禁止

DISABLE AUTOSTART/QUEUESコマンドは,ノードに対して次のことを行うようキュー・ マネージャに指示します。

省略時の設定では,DISABLE AUTOSTART/QUEUESコマンドは,このコマンドが入力されたノードでのみ有効です。 別のノードで自動起動機能を禁止するには,/ON_NODE 修飾子を指定します。

DISABLE AUTOSTART/QUEUESコマンドは,ノードをシャットダウンする前に使用します。 詳細は第13.7.1.9項を参照してください。

13.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コマンドを入力してください。詳細は第13.7.1.9項を参照してください。

13.7.1.9 システムのシャットダウン前のキューの停止

シャットダウン・コマンド・プロシージャSYS$SYSTE:SHUTDOWN.COMには次のコマンドが含まれており,SHUTWOND.COM を使用してノードをシャットダウンすると, 自動的に実行されます。

ジョブ終了後の自動起動型キューの停止

STOP/QUEUES/ON_NODEコマンドはジョブを途中で終了させ,ノードのすべてのキューを停止します。 一方,DISABLE AUTOSTARTコマンドは自動起動型キューのジョブの終了を待ち, それから,フェイルオーバか自動起動型キューの停止のいずれかの処理を行います。 システムで自動起動型キューを使用している場合は, ジョブを終了させてから,それらキューを停止することをおすすめします。

SHUTDOWN.COMでは,STOP/QUEUES/ON_NODEコマンドがノードのシャットダウンのすぐ前に実行されます。 そして,DISABLE AUTOSTART/QUEUESコマンドとシャットダウンまでの間隔を指定することにより, 自動起動型キューを停止する前にジョブが終了する猶予時間を与えることができます。

方法は次のいずれかです。

タイミング 方法
SHUTDOWN.COMの実行前 次の形式で論理名SHUTDOWN$DISABLE_AUTOSTART を定義し,時間間隔(単位:分)を設定する。

/SYSTEM/EXECUTIVE_MODE SHUTDOWN$DISABLE_AUTOSTART分数
SHUTDOWN.COMの実行中 次の形式でシャットダウン・ オプションに時間間隔(単位:分)を指定する。
     Shutdown options [NONE]:DISABLE_AUTOSTART=分数

自動起動型キューのジョブ数やジョブ・タイプに基づいて適当な時間間隔を決定してください。

SHUTDOWN.COMを使用せずにノードをシャットダウンする場合は,DISABLE AUTOSTART/QUEUESコマンドを入力して,数分ほどジョブが終了するのを待ち, それからSTOP/QUEUES/ON_NODEコマンドを入力することをおすすめします。

13.7.1.10 論理キューの割り当て

プリント装置に問題が発生した場合は,その装置に対応付けられているキューの内容を, 正しく動作する装置に対応付けられているキューに移し換えることができます。 この操作を実行するには,論理キューを作成します。 ジョブを別のキューに移動するために論理キューを作成するには,次の手順に従ってください。

  1. 次の形式でSTOP/QUEUE/NEXTコマンドを入力して,誤動作しているプリント装置に対応付けられているキューを停止させる。

    STOP/QUEUE/NEXT キュー名[:]

    このコマンドは新しいジョブの処理を禁止し,プリント装置が動作不能でないならば, 現在のジョブが最後まで処理されるのを可能にする。 装置が動作不能な場合は,STOP/QUEUE/RESETコマンドを使用してキューを停止し, ただちに装置へのすべての出力を取り消す。

  2. プリント装置をオフライン状態にする。

  3. 次の形式でASSIGN/QUEUEコマンドを入力して,誤動作しているプリント装置の既存のジョブを別のプリント装置に移す。

    ASSIGN/QUEUE キュー名[:] 論理キュー名[:]

    新しいプリント装置のオプションに新しいジョブの処理に問題となるものがないか調べること。

論理キューの割り当て解除

論理キューを割り当て解除する場合は,次のコマンドを使用します。

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

13.7.1.11 別のキューへのすべてのジョブの移動

キューを削除する前に,そこに登録されているすべてのジョブを別のキューに再登録したい場合があります。 そうした場合は,次の形式のASSIGN /MERGEコマンドを使用します。

ASSIGN/MERGE ターゲット・キュー ソース・キュー

ターゲット・キューはジョブの移動先のキュー,ソース・キュー は削除するキューです。

ASSIGN/MERGEコマンドは,ソース・キューに現在存在するすべてのジョブをターゲット・ キューに移動します。削除前にソース・キューに新しいジョブが登録された場合, そのジョブはソース・キューに残り,ターゲット・ キューに転送されません。したがって,ASSIGN/MERGEコマンドを入力する場合は, 第13.7.1.4項で説明するように, キューをクローズして,新しいジョブがキューに登録されないようにしてください。

ジョブの出力先を変更する場合は,第13.7.1.10 項で説明したASSIGN/QUEUEコマンドを使用します。

13.7.1.12 キューの削除

キューを削除する手順は次のとおりです。

  1. STOP/QUEUE/NEXTコマンドを入力して,キューを停止させる(実行中のすべてのジョブを途中で終了したい場合は,STOP/QUEUE/RESET コマンドを使用すること)。

  2. 実行中のジョブが終了するのを待つ。

  3. キューで保留中のエントリを別のキューに再登録する。このステップを省略すると, キューと一緒にジョブも削除される。

  4. 削除するキューに対する汎用キューまたはジョブからの参照をすべて削除する。 キューの参照の削除については,第13.8.5項を参照すること。

  5. DELETE/QUEUEコマンドを入力して,キューを削除する。

13.7.2 キューに登録されたジョブの管理

システム管理者は,バッチ・ジョブやプリント・ジョブの流れを制御したり, 効率的なジョブ処理のパフォーマンスを維持する操作を行います。そうしたジョブ管理のために行う日常的な作業として, 次の作業があります。

作業 参照箇所
ジョブの監視 第13.7.2.1 項
ジョブ処理オプションの変更 第13.7.2.2 項
ジョブの保持と解放 第13.7.2.3項
実行中のジョブのキュー再登録 第13.7.2.4項
保留中のジョブのキュー再登録 第13.7.2.5項
ジョブの削除 第13.7.2.6 項
ジョブのプリント位置と位置調整の制御のための出力キューの一時停止 第13.7.2.7項

13.7.2.1 ジョブの監視

バッチおよびプリント・ジョブの状態を監視する場合は,DCLのSHOW ENTRY コマンドを使用します。ジョブの状態については,表 13-6 を参照してください。

次の形式でSHOW ENTRYコマンドを入力します。

SHOW ENTRY [エントリ番号[,...]], [ジョブ名[,...]]

エントリ番号もジョブ名も省略された場合,システムは,コマンドを入力したユーザまたは/USER_NAME 修飾子に指定されたユーザが所有するすべてのジョブの状態を表示します。 また,ジョブ名が指定された場合は,コマンドを入力したユーザあるいは/USER_NAME 修飾子に指定されたユーザが所有するジョブのうち, 指定された文字列に一致するジョブの状態を表示します。 コマンド行にエントリ番号またはジョブ名のリスト,あるいはその両方を指定することによって, 複数のジョブの状態を表示することもできます。

SHOW ENTRYコマンドには,表示するジョブ情報のタイプを指示する修飾子を指定することもできます。 詳細は『OpenVMS DCLディクショナリ』を参照してください。

表 13-6は,SHOW ENTRYコマンドによって返されるジョブ状態をまとめたものです。

表 13-6 SHOW ENTRYが返すジョブ状態

状態 説明
Aborting 実行中のジョブが正常終了の前に停止し, 処理が継続されない。
Executing バッチ・キューから実行中。
Holding 明示的に解放指示があるまで保持( 第13.7.2.3項を参照) 。
Pending 実行待ち( 第13.8.2項を参照)。
Printing プリンタまたはターミナル・キューから実行中。
Processing サーバ・キューから実行中。
Retained 実行終了までキューに残されているジョブ(第13.6.2.3項を参照)。
Stalled or Suspended 処理中にジョブが停止した。 ただし,原因が解決されれば処理は継続される。
Starting ジョブの処理が開始されるところ。
Timed_release ジョブは指定された時間だけ実行前にキューで保持される。

  1. 次の例では,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
    

  2. 次の例では,/FULL修飾子を指定して,ジョブ状態情報とジョブのキュー登録時刻, ファイル指定,ジョブ処理オプションを表示するよう指示している。
         $ SHOW ENTRY/FULL 4,611
    
           Entry  Jobname         Username     Blocks  Status
           -----  -------         --------     ------  ------
               4  TEST            GARDNER              Holding
                  On available batch queue OPAL_BATCH
                  Submitted 15-JAN-1998 16:12 /LOG=_$5$DUA1:[GARDNER]TEST.LOG;
                  /PRIORITY=100
                  File: _$5$DUA1:[GARDNER]TEST.COM;8
    
             611  SET             GARDNER         140  Pending (queue stopped)
                  On stopped printer queue LQPRINT
                  Submitted 21-JAN-1998 16:23 /FORM=DEFAULT /PRIORITY=200
                  File: _$5$DUA1:[GARDNER]SET.TXT;5
                  File: _$5$DUA1:[GARDNER]WAIT.TXT;1
    

13.7.2.2 ジョブ処理オプションの変更

多くのジョブ処理オプションは,次の形式でSET ENTRYコマンドを使用することによって変更することができます。

SET ENTRY/修飾子[,...] エントリ番号

表 13-7は,ジョブ処理オプションの変更でよく使用される修飾子をまとめたものです。SET ENTRY コマンドで変更可能なすべての処理オプションについては, 『OpenVMS DCLディクショナリ』を参照してください。

表 13-7 ジョブ変更用のSET ENTRY修飾子

修飾子 説明 参照箇所
/[NO]AFTER=時刻 指定時刻になるまでジョブを保持するかどうか指示する 第13.7.2.3項
/CHARACTERISTICS
=(特性[,...])
バッチまたはプリント・ジョブに割り当てられている特性の名前または番号を指定する 第13.6.3項
/FORM=フォーム名 プリント・ジョブに対応付けるフォームの名前または番号を指定する 第13.6.7項
/[NO]HOLD ジョブをただちに処理可能な状態にするか, または解放要求があるまで保持するかを指示する 第13.7.2.3 項
/PRIORITY=n ジョブのスケジューリング優先順位を指定する 第13.6.5.2項
/RELEASE 保持されていたジョブを解放する 第13.7.2.3 項
/REQUEUE=キュー名[:] ジョブを指定キューに移すように要求する。STOP/QUEUE /REQUEUE/ENTRYと同様。 第13.7.2.5 項
/RESTART システム障害の発生後,またはSTOP/QUEUE/REQUEUEコマンドの実行後に, バッチまたはプリント・ジョブを再起動するかどうかを指定する。 プリント・ジョブは省略時の設定で再起動可能。バッチ・ジョブは,/RESTART 修飾子をキュー登録されるか,または変更された場合にだけ再起動できる。

13.7.2.3 ジョブの保持と解放

ユーザは,PRINT,SUBMIT,SET ENTRYコマンドで次のいずれかの修飾子を指定することにより, 処理の前にジョブを保持するよう指定することができます。

ジョブを保持し,解放するためのコマンドは次のとおりです。

コマンド 目的
SET ENTRY/HOLD キューに無期限にジョブを保持する。
SET ENTRY/AFTER=時刻 指定した時刻まで,キューのジョブを保持する。 /AFTER修飾子を指定するには,指定した時刻までジョブを保持した後で解放するために,/NOHOLD 修飾子も指定しなければならない。
SET ENTRY/NOHOLD 次のいずれかの理由でキューに保持されていたキューを解放する。

  • /HOLD修飾子または/AFTER修飾子を使用してジョブがキューに登録された。

  • 終了したジョブが/RETAIN修飾子を使用しているために保持状態になっていた。( 第13.6.2項を参照)。

  • ジョブがユーザ作成のシンビオントによって拒否されていた。
SET ENTRY/NOAFTER SET ENTRYコマンドで指定した時刻まで待ち状態になっているジョブを解放する。
SET ENTRY/RELEASE 次のいずれかの理由でキューに保持されていたキューを解放する。

  • 保持状態になっていた。

  • "Holding until"状態になっていた。

  • /RETAIN修飾子を使用して保持状態になっていた(第13.6.2項を参照)。

  • ユーザ作成のシンビオントによって拒否されていた。

  1. 次の例では,最初に指定時刻までジョブを保持するよう指示し, その後,その時刻になる前にジョブを解放するよう指示している。
         $ SET ENTRY 1121/AFTER=12-FEB-1998:17:30
         $ SET ENTRY/NOAFTER
    

  2. 次の例では,最初に当日の真夜中(00:00:00時)までジョブを保持するよう指示し, その後,その時刻になる前にジョブを解放するよう指示している。
         $ SET ENTRY 1121/AFTER=TODAY
         $ SET ENTRY/NOAFTER
    

  3. 次の例では,最初に無期限にジョブを保持するよう指示し,その後, 解放している。
         $ SET ENTRY 1234/HOLD
         $ SET ENTRY 1234/RELEASE
    

13.7.2.4 実行中ジョブのキュー再登録

実行中のプリント・ジョブを停止させて,キューに再登録する場合は, STOP/QUEUE/REQUEUEコマンドを使用します。このコマンドは,現在のジョブの実行を中断し, そのジョブを,指定したキューに再登録します。キューの他のジョブは, 処理されるまで保留状態になります。


注意
STOP/QUEUE/REQUEUEコマンドが停止させるのは, キューで現在実行中のジョブだけです。キューが停止することはありません。

  1. たとえば,BETA_LPB0という出力実行キューから1つのジョブが実行されているとき, キューに割り当てられているプリンタが紙詰りを起こした場合を考えます。 キューで他のジョブが保留中でない場合は, ジョブを停止させ,別のプリンタのキューにジョブを再登録することになります。 キュー自体を停止することも考えられます。こうした場合, 入力するコマンドは次のようになります。
         $ STOP/QUEUE/REQUEUE=BETA_LPA0 BETA_LPB0
         $ STOP/QUEUE/RESET BETA_LPB0
    

    最初のコマンドで,プリント・ジョブのBET_LPB0での実行が停止されて,BET_LPA0 に再登録されます。2番目のコマンドは,BETA_LPB0キューを停止させます。

  2. バッチ・キューにジョブを再登録する場合は,次の例に示すように/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に指定します。

13.7.2.5 保留中ジョブの再登録

キューで保留中のジョブを他のキューに登録し直す場合は,次の例に示すようにSET ENTRY/REQUEUE コマンドを使用します。

     $ SET ENTRY/REQUEUE=LN03$PRINT 196

この例では,196というジョブをLN03$PRINTというキューに移しています。

13.7.2.6 ジョブの削除

保留中または実行中のジョブを削除する手順は次のとおりです。

  1. 次のいずれかのDCLコマンドを入力して,ジョブのエントリ番号を求める。

    SHOW ENTRY/USER_NAME=ユーザ名 [エントリ番号]

    SHOW QUEUE/ALL_JOBS [キュー名]

    ジョブ名,ユーザ名,キュー名のいずれも分からない場合は,次のコマンドを入力する。

         $ SHOW QUEUE/BATCH/ALL_JOBS/BY_JOB_STATUS=EXECUTING
    

  2. 次の形式で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

13.7.2.7 ジョブのプリント位置と位置調整の制御( 出力キューの一時停止)

修飾子を指定せずにSTOP/QUEUEコマンドを入力し,出力キューを一時停止させることによって, プリント・シンビオントと会話型で通信することができます。 このとき,行えることとしては,たとえば次のような操作があります。


注意
上記の作業を行うためには, ジョブのプリントが始まった後,STOP/QUEUEコマンドでキューを一時停止させる必要があります。

13.7.2.7.1 プリント位置の指定

キューを一時停止させて,再起動した場合,省略時の設定ではプリントは, 現在のジョブのプリント停止位置近くのチェックポイントから再開されます。 現在のジョブのプリント再開位置を具体的に指定した場合は,次のいずれかの修飾子を指定して,START/QUEUE コマンドを入力してください。

修飾子 説明
/BACKWARD[=n] プリントを再開する前にファイルを後戻りさせるページ数を指定する。 省略時の値は1であり,この場合, プリントは現在のページの先頭から再開される。
/FORWARD[=n] プリントを再開する前にファイルを先送りするページ数を指定する。 省略時の値は1であり,この場合, プリントは次ページの先頭から再開される。
/SEARCH="検索文字列" 指定した検索文字列を含むページからプリントを再開するよう指定する。 文字列の検索は,現在のページの次のページから始めて順方向で行われる。 また,連続タブとスペースはスペース1 つとして扱われ,英字の大文字と小文字の区別は行われない。 文字列は1〜63文字の長さであり,引用符(" ")で囲まなければならない。
/TOP_OF_FILE 出力実行キューが一時停止した時, 停止時に実行中であったファイルの先頭からプリントを再開するよう指定する。

START/QUEUEコマンドに複数の位置付け修飾子を指定する必要がある場合は, 次の順序で位置修飾子を指定してください。

  1. /TOP_OF_FILE

  2. /FORWARD

  3. /BACKWARD

  4. /SEARCH

  1. 次の例では,最初にSTOP/QUEUEコマンドを使用して,JADE_ PRINTというプリンタ・キューからプリント中のジョブを一時停止させ, キューを保留状態にする。そしてSTART/QUEUEコマンドによって, キューの保留状態を解除している。このコマンドにはTOP_OF_FILE修飾子が指定されているので, 一時停止させられたジョブのプリントは, 中断した場所ではなく,ファイルの先頭から再開される。
         $ STOP/QUEUE JADE_PRINT
         $ START/QUEUE/TOP_OF_FILE JADE_PRINT
    

  2. 次の例では,まずファイルをその先頭に位置付け,そこから15 ページ先送りしてから,SYS_LPA0というプリンタに出力を再開している。
         $ START/QUEUE/TOP_OF_FILE/FORWARD=15 SYS_LPA0
    

13.7.2.7.2 プリント・フォームの位置調整

サンプル・データをプリントして,プリント・フォームを位置調整したい場合は, いったんキューを一時停止させ,続いて,/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

13.8 キューに関する問題の解決

この節では,キューでよく発生する問題を取り上げ,その対処方法を説明します。

問題 参照箇所
一般的なプリンタの問題 第13.8.1 項
保留中のジョブのスケジューリング 第13.8.2項
ストックの不一致 第13.8.2.1項
特性の不一致の問題 第13.8.2.2項
出力キューの一時停止 第13.8.3項
自動起動型キューの不起動 第13.8.4項
キューとフォーム,特性削除時の問題 第13.8.5項
プリント後のファイル削除時の問題 第13.8.6項
装置制御ライブラリのモジュール追加と削除時の問題 第13.8.7項
キューの使用不能 第13.8.8 項

13.8.1 一般的なプリンタ問題の原因究明

プリンタに関連した一般的な問題の原因を究明する場合は,次の手順に従ってください。

  1. 次の形式でSHOW QUEUE/FULLコマンドを入力して,問題のプリンタに割り当てられているキューの状態を確認する。

    SHOW QUEUE/FULL キュー名

    キューの状態については,表 13-5を参照すること。

  2. SHOW LOGICAL /FULL SMBSRVSHRコマンドを入力して,論理名SMBSRVSHR が設定されているかどうか確認する。設定されている場合は,DEASSIGN SMBSRVSHR コマンドを入力して,設定を解除する。 たいていの場合,論理名SMBSRVSHRは定義しないほうがよい。ただし,SMBSRVSHR が指定されている場合は,/USER_MODE,/SUPER_USER_ MODE,または/EXECUTIVE_MODE修飾子のいずれかを指定してDEASSIGN SMBSRVSHRコマンドを入力し指定を解除する。

  3. プリント要求に対して致命的なエラーが返されるか,またはプリントが行われない場合は, 次の操作を行う。

    1. STOP/QUEUE/RESETコマンドを入力して,キューを停止させる。

    2. 出力装置をスプールしている場合は,SET DEVICE /NOSPOOLEDコマンドを入力して,スプールを解除する。

    3. 次の形式でCOPYコマンドを使用して,プリントするファイルをコピーする。

      COPY入力ファイル名 出力ファイル名

      COPYコマンドによって複製が作成されないと,PRINTコマンドが動作しない。

  4. 問題がLATSYMシンビオントを使用するキューにある場合は, 省略時のシンビオントのPRTSMBを使用して,問題が解決しないか調べる。PRTSMB は,LATポートに接続されているプリンタに使用することができる。 ただし,プリンタにジョブを送ることが可能なキューは一度に1 つだけである。

    キューがLATSYMシンビオントを使用しているか調べたい場合は,SHOW QUEUE/FULLコマンドを使用する。LATSYMシンビオントを使用している場合,/PROCESSOR=LATSYM と表示される。

    キューのシンビオントをPRTSMBに変更する手順は次のとおり。

    1. STOP/QUEUE/RESETコマンドを入力して, キューを停止する。

    2. START/QUEUE/NOPROCESSORコマンドを入力して, キューを再起動する。

    PRTSMBを使用しているキューに対するPRINT要求が正しく処理された場合, 問題があるのはLATSYMか,LATドライバのLTDRIVERのいずれかである。

  5. プリンタに使用されているケーブルの一方をターミナルに接続する。 ターミナルにデータが表示され,Hold Screenキーが働き,かつデータが失われていない場合は, プリンタの設定を間違えているなどの問題が考えられる。 ターミナルでも問題がある場合は,たいてい, ケーブルかハードウェア・インタフェース・ポート,あるいはハードウェア・ ポート設定が原因と考えられる。

13.8.2 保留中のジョブのスケジューリング

予想どおりにジョブが実行されない場合は,ジョブが保留または保持状態になっていることが考えられます。 そうした場合はSHOW QUEUE/FULL/ALL_ JOBSコマンドを使用して,キューのすべてのジョブの状態を表示してみてください。

ジョブが保持状態のときのジョブの解放については,第13.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-1998 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-1998 17:51 /FORM=DEFAULT /NOTIFY /PRIORITY=100
              File: _$5$DUA174:[CHURCHILL]PM$SPEECH.TXT;1 (checkpointed)

実行不可能になった場合,ジョブは必ず保留状態になります。表 13-8 は,ジョブが保留状態になる原因としてよく見られるものと, その対処方法をまとめたものです。

表 13-8 よく見られるジョブ保留の原因と対処方法

問題 対処方法
これ以上, キューがジョブを処理することはできない。 他のジョブの終了を待つ。
キューが停止または一時停止した。 SHOW QUEUE/FULLコマンドを入力して, 停止または一時停止と示された場合は,キューがその状態になった理由を調べること。 停止の場合は,START/QUEUEコマンドを使用して起動する。

自動起動型キューが停止した場合は,START/QUEUEコマンドを使用してキューをアクティブにし,ENABLE AUTOSTART/QUEUES を使用してキューを起動する。

一時停止の場合は,第13.8.3項の操作を行うこと。

プリント・ジョブのフォーム・ ストックとキューでマウントされているフォーム・ストックと一致しない。 第13.8.2.1項の操作を行う。
キューにない特性でジョブが登録または変更された。 第13.8.2.2項の操作を行う。
プリント・ ジョブのサイズが,キューに設定されているブロック制限の範囲外である。 SET ENTRY/REQUEUEコマンドを使用してジョブを別のキューに移すか,SET QUEUE/[NO]BLOCK_LIMIT コマンドを使用して, キューに設定されているブロック制限を変更または解除する。
ジョブの所有者に実行キューに対する書き込みアクセス権がない。 SET ENTRY/REQUEUE コマンドを使用してジョブを別のキューに移すか,第13.6.1項の手順にしたがってキューに対するアクセス権を変更する。
停止した実行キューに対応付けられている論理キューのプリント・ ジョブである。 SET ENTRY/REQUEUEコマンドを使用してジョブを別のキューに移すか,論理キューが対応付けられている実行キューを起動する。
英小文字プリントを有効にした出力装置が必要である。 プリンタが英小文字プリントをサポートしている場合は,SET PRINTER かSET TERMINALコマンドで/LOWERCASE修飾子を使用して, 英小文字プリントを有効にする。プリンタが英小文字プリントをサポートしていない場合は,SET ENTRY/REQUEUE コマンドを使用して,英小文字プリントが有効なプリンタに出力を送る実行キューにジョブを移す。

13.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-1998 16:14 /FORM=MANUAL (stock=HQ)  /PRIORITY=100
              File: _$5$DUA1:[RANDOM]SET.TXT;5

ストック不一致のために保留中のジョブを保留解除するためには,次の操作を行います。

フォームについての詳細は,第13.6.7項を参照してください。

13.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-1998 15:21 /CHAR=(5) /FORM=DEFAULT /PRIORITY=100
              File: _$5$DUA1:[RANDOM]SETHOST.LOG;5

特性不一致のために保留中のジョブを保留解除するためには,次のことを行います。

特性についての詳細は,第13.6.3項を参照してください。

13.8.3 出力キューの一時停止の解決

出力キューが一時停止した場合,その原因はキューが割り当てられている装置にあります。 装置を調べて,問題を解決してください。問題が解決すると, キューの一時停止状態は解消されます。

問題をすぐに解決できない場合は,STOP/QUEUE/RESETコマンドを入力して, キューを停止してください。停止させると,キューのジョブを他の正しく動作するキューに移すことができます( 第13.7.1.10 項を参照)。問題が解決したら,論理キューを割り当て解除し,START/QUEUE コマンドを入力してキューを起動します。

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

この例では,次の操作を実行します。リスト中の番号は例中の番号に対応します。

【1】
ENABLE AUTOSTART/QUEUESコマンドで,KATY というノードの自動起動型キューを起動しようとしている。
【2】
SHOW QUEUE コマンドの出力から,自動起動型バッチ・キューKATY_BATCHの自動起動機能がアクティブでなかったため, キューが起動しなかったことが分かる。 この原因は,キューが最初からアクティブになっていなかったか,STOP/QUEUE/NEXT またはSTOP/QUEUE/RESETコマンドによって非アクティブに設定されたかのいずれか。
【3】
START/QUEUEコマンドでキューの自動起動機能をアクティブにしている。
【4】
SHOW QUEUEコマンドによって, キューが起動されたことが示されている。

13.8.5 キュー,フォーム,特性削除時の問題

キュー,フォーム,または特性の削除時に問題が発生した場合は,次の条件が満たされているか確認してください。

キュー,フォーム,または特性に対する参照があると,次のようなメッセージが表示されます。

     %DELETE-E-NOTDELETED, error deleting object-name
     -JBC-E-REFERENCED, existing references prevent deletion

たとえばこうしたメッセージは,削除しようとしたキューが汎用キューの送り先として指定されていたり, 削除しようとしたフォームがプリント・ ジョブに指定されていたりした場合に表示されます。キュー,フォーム, または特性を削除するためには,それらに対する参照をすべて削除しておく必要があります。

作業方法

ここでは,キュー,フォーム,または特性に対する参照を見つけて,削除する手順を示します。

  1. SHOW QUEUE/FULL/ALL_JOBS/OUTPUT=ファイル名 コマンドを入力する。ファイル名は,コマンドの出力の送り先にするファイルの名前。

  2. SEARCHコマンドを使用して,出力ファイルの中に削除したい フォーム名キュー名,または特性番号が存在するか調べる。SEARCH コマンドの検索結果には,キュー,フォーム, または特性に対するすべての参照情報が含まれる。

  3. 削除しようとするキュー,フォーム,または特性を参照しているキューが存在する場合は, 次の操作を行う。

    1. STOP/QUEUE/NEXTコマンドを実行して,それぞれを参照しているキューを停止する。

    2. START/QUEUEコマンドに適切な修飾子を指定して実行し, 参照のないキューを再起動する。

  4. SEARCHコマンドがそのキュー,フォーム,特性を参照するジョブを見つけた場合には, 次の手順に従う。

    1. ジョブの完了するのを待つ(第13.6.5.2項の説明に従って, ジョブの優先順位を高くしてジョブがただちに処理されるようにスケジューリングすることもできる) 。

    2. 次のいずれかの操作を実行する。

      • 第13.7.2.6項の説明に従って, ジョブを削除する。

      • 第13.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】

この例では,次の操作を実行します。

【1】
DELETE/QUEUEコマンドでJADE_BATCH というキューを削除しようとしている。
【2】
キューが停止していないことを示すメッセージ。
【3】
STOP/QUEUE /NEXTコマンドで,現在のジョブの終了を待ってキューを停止させるよう指示している。
【4】
再びDELETE/QUEUEコマンドでキューを削除しようとしている。
【5】
今度は,キューに対する参照が存在することを示すメッセージが出されている。
【6】
SHOW QUEUE/FULLコマンドですべてのキューに関する情報を表示している。JADE_BATCH は, 汎用キューCLUSTER_BATCHの送り先キューとして参照されているだけである。
【7】
STOP/QUEUE/NEXTコマンドで,JADE_BATCHを送り先とする汎用キューCLUSTER_BATCH を停止させている。
【8】
送り先にJADE_BATCH を指定せずに,START/QUEUEコマンドでCLUSTER_BATCHを再起動することによって,JADE_BATCH に対する参照を削除している。
【9】
再びDELETE/QUEUEコマンドを入力することによって,キューを削除している。

13.8.6 ファイル削除時の問題解決

PRINT/DELETEまたはSUBMIT/DELETEコマンドを使用してファイルを削除する場合は, クラスタ全体のキュー・マネージャ・プロセスが,指定されたファイルにアクセスする必要があります。 キュー・マネージャ・プロセスがファイルにアクセスしない場合は, ファイルのプリントとキュー登録は行われますが, ファイルは削除はされません。

指定したファイルが存在するディスクをクラスタ全体にマウントすると, PRINT/DELETEまたはSUBMIT/DELETEコマンドがそのファイルを削除したかどうか確認できます。 ディスクをクラスタ全体にマウントするには, MOUNTコマンドに/CLUSTER修飾子を指定します。

操作環境の制限で,クラスタ全体にディスクをマウントできない場合には, そのディスクにアクセスするノードでキュー・マネージャ・プロセスを実行することにより, この問題を解決できます。キュー・マネージャ・ プロセスを実行するノードを指定するには,START/QUEUE/MANAGERコマンドに/ON= ノード修飾子を指定して実行します。この修飾子についての詳細は, 『OpenVMS DCLディクショナリ』を参照してください。

13.8.7 装置制御ライブラリ・モジュールの追加または削除時の問題

装置制御ライブラリ・モジュールを追加または削除しようとしたときに, 次のメッセージが表示される場合があります。

     $LIBRAR-F-OPENIN, error opening module-name
     -RMS-E-FLK, file currently locked by another user

ライブラリ・モジュールを追加または削除するためには,ライブラリが割り当てられているすべての出力キューを停止する必要があります。 ライブラリが割り当てられているキューを調べたい場合は, 次の操作を行います。

  1. 次の形式でSHOW QUEUE/FULLコマンドを入力する。

    SHOW QUEUE/FULL/OUTPUT=ファイル名

    ファイル名は,コマンドの出力の送り先にするファイルの名前。

  2. SEARCHコマンドを使用して,出力ファイルから目的のライブラリ名を検索する。

検索結果には,ライブラリが割り当てられているすべてのキューが含まれています。 それらキューを停止させ,再度ライブラリ・モジュールを追加または削除するためのコマンドを入力してください。


注意
INITIALIZE/QUEUE,またはSTART/QUEUE コマンドに/LIBRARY修飾子を指定して,明示的にライブラリをキュー割り当てていない場合, SHOW QUEUE/FULL コマンドによってキューに割り当てられているライブラリが示されることはありません。 明示的にライブラリをキューに割り当てていない場合は, 省略時のライブラリSYSDEVCTL が使用されます。

削除しようとするモジュールが省略時のライブラリのSYSDEVCTL に含まれている場合は,SHOW QUEUE/FULLコマンドによってライブラリが示されないすべてのキューを停止する必要があります。SHOW QUEUE/FULL の出力にSYSDEVCTLライブラリも含まれるようにしたい場合は, キューを再起動するときに/LIBRARY=SYSDEVCTLを指定してください。


キューをすぐに停止させることが不可能な場合は,次の操作を行います。

  1. COPYコマンドを使用して,変更するライブラリを自分のディレクトリにコピーする。

  2. ライブラリのコピーにモジュールを追加するか,コピーからモジュールを削除する。

  3. COPYコマンドを使用して,ライブラリをSYS$COMMON:[SYSLIB] に戻す。変更したライブラリの名前を変更しないかぎり, 各キューは,再起動されたときにライブラリを認識する。

異種プリンタを大量に使用している場合は,ライブラリの数を増やして, 各ライブラリが割り当てられるキューを減らすことにより,この問題の発生を防ぐ一助とすることができます。 第13.6.8.3 項で説明したように,プリンタのタイプごとにライブラリを作成して, 割り当ててみてください。

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

上記のいずれかのメッセージが表示されたら,次の作業を実行してください。

  1. コンパックのサポート担当者に連絡をする。

  2. キューを削除してから新規キューを作成して置き換える。

13.8.9 キュー問題の弊社への報告

キューに問題が生じ,それを弊社に報告する必要がある場合には,できる限り多くの情報をご提供ください。 第12.12 節には,弊社がキュー・システムを診断する際に最も有用な事項を説明してあります。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]