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


前へ 次へ 目次 索引


8.8.2 プリンタのスプール

アプリケーションの中には,プリント出力をキューに登録せずに,直接プリンタに書き込みまたは複写するものがあります。プリンタのスプールとは,このようなアプリケーション・プログラムからの入出力をディスクなどの中間記憶装置に書き込ませるための技術です。この結果,アプリケーション・プログラムの実行中でも,他のシステム上のユーザがプリンタを利用できます。

プリンタをスプールするためには,そのプリンタに関連する記憶装置と出力キューを指定します。アプリケーションを実行しているプロセスが,アプリケーションの出力をスプールされたプリンタに送ると,実際には,その出力は記憶装置の一時ファイルに送られます。そのファイルがクローズされると,システムはそのファイルを,関連付けられた出力キューに登録します。出力ファイルを中間記憶装置にスプールしたり,そのファイルをキューに登録したりする作業に,ユーザが手を加えることはありません。

プリンタに直接出力を書き込むようなアプリケーションを使用する場合,プリンタをスプールすることをおすすめします。 また,特権付きユーザが間違って直接 LAT プリンタに書き込まないように, LAT プリンタをスプールすることをおすすめします。LAT プリンタに直接書き込みを行った場合,そのプリンタを使用するキューが何らかの問題を起します。

図 14-9 は,プリンタのスプールを使った構成の例です。 第 8.8.2.1 項 で,どのようにプリンタをスプールするか説明します。

8.8.2.1 プリンタのスプール指定

プリンタをスプールするためには,DCL の SET DEVICE/SPOOLED コマンドを使用します。このコマンドは,プリンタをディスクなどの記憶装置と出力キューに関連付けます。

プリンタのスプールは,関連するキューを開始する前に行う必要があります。

SET DEVICE/SPOOLED コマンドの形式は次のとおりです。


SET DEVICE/SPOOLED[=(キュー名 [:], 中間ディスク名 [:])]   出力装置名

中間ディスクとキューは必ず明示的に指定してください。スプール出力装置に関連付けたキューが汎用キューの場合,装置に書き出されたファイルはそのキューに送られ,そのキューからターゲット・キューの 1 つにジョブとして書き込まれます。このため,たとえば LPA0: 装置にコピーされたジョブは必ずしもプリンタ LPA0: でプリントされないことがあります。この場合は,汎用キューの送り先である他のプリンタでプリントが行われます。

中間記憶装置を選択するとき,スプール出力量に見合う十分な未使用空間がその装置にあるか確認してください。また,ディスク・クォータを設定する場合は,そのプリンタを使用すると予想されるすべてのユーザが,その中間装置に許可されたクォータを持っているか確認します。中間装置をマウントしていないと,ファイルは書き込めません。

出力装置をスプール指定したら,その装置をテストします。これは,実際にスプールを行わないかぎり,ディスク名やキュー名のエラーが検出されないためです。こうしたテストについては, 第 8.8.2.3 項 で説明します。

システムをブートするたびに出力装置を設定したい場合は,そのためのコマンド・プロシージャを作成することをおすすめします。コマンド・プロシージャにスプール・デバイスを設定するコマンドを登録してください。詳細は 第 8.8.1 項 を参照してください。


次は,プリンタをスプールするコマンドをスタートアップ・コマンド・プロシージャに登録する例です。この例には,装置特性を設定するコマンドも含まれています。このように,通常,プリンタをスプールするコマンドは,装置特性を設定するコマンドと一緒に登録します。


$! Set up and spool line printer devices 
$! 
$ SET PRINTER/PAGE=60/LOWERCASE/TRUNCATE LPA0: 
$ SET PRINTER/LA11/UPPERCASE/WRAP LPB0: 
$ SET DEVICE/SPOOLED=(SYS$PRINT,SYS$SYSDEVICE) LPA0: (1)
$ SET DEVICE/SPOOLED=(SYS$PRINT,SYS$SYSDEVICE) LPB0: 
$! 
$! Set up and spool LAT printers 
$! 
$   SET TERMINAL LTA331:/SPEED=9600/DEVICE=LN03 - 
    /NOBROADCAST/NOECHO/HARDCOPY/NOTYPE_AHEAD/PERMANENT 
$   SET DEVICE LTA331:/SPOOLED=(MKTG$LN03_1,SYS$SYSDEVICE)  (2)
$! 
$   SET TERMINAL LTA332:/DEVICE=LA210/PAGE=66 - 
    /NOBROADCAST/PERMANENT 
$   SET DEVICE LTA332:/SPOOLED=(LA210$PRINT,SYS$SYSDEVICE) (3)

  1. 記憶装置 SYS$SYSDEVICE とキュー SYS$PRINT を関連付けることによって,出力キュー LPA0: をスプールする。アプリケーションから LPA0: に出力が送られると,そのデータは,アプリケーションが終了するまで,一時的に記憶装置 SYS$SYSDEVICE に格納される。この結果,そのアプリケーションの出力をプリントする準備ができるまで,他のジョブが出力装置 LPA0: を利用できる。アプリケーションが終了すると,その出力はキュー SYS$PRINT に登録される。

  2. 記憶装置 SYS$SYSDEVICE とキュー MKTG$LN03_1 に関連付けることによって,LAT ポート LTA331: の LN03 装置をスプールする。

  3. 記憶装置 SYS$SYSDEVICE とキュー LA210$PRINT に関連付けることによって,LAT ポート LTA332: の LA210 装置をスプールする。

8.8.2.2 プリンタのスプール解除

装置に対するスプールを解除する必要があることもあります。たとえば, SET TERMINAL コマンドは,スプールを解除した出力装置にしか実行できません。出力装置のスプールを解除するときは, SET DEVICE コマンドに /NOSPOOLED 修飾子を指定します。

スプールを変更するためには,前もって対応するキューを停止しておく必要があります。

SET DEVICE/NOSPOOLED コマンドについての詳細は,『Compaq OpenVMS DCL ディクショナリ』を参照してください。

8.8.2.3 スプールしたプリンタのテスト

出力装置をスプールとして設定したら,その装置をテストしてみてください。これは,実際にスプールを行わないかぎり,ディスク名やキュー名の間違いが検出されないためです。スプールした装置のテストには,次のようなコマンド・プロシージャを使用します。


$!          *****TESTING SPOOLED DEVICE*** 
$! 
$! set the device spooled 
$  SET DEVICE/SPOOLED=(SYS$PRINT,SYS$SYSDEVICE:) LPA0: 
$! 
$! create a test file 
$  CREATE TEST.LIS 
     !Add the first test record here. 
     !Ctrl/Z to exit the file 
$! 
$! write the file to the output device 
$  COPY TEST.LIS LPA0: 
$  EXIT 

8.9 磁気テープ装置の管理

テープ装置の管理では,次の作業を行います。

作業 参照箇所
磁気テープ装置情報の取得 第 8.9.1 項
磁気テープ装置特性の変更 第 8.9.2 項

テープ装置上のボリュームの管理については, 第 9.2 節 で説明します。

Fibre Channel テープ装置の管理については,『Compaq OpenVMS Cluster 構成ガイド』を参照してください。

8.9.1 磁気テープ装置情報の取得

システムで使用可能な磁気テープ装置を知りたい場合は, SHOW DEVICES コマンドを使用してください。 SHOW DEVICE/FULL コマンドを使うと,特定の磁気テープ装置の詳しい特性情報を得ることができます。

8.9.2 磁気テープ装置特性の変更

以降のファイル操作において磁気テープ装置の省略時の特性を変更する場合は,DCL の SET MAGTAPE コマンドを使用します。現在他のユーザに割り当てられている装置は指定できません。

次は,MOUNT コマンドと SET MAGTAPE コマンドを組み合せた例です。


#1

$ MOUNT MTB1:/FOREIGN
$ SET MAGTAPE MTB1:/DENSITY=800

MOUNT コマンドで MTB1: 装置にテープをマウントしている。 /FOREIGN 修飾子は,そのテープが OpenVMS オペレーティング・システムの標準形式ではないことを示している。たとえば,BACKUP ユーティリティの中には,/FOREIGN 修飾子を付けてテープをマウントする必要のある操作がある。

SET MAGTAPE コマンドは,磁気テープへの書き込み密度を 800 bpi と定義する。磁気テープに書き込みを行った後で,密度を変更することはできない。

#2

$ MOUNT MTA0:/FOREIGN
$ SET MAGTAPE MTA0:/SKIP=FILES:4

MOUNT コマンドで MTA0: 装置にフォーリン磁気テープをマウントし, SET MAGTAPE コマンドで 4 つのファイルをスキップした位置に磁気テープを位置付けるよう入出力サブシステムに指示している。

#3

$ MOUNT MTA1:/FOREIGN
$ SET MAGTAPE/REWIND MTA1:

MOUNT コマンドで MTA1: 装置にフォーリン磁気テープをマウントし, SET MAGTAPE/REWIND コマンドでボリュームを巻き戻している。

8.10 カード・リーダの管理 (VAX のみ)

VAX システムでは,コンピュータのカード・デックの読み取りに, Compaq CR-11 カード・リーダを使用します。ユーザが処理することが可能なカード・デックは次の 2 種類です。

カード・デックを効率良く処理するためには,カード・リーダの特性と使い方をよく理解しておく必要があります。以降の項では,デックをカード・リーダにかける前に調べておくべきことと,カードの問題について調べる方法を説明します。

8.10.1 カード・デック・タイプの確認 (VAX のみ)

カード・リーダにカード・デックをロードするにあたっては,次のことを行ってください。

以降の項では,この 2 つの事項について説明します。

8.10.1.1 バッチ・ジョブ・カード・デック (VAX のみ)

バッチ・ジョブ・カード・デックは,次のセグメントから構成されます。

バッチ・ジョブ・カード・デックの最初の 2 枚のカードは $JOB と $PASSWORD カードです。これらのカードはシステムにユーザをログインさせ,バッチ・ジョブをキュー登録します。2 枚の初期カードに続くのは,プログラム・カードです。プログラム・カードには,バッチ・ジョブの処理に必要なライブラリ,ルーチン,およびデータをシステムに指示する命令から構成されます。最終カードは, $EOJ コマンドか,EOF カードのいずれかである必要があります。どちらのカードも,ジョブの終わりをシステムに告げます。

入力チェック

$JOB と $PASSWORD カードがない場合,システムはジョブを実行することができません。それらのカードがないカード・デックをユーザから受け取った場合は,返却し,両カードを加えてもらってください。

カード・デックにはユーザのパスワードが含まれますから,ユーザのアカウントの秘密が保たれるよう,デックは常に注意して扱う必要があります。

デックの最終カードは,$EOJ コマンドか EOF カードのいずれかである必要があります。

最終カードが上記のいずれかでない場合は,システム管理者がカード穿孔装置でカラム 1 に 12-11-0-1-6-7-8-9 とオーバパンチして終了カードを作成し,デックの最後に追加することも可能です。

出力チェック

カード・リーダがバッチ・ジョブ用に作成するログ・ファイルは,省略時の設定では,システム・プリンタ・キュー SYS$PRINT に登録されます。このログ・ファイルを別のキューに登録したい場合は, $JOB カードに /PRINTER 修飾子を指定します。

システムが $JOB と $PASSWORD カードの検証を試みているときにエラーが発生した場合は,オペレータ通信マネージャ (OPCOM) からカード・オペレータに,ジョブ・カードとエラーを示すエラー・メッセージが送られます。

8.10.1.2 データ・カード・デック (VAX のみ)

データ・デックに入っているデータは,プログラムが読み込んだり,後で処理するためファイルにコピーされたりします。通常,データ・デックを読み取るプロセスは,ターミナルにいる会話型ユーザか,会話型ユーザがキュー登録したバッチ・ジョブです。ユーザもプロセスもすでにシステムにログインしているので,最初のカードには任意のデータを指定できます。それ以上データを指定する場合は,あらかじめ読み取る枚数を指定しておくか,最後のカードに EOF カードを入れるかのいずれかの方法で,プログラムにデータの終わりを知らせる必要があります。

あるユーザがデータ・デックを読み込みたい場合,システム管理者は必ず,そのユーザがカード・リーダの割り当てを行うよう確認してください。割り当てられなかった場合,システムはデータ・デックをバッチ・ジョブとしてキュー登録しようとします。この結果,そのデータ・デックはカード・リーダからフラッシュされ,ジョブは拒否されます。

プログラムが指定された枚数を正確に読み取らなかった場合 (COPY コマンドと同様),EOF カードをデータ・デックの最後のカードにする必要があります。これは,プログラムにデータ・デックの最後を知らせるためです。EOF カードがなければ,プログラムは半永久的に次のカードを待ちます。そして,オペレータ・ターミナルに "card reader off line" というメッセージを出します。カード・デックに EOF カードがない場合は,システム管理者がカード穿孔装置で EOF カードを作成し,データ・デックの最後のカードとしてカード・リーダに入れてください。

8.10.1.3 カード・リーダの変換モードの設定 (VAX のみ)

システムが入力を正しく読み取るためには,カード・リーダが正しい変換モード,すなわち,デックの作成に使用されたカード穿孔装置のモードと同じモードに設定されている必要があります。OpenVMS システムは,026 と 029 のカード穿孔装置をサポートしています。

カード・リーダを正しい変換モードに設定するには,次の条件が確実に満たされているようにしてください。

同じタイプの大部分のデックについて,カード・リーダの変換モードの設定には,SET CARD_READER コマンドを使用することができます。 SET CARD_READER コマンドについての詳細は,『Compaq OpenVMS DCL ディクショナリ』を参照してください。システムをブートしたときの省略時の変換モードは 029 です。

8.10.2 会話形式での入力シンビオントの実行 (VAX のみ)

OpenVMS レコード管理サービス (RMS) ファイルからカード・イメージ入力を受け取る入力シンビオントを会話形式で実行することができます。手順は次のとおりです。

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


    DEFINE/USER_MODE SYS$INPUT   ファイル名 
    


    たとえば,次のように入力する。


    $ DEFINE/USER_MODE SYS$INPUT SPECIAL_FILE.DAT
    

  2. 次のコマンドを入力する。


    $ RUN SYS$SYSTEM:INPSMB
    

入力シンビオントを会話形式で実行するためには,次の権利が必要。

すべてのメッセージは,カード・オペレータではなくターミナルに送られる。


前へ 次へ 目次 索引