前へ | 次へ | 目次 |
インストレーション・プロシージャは次のチェックを行うようになりました。
インストレーション検証プロシージャ(IVP)も強化されました。これにより,テストされた DCPS のバージョンを正確に報告できます。ただし,次の場合には報告されるバージョンがインストールしたDCPSのバージョンと異なることがあります。
%DCPS-F-FILERR, Error openning processor file for IVP queue: -DCPS-F-FILERR, DKA300$:[SYS0.][SYSEXE]DCPS$SMB.EXE;15 -DCPS-F-FILERR, IVP has failed. See Releae Notes for details. |
ここで掲げた例以外にも,IVPはテストした DCPS のバージョンがインストールした DCPS のバージョンと異なっていても,インストレーションの正常終了を報告します。インストレーションとIVPの問題は次の点に注意することによって防ぐことができます。
21.4 マルチストリーム・プロセスとしての DECprint Supervisor
バージョン1.2より日本語DECprint Supervisor プロセスは,マルチストリーム・シンビオント・プロセスとして稼動できるようになりました。マルチストリーム・シンビオント・プロセスとして,1つのDCPS プロセスは複数のDCPS実行キューを稼動させることができます。新しいDCPS プロセスは DCPSプリント・キューがスタートするたびにスタートするわけではなく,現在あるすべてのプロセスが,サポートできる上限数までキュー(ストリーム)をサポートしている時に限り,新たに新規のプロセスをスタートします。この「1つのプロセスがサポートする上限キュー数」は,論理名 DCPS$MAX_STREAMS によってプロセスのスタート時に決められます。
日本語 DECprint Supervisor V1.2 は,1つのシンビオント・プロセスごとに最大32個の実行キューをサポートするように設定できます。この論理名を設定しないと,DCPSプロセスはただ1つしか実行キューをサポートしません。論理名 DCPS$MAX_STREAMS によって DCPS シンビオント・プロセスごとにどれだけの実行キューをサポートするのかを指定します。この値を指定するには, DCPS$STARTUP.COM ファイルの中に次のように記述します (テンプレート・ファイルは DCPS$STARTUP.TEMPLATE)。次の例で x はサポートすべきキューの数を指定します。
$ DEFINE/SYSTEM/EXECTIVE DCPS$MAX_STREAMS x |
この DCPS$STARTUP.COM ファイルを実行し,キューを DCPSマルチストリーム・プロセスとしてスタートしてください。
DCPSプロセスは,対応するすべてのキューが停止したときのみ停止します。
21.4.1 必要メモリの削減とアイドル時のCPU時間消費の削減
DCPS V1.1 はそれ以前のバージョンに比較してかなり多くの量のメモリを使用していました。多くのキューが同一システム上でスタートした場合,これは重大な問題になる可能性がありました。 DCPS V1.2ではこの問題を,ピーク時の必要メモリ量を減らすことと,マルチストリームで実行できるようにすることで解決しました。
また DCPS V1.1からは DCPSの様々な機能を実装するために DECthreads を使用しています。DECthreadsを使用するプロセスは実行できるスレッドがないか定期的に判断します。ジョブが1つも印刷されていない時でも,実行できるスレッドがないかどうかを確かめるため DCPSプロセスは動作します。システム上に多くのDCPSキューが存在する場合は,すべてのプロセスのスケジューリングと定期的な動作が非常に大きくCPU時間を消費する可能性があります。この問題は,DCPSをマルチストリーム・プロセスとして実行し,稼動させなければならないシンビオント・プロセスの数を削減することによって解決できます。また,DCPSシンビオント・プロセスは定期的に実行されるため,メモリからスワップアウトされません。
1つの DCPS シンビオント・プロセスが扱うべきキューの上限数を決める要因には次のようなものがあります。
OpenVMS キュー・マネージャはシンビオント・プロセスを作る時期と終了する時期を制御します。一般的に既存のすべてのDCPSシンビオント・プロセスに空きストリームがない場合には新しいシンビオント・プロセスが作られます。前述のとおり,各プロセスがサポートする上限ストリーム(キュー)数は,論理名 DCPS$MAX_STREAMSによってプロセスのスタート時に決められます。シンビオント・プロセスは,そのプロセスがサポートするすべてのプロセスが停止した時に終了します。
あるDCPS シンビオント・プロセスがサポートする一群のキューは,キューがスタートした順序によって決まります。
日本語 DECprint Supervisor V1.2 から,キューのプロセスIDを識別する論理名 (DCPS$<queue-name>_PID) が定義されるようになりました。この論理名は,特定のプロセスによってサポートされる1つまたはそれ以上のキュー決定するために使われます。すなわち,この論理名の値が等しいキューは,同じシンビオント・プロセスで制御されていることになります。
例: $ SHOW LOG DCPS$*_PID/SYSTEM "DCPS$NTXJ_PID" = "20201F07" "DCPS$OKI_PID" = "20201F07" |
あまりないことですが,同一のプロセスが複数のキューをサポートすることから,同じプロセスがサポートする別のキューの影響で問題が発生することがあります。問題を特定するためには,そのキューだけをチェックしたのでは不十分です。そのプロセスがサポートするすべてのキューを検査しなければなりません。
DCPSキューを停止する場合は,STOP/QUEUE コマンドを使用します。 STOP/ID コマンドでシンビオント・プロセスを停止すると,そのプロセスがサポートする他のすべてのキューも停止してしまいます。
21.4.3 Queue Manager Remedial Update
日本語 Compaq DECprint Supervisor for OpenVMS をマルチストリーム・プロセスで実行しているユーザ・サイトでは, Queue Manager Remedial Update をインストールしなければなりません。これは次のオペレーティング・システムに対応します。
アップデートの入手については弊社までお問い合せください。 Queue Manager Remedial Update Kit は次のものからなります。
本キットには次のイメージが含まれています。
本アップデートでは,マルチストリーム・シンビオントが稼動されているとき,START/QUEUE コマンドがある状況でハングする問題を解決しています。添付のリリース・ノートでは,このアップデートで解決されたすべての問題を解説しています。これらの変更を有効にするには,インストール後にシステムをリブートします。
このアップデートをインストールしていないシステムでは次の問題が起こる場合があります。すなわち,マルチストリーム・プロセスで動作中のキューを STOP/QUEUE/RESET <queue-name> のコマンドで停止し,直後に START/QUEUE <queue-name> コマンドでスタートさせた場合,スタート・コマンドはハングする可能性があります。さらに,次のOPCOMメッセージがときおり表示されます。
%DCPS-F-STREAMUSE, Request 4 for Stream Id x ignored. Not consistant with symbiont state |
この状態から復帰するには,Ctrl/Yを入力しDCLプロンプトに戻り,再度 STOP/QUEUE/RESET コマンドを入力します。次にキューを再スタートします。この問題を防ぐために,本アップデートをインストールしてください。
21.5 解決された問題
21.5.1 マルチナショナル文字を含んだAppleTalkプリンタ名
AppleTalkプリンタ名がマルチナショナル文字(例えば,アクセント文字) を含んでいると,DCPSは正しくこれを処理することができず, AppleTalkネットワーク上からプリンタを捜すことができませんでした。 /ON 修飾子に指定する文字は DECMCS文字セットを使います。これらの文字は AppleTalkネットワーク上で使用できるように Macintosh 文字セットに変換する必要がありました。バージョン1.2ではこの変換が行なわれます。
マルチナショナル文字を使用すると,セパレータ・ページの底部に表示されるプリンタ名が誤った文字セットで表示されます。
21.5.2 DELETE/ENTRY と (DCc) Circuit connect failure メッセージ
PrintServer に印刷中に (DCc) Circuit connect failure と表示されて印刷要求に反応がなくなる場合がありました。これは DELETE/ENTRY コマンドに指定したジョブ番号が 100かそれ以上の値である場合に起こることがありました。本バージョンと PrintServer Software V5.1 の組み合せでは,このエラーは起こりません。
21.5.3 多くのリソースがロードされている時の PrintServer への印刷
従来のバージョンでは, PrintServer プリンタに多くのリソース (例えば,フォントやプロローグ)がダウンロードされている場合には印刷できませんでした。このエラーは,本バージョンがインストールされ,かつ PrintServer Software が V5.1にアップデートされていれば起りません。
21.5.4 シリアル接続でのコミュニケーション問題の処理
従来のバージョンでは,シリアル・デバイスに割り当てられたシステム・リソースが解放されるまでには最大4分の遅延時間がありました。これは印刷出力中に STOP/QUEUE/RESET コマンドが発行されて,かつ,このときコミュニケーション障害が起こった場合に発生しました。このような遅延が起こると,停止後すみやかに再スタートできませんでした。本バージョンでは,コミュニケーションに問題が発生した場合でも,より素早くシステム・リソースを解放し,かつプリント・キューは停止後すぐに再スタートできます。
21.5.5 ジョブ名に ] を含むメッセージの処理
従来のバージョンでは,ジョブ名に ] を含むプリンタからのメッセージを正しく処理することができず,無限ループになりました。これはAppleTalkネットワーク上のプリンタへ印刷する際に注意する必要がありました。本バージョンではこの問題は解決されています。
21.5.6 フォーム・セットアップ・モジュールとマルチ・ファイル・ジョブ
セットアップ・モジュールが PostScript の場合は,フォームの /SETUP 修飾子に指定したモジュールはプリント・ジョブの始めに1度だけプリンタに送られます。ジョブが複数のファイルを含んでいる場合,または複数のコピーを指定した場合,このモジュールの内容は,最初のファイルには反映されても,後続のファイルには反映されないことがありました。これは,次のファイルが新しい用紙から印刷されるように, PostScript のオペレータ newsheet をファイルの間に挿入したためです。本バージョンでは,newsheet を実行する前に PostScript コンテキストをいったんセーブし, newsheet を実行したあとでリストアしています。
21.5.7 ビジー・プリンタへのインタラプト
従来のバージョンのDCPSでは,シリアル接続のプリンタに出力する場合,プリンタの PostScript インタプリタを制御するため,同期シーケンスを送信していました。この方法は,すべてがDCPSであるような環境ではうまく動作していましたが,プリンタがマルチホスト環境で共有されている場合に問題を生じることがありました。 DECserverや他のネットワーク・ターミナル・サーバを介して接続されたプリンタは,DCPSキュー,LATSYMキュー,あるいはUNIXホストの間で共有されることがありますが,LATSYMや UNIXホストからの送信されたジョブは, DCPSのジョブ同期シーケンスによって誤ってキャンセルされることがありました。これは,すべてのページを印刷し終える前に LATSYMシンビオントまたは UNIX プリント・デーモンがプリンタとの接続を切った場合に起りました。
PostScript プリンタが印刷中またはビジー状態を報告している時にこの動作を防ぐために,デフォルトの同期シーケンスが変更されました。通常の環境で正常な PostScript ドキュメントを印刷する場合にはこの変更による外面的な変化はありません。
エラーの発生した PostScript ジョブを他のキューからジョブを発行することによってアボートさせるという DCPS の従来の機能を使いたい場合は,次の論理名を定義して旧機能のかわりとすることができます。
$ DEFINE/SYSTEM/EXECTIVE _$ DCPS$<queue-name>_INTERRUPT_WHEN_BUSY "1" |
21.5.8 DEClaser3500(他)シリアル・ポートへ印刷する際の同期のスタート
論理名 DCPS$<queue-name>_INTERRUPT_NO_SYNC を定義すると, DCPSシンビオントはシリアル接続プリンタで通常の同期シーケンスを使用しません。これはネットワーク・インタフェース・カード(NIC)での LAT プロトコルを使用するプリンタを含みます。他のプロトコルで接続されたプリンタを使用する場合には,影響はありません。この論理名により,従来バージョンで発生した問題を回避することができます。
次のタイプのプリンタや構成の場合, DCPSを稼動しているホストにはこのキュー論理名を定義することをお奨めします。
DCPSがシリアル接続のプリンタへジョブを出力する際には,PostScript インタプリタと同期をとってからスタートさせます。これはインタプリタのコマンド受け取りを確実にするためです。しかし,PostScript プリンタには同期制御文字を認識できない状態があるものがあります。特に,HP PCL のような別のプリンタ言語をサポートするプリンタでは,ある状況の場合に正しく反応しない場合があります。例えば,DEClaser3500が PS/PCL 走査モードにある場合, DCPSが CTRL/T文字をシリアル・ポートに送った時,誤ってPCLモードにスイッチしてしまった場合がこれにあたります。この場合,プリンタは PostScript モードではなくなっており反応しないため,プリント・ジョブはスタートしません(ジョブは starting 状態でスタックされます)。
論理名 DCPS$<queue-name>_INTERRUPT_NO_SYNC は DCPSに,指定したキューの同期シーケンスを行わないように指示します。この機能は,PS/PCL走査モードになっているDEClaser3500等のプリンタを DCPSが制御する場合に有用です。
プリント・キューの同期を無効にするには次のコマンドを使用します。
$ DEFINE/SYSTEM/EXECTIVE DCPS$<queue-name>_NO_SYNC "1" |
同期の手順がない場合でも最近のほとんどのシリアル接続プリンタでは問題は起こりません。これは,これらのプリンタではフロー制御が使われ,インタプリタがデータ受け取りをできない状態ではデータの送出を止めるからです。しかし,プリンタはちょっとしたミスでミス印刷を行ったりジョブが消えてしまうことがあります。ボー・レート,ストップ・ビット等の通信パラメータが正しく設定されてない場合などにこれらが起ります。構成によりますが,プリンタ・データ・ケーブルが抜けたりプリンタの電源がオフになってもプリンタ・ジョブがなくなる可能性があります。
論理名 NO_SYNC によって,HP製 PostScript レベル 2カートリッジつきの HP モデル IIID プリンタへ出力する際の問題は解決されます。これらのカートリッジには既知の問題があり,ホストに送る状態メッセージが壊れていました。これによって,DCPSが同期シーケンスを使用しようとした時,ジョブは starting 状態でスタックされていました。
前述のリストにあるプリンタや同期シーケンスに問題があることがわかっているプリンタ以外には,この論理名を使用しないことをお奨めします。
前へ | 次へ | 目次 |