日本語Compaq DECprint Supervisor (DCPS) for OpenVMS
リリース・ノート


前へ 次へ 目次


21.3 インストレーション・プロシージャとIVPの変更

インストレーション・プロシージャは次のチェックを行うようになりました。

  1. 停止していない DCPS プリント・キュー :
    クラスタ内のノード上に停止していない DCPS プリント・キューを発見すると,プロシージャはインストレーションを中止することがあります。DCPSプリント・キューの数と停止していないキューのリストが提示されます。
    すべての DCPS プリント・キューは,新しいバージョンの DCPS をインストールするまえに停止しておくことをお奨めします。停止しない場合は次のいくつかの問題が発生する可能性があります。

  2. システム・ディスクの SYS$SPECIFIC ディレクトリにある DCPS 実行可能ファイル :
    インストレーション・プロシージャはシステム・ディスクの SYS$COMMON ディレクトリに,すべての新ファイルをインストールします。 DCPSシンビオント・プロセスが起動するときに,SYS$SPECIFIC ディレクトリの実行可能ファイルが,SYS$COMMON ディレクトリのファイルより優先的に使用されます。互換性のない実行可能ファイルを使用すると,プリント・キューがスタートできない等の予期しない動作を起すことがあります。

インストレーション検証プロシージャ(IVP)も強化されました。これにより,テストされた DCPS のバージョンを正確に報告できます。ただし,次の場合には報告されるバージョンがインストールしたDCPSのバージョンと異なることがあります。

ここで掲げた例以外にも,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 シンビオント・プロセスが扱うべきキューの上限数を決める要因には次のようなものがあります。

  1. 1つのプロセス当たりが扱うキューの数を増やせば DCPSが専有するプロセス・スロットの数は減少します。これによりプロセス・スロットを多く解放することができます。 DCPSシンビオント・プロセスの数を削減することにより,定期的に実行しなければならない DECthreads プロセスの数が減り,システム・パフォーマンスを向上させることができます。

  2. DCPSは1度に1つのファイルしか変換(トランスレート)しません。プロセス中のストリーム(キュー)が,すでに使用中のトランスレータを必要とするようになったとき,そのストリームのトランスレータは分離したテンポラリ・プロセス中でスタートします。このことは,ユーザ・サイトで主に1つのトランスレータを集中的に使用する場合や,DCPS のキューが常にビジーになっているような場合には,システムのパフォーマスンスに望ましくない影響があります。こような場合には,パフォーマンス低下を防ぐために論理名 DCPS$MAX_STREAMS に,より小さな数値を設定します。

  3. 「1つのプロセスが処理するキュー数」に設定できる最大値は32です。これはOpenVMSの制限による上限です。

  4. DCPSを1プロセスにつき1つのキューしかサポートしない(デフォルト値)ように設定した場合にも,日本語 DECprint Supervisor V1.2 のメモリ使用量は日本語 DECprint Supervisor V1.1 より少なくなります。

  5. 複数のプリント・キューを実行する日本語 Compaq DECprint Supervisor for OpenVMS は,スーパバイザ・プロセスが障害を起こした際,またはプロセスを明示的に停止させた場合,複数のキューに影響を与えます。

21.4.2 マルチストリーム・プリント・キューの管理

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 状態でスタックされていました。

前述のリストにあるプリンタや同期シーケンスに問題があることがわかっているプリンタ以外には,この論理名を使用しないことをお奨めします。


前へ 次へ 目次