4    既知の問題

以降の各節では,Advanced Printing Software で既にわかっている問題について説明します。

4.1    使用不能のスーパバイザへのプリントにより過度なシステム負荷が起こる

pddisable(1) コマンドまたは pdprintadmin GUI ツールでスーパバイザ・サーバを使用不能にしたとき,そのスーパバイザによって制御されているプリンタに対して,関連するスプーラがジョブのスケジューリングを継続している場合,スーパバイザおよびスプーラ・プロセスは,CPU 負荷を過度に使用します。この状況で,スプーラはジョブのスケジューリングを続行しようとし,スーパバイザはそれらのジョブを拒否します。

対処方法として,次のいずれかの方法を使用して,スーパバイザ上のすべての印刷を中止してください。

スーパバイザを不注意で使用不能にし,スーパバイザが CPU リソースを過度に使用しているのがわかった場合は,pdenable(1) コマンドを使用してスーパバイザを再度使用可能にした後,前述のいずれかの対処方法を使用して,すべての印刷を一時的に停止してください。

4.2    Administration GUI (pdprintadmin) の問題

次の問題は,Administration GUI (Admin GUI) に影響を及ぼします。

4.2.1    Advanced Printing Software GUI は代替ディスプレイを使用しない

リモートの X 端末または X サーバから Advanced Printing Software GUI クライアント・プログラム (pdprint, pdprintinfo, pdprintadmin) を使用する場合には,それらのプログラムを実行する前に,DISPLAY 環境変数を使用してディスプレイを指定しなければなりません。DISPLAY 変数を定義しておらず,代わりに -display オプションを使用しているときに,pdprintinfo または pdprintadmin プログラムから印刷動作を起動すると,使用中のディスプレイではなく,ホスト・ワークステーションに pdprint ダイアログ・ボックスが表示されます。

4.3    アウトバウンド・ゲートウェイ

以下の問題は,アウトバウンド・ゲートウェイに関連しています。

4.3.1    printer-address 属性の変更

アウトバウンド・ゲートウェイ・スーパバイザ (pdspvlpr) によってサポートされている物理プリンタの printer-address 属性を変更する場合,新しいアドレスを有効にするために,そのスーパバイザを一度シャットダウンして再起動する必要があります。

次のコマンドを使用して,lpd アウトバウンド・ゲートウェイをシャットダウンしたのちに再起動して,新しいプリンタ・アドレスが使用できるようにします。サーバをシャットダウンして再起動するには,root でなければなりません。

# pdshutdown -c server server_name
# /usr/pd/lib/pdspvlpr server_name

4.3.2    アウトバウンド・ゲートウェイからの分かりにくいエラー・メッセージ

lpd アウトバウンド・ゲートウェイ・スーパバイザ (pdspvlpr) 上に物理プリンタを作成しようとしたときに,有効な printer-address 属性が定義されていなければ,pdenable コマンドを使用してそのプリンタを有効にしようとすると,次のようなメッセージが表示されます。

physical printer name The operation failed in the supervisor backend.

pdset コマンドを使用して,printer-address 属性を定義する必要があります。定義する際には,リモート・システム名,リモート・プリンタ,および拡張ファミリのフィールドを指定します。これら 3 つのフィールドは,コンマで区切って (空白は入れない),順番に指定しなければなりません。

たとえば,リモート・マシン bigred にリモート・プリンタ xjprint を設定し,純粋な RFC 1179 プロトコルを使用するには,次のように printer-address 属性を定義します。

# pdset -c printer \
-x printer-address=bigred,xjprint,1179 bigred_pp

LPD アウトバウンド・ゲートウェイを経由して接続されているプリンタに適用する場合に必要な printer-address 属性のフォーマットについての詳細は,『Advanced Printing Software システム管理/操作ガイド』を参照してください。

4.4    ファイルの印刷

以下の問題は,ファイルの印刷に関連しています。

4.4.1    長さがゼロ (0) のドキュメント・ファイルの処理

長さが 0 のドキュメント (データ・バイトを持たないファイル) を印刷しようとすると,pdpr コマンドは次のようなメッセージを表示します。

An internal error has occurred.

長さが 0 のドキュメントを 1 つと,長さが 0 でないドキュメント 1 つまたは複数を同じジョブで印刷しようとすると,長さ 0 のドキュメントの後ろに指定したドキュメントは印刷されず,次のようなメッセージが表示されます。

Insufficient memory in client program

これらのメッセージは無視してかまいません。internal error は,重大ではありません。

4.4.2    ファイル名にコロン (:) を含むファイルは印刷できない

プリンティング・システム,特に POSIX CLI インタフェースは,フィールド分離文字としてコロン (:) を使用します。ファイル名にコロンが含まれているプリンティグ・ファイルでは,プリント要求で構文解析エラーが生じます。したがって,プリント・システムでは,ファイル名にコロンが含まれているファイルの印刷をサポートしません。

そのようなファイルを印刷する必要がある場合には,まず,コロンを含まないような新しいファイル名に変更してください。

4.5    スーパバイザのシャットダウン

以降の各項では,pdshutdown コマンドが発行された後のジョブの状態に関連する問題について説明します。

4.5.1    pdshutdown -w after-current コマンド

稀ですが,スーパバイザ上でコマンド pdshutdown -w after-current を発行すると,ジョブが正常に終了しないで,held (保留) 状態に置かれることがあります。

スーパバイザをシャットダウンした後に,ジョブが held 状態に置かれていることに気づいた場合は,job-hold 属性を no に設定することにより,後で印刷することができます。

4.5.2    pdshutdown -w after-all コマンド

一時停止されている物理プリンタに関連付けられている論理プリンタを制御するスプーラに対し,-w after-all を指定して pdshutdown コマンドを発行すると,スプーラは後処理中の状態のままになります。

このような状態になった場合は,-w オプションを指定せずにもう一度 pdshutdown コマンドを発行すると,スプーラをシャットダウンすることができます。

4.6    保持中のジョブは削除できない

pdrm コマンドを使用して保持中のジョブを削除すると,次のようなメッセージが表示されます。

"The job has completed or has already been cancelled."

4.7    job-retention-period はスケジュール済みのジョブに対して設定できない

ジョブに job-retention-period 属性を設定して,印刷が完了した後に保持されるようにすることができます。ただし,一旦,物理プリンタ上での印刷がスケジュールされたジョブには,この属性を設定することはできません。

4.8    output-bins 属性に値を追加できない

他の xxx-supported 属性や xxx-ready 属性と異なり,output-bins-supported 属性および output-bins-ready 属性は,CLI += 演算子を使用して,値を追加することはできません。同様に,-= 演算子を使用して,個々の要素を削除することもできません。これらの属性に対して個々の排出トレイの値の追加や削除を行う必要がある場合は,= 演算子を使用してすべての値を再定義しなければなりません。

たとえば,output-bins-supported の値が top side のとき,このリストに bottom を追加したい場合は,次のように属性全体を再定義する必要があります。

#pdset -c p -x output-bins-supported="top side bottom"

4.9    pdpromote エラー・メッセージ

pdpromote コマンドは,1 つのジョブをプリント・キューの先頭に移動します。複数のジョブを指定して pdpromote コマンドを入力すると,コマンドはエラー・メッセージを返しませんが,コマンド行の最初に指定されたジョブだけを移動します。

4.10    クライアント属性は任意のオブジェクトに対して要求または設定できる

クライアント属性やコマンド属性は,そのオブジェクトに対して有効な属性でなくても,任意のオブジェクトに対して要求したり設定したりすることができます。たとえば,次のコマンドは,retention-period がキュー・オブジェクトに対して有効な属性でなくても,空の値を返します。

# pdls -c queue -r retention-period red_qu
retention-period
---------------------

また,無効な属性を設定できるオブジェクトもあれば,無効な属性を設定できないオブジェクトもあります。次の例は,設定できる属性のいくつかを示しています。

# pdset -c queue -x retention-period=2 red_qu
 
# pdset -c queue -x style=line red_qu

4.11    デルタ時間の出力フォーマットが不明瞭

要求している属性値がデルタ時間で表現されている場合,属性の 3 つのフィールドがすべて設定されていなければ,CLI は不明瞭な値を返します。次の例は,job-retention-period 属性に時間を設定する方法と,この属性の値を参照するときにどのように出力されるかを示しています。

# pdset -c job -r job-retention-period=2 13055
 
# pdls -c job -r job-retention-period 13055
 
job-retention-period  
--------------------  
02   

02 は,2 時間か,2 分か,あるいは 2 秒を指しているのか不確かかもしれませんが,この場合は 2 分を指しています。

4.12    通知に関する制限事項

CLI 通知プロファイルまたは GUI で,「クラス」による通知メッセージを選択すると,動作しません。通知を受信したい個々のイベントを指定する必要があります。