Compaq OpenVMS
システム管理者マニュアル


前へ 次へ 目次 索引


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 

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

フォームについての詳細は, 第 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 

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

特性についての詳細は, 第 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)
 

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

  1. ENABLE AUTOSTART/QUEUES コマンドで, KATY というノードの自動起動型キューを起動しようとしている。

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

  3. START/QUEUE コマンドでキューの自動起動機能をアクティブにしている。

  4. SHOW QUEUE コマンドによって,キューが起動されたことが示されている。

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

    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)  
 

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

  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 コマンドを入力することによって,キューを削除している。

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

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

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

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

14.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] に戻す。変更したライブラリの名前を変更しないかぎり,各キューは,再起動されたときにライブラリを認識する。

異種プリンタを大量に使用している場合は,ライブラリの数を増やして,各ライブラリが割り当てられるキューを減らすことにより,この問題の発生を防ぐ一助とすることができます。 第 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 

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

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

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

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

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


前へ 次へ 目次 索引