Topics: HP Output Server

Non-pingable devices

If a device like a printer box, jet-direct card or a Xerox Document Centre does not ping anymore from the HPOS server, it will result in connection timed out errors within HPOS. If this device however does ping from another location within your netwerk, you have a network issue, and its very likely that your network switch simply needs to learn the IP address and/or MAC address of the device. You can do this by sending a packet from the device to the HPOS server. But how do you get this device to send a packet itself, because a ping is not available?

For an Axis Box, go to the Network Settings (which is available from the Admin window). Now fill in the IP address of your HPOS server as the Primary DNS server and click on Ok. Ofcourse DNS resolving will fail (if your HPOS server isn't a DNS server), but quite immediately after clicking Ok, you will notice that the Axis Box will ping again from the HPOS server. If it pings again, change the primary DNS server in your Axis Box back to its original value.

The same can be done with other devices, like the Xerox Document Centre. Go to the TCP/IP properties (usually under Properties -> Connectivity -> Protocols). Set the IP Address Resolution to STATIC (if you're using DHCP) and update the primary DNS server to the IP address of the HPOS server. Then click on Reboot on the Status window, and you'll notice that it will ping again to the HPOS server. Again, change everything back to their original values, if the Document Centre pings.

Topics: HP Output Server

HPOS maintenance

As HP Output Server doesn't support hot backups, It is recommended to do monthly maintenance, in order to create a backup and keep things healthy. Assuming HPOS is installed in /appl/hpos and its data is stored in /data/hpos:

  • Notify your users of the downtime.
  • Stop any applications that use HPOS.
  • Clear out any "hanging" jobs.
  • Clear out the /data/hpos/var/tmp directory.
  • For every log file in /data/hpos/var/log, issue:
    # cp /dev/null > $logfile
  • Delete and recreate the JQMs:
    # config_server -d $jqm
    # config_server -t JQM $jqm
    JQM job databases tend to grow over time. By re-creating them, you can save lots on disk usage and I/O performance. You can do this step safely, as all information is stored in the CM. If you use a server-startup-order, you should also update this again after you've recreated the JQM:
    # config_server -u -x"-server-start-order xxx" $jqm
  • Delete and recreate the DLMs:
    # config_server -d $dlm
    # nfig_server -t DLM $dlm
    This step may be required because sometimes a DLM produces errors, which you might see in JobTracker. These errors are solved by recreating the DLMs. Again, remember to set your server-startup-order, if you use it.
  • Stop all HPOS daemons:
    # stop_server -t all
  • Create a backup of the system.
  • If available, download any service packs and install them now:
    # . /appl/hpos/etc/
    # perl /appl/hpos/etc/
    If this fails, just try it again, or you can restore your backup.
  • Also upgrade any client systems to the same service pack. If necessary, also check the Windows client versions required.
  • Start all daemons again:
    # start_server -t all
  • Test if everything is working.
  • Reboot your server to free up memory.
  • Again, test if everything is working.
  • Startup all applications again, that use HPOS.
  • Notify your users that the system is available.
  • Document any changes (e.g. Service Packs) and problems encountered.
  • Store the software you've used somewhere safe.
This monthly backup still requires some daily backup method. You can do this, by dumping the HPOS configuration to file, before running your daily backup:
# Save HPOS config config
. /appl/dazel/etc/
rm -f /appl/hpos/dump-file
pdconfig -d -c /appl/hpos/dump-file

Topics: HP Output Server

Creating external destinations

How do you create an external destination in HP Output Server? I wanted to deliver a print to a destination, that executes an external command on the job. Here's the configuration that works:

I named by logical destination external, which points to queue qexternal and the physical destination is called pdexternal.

The logical destination:

-template-version              : $Date: 2002/03/01 02:35:32 $
-template-component            : false
-managing-server               : jqm_06
-disabled                      : false
-form-feed-default             : false
-maximum-tries-default         : 30000
-printer-name                  : external
-destination-type              : file
-queue-supported               : qexternal
-template-type                 : standard-template
-retention-period-default      : 0
-descriptor                    : test external delivery pathway
-input-document-formats-supported: literal,
-template                      : false
-template-classification       : static-template
-printer-realization           : 0
The queue:
-template-version              : $Date: 2002/01/04 17:24:14 $
-queue-name                    : qexternal
-managing-server               : jqm_06
-disabled                      : false
-template-type                 : standard-template
-descriptor                    : test external delivery pathway
-queue-warning-threshold       : 50
-scheduler-assigned            : Pd-FIFO
-template                      : false
-template-classification       : static-template
-logical-printers-assigned     : {external, 'available'}
-message                       : Enabled
-physical-printers-registered  : pdexternal
-job-order                     : 
The physical destination:
-template-version              : $Date: 2002/03/12 19:59:09 $
-template-component            : false
-managing-server               : dsm_06a
-ghostscript-program           : !{dazel-install-directory}!/bin/gs
-disabled                      : false
-form-feed-default             : false
-deliver-program               : /appl/hpos/
-printer-name                  : pdexternal
-queue-supported               : qexternal
-template-device-name          : generic
-file-overwrite-default        : true
-template-type                 : standard-template
-character-set-default         : iso-latin-1
-physical-device-type          : external
-descriptor                    : test external delivery pathway
-medium-default                : iso-a4-white
-font-directories              : !{dazel-install-directory}!/lib/
-template                      : false
-character-sets-supported      : iso-latin-1,
-template-classification       : static-template
-file-base-directory           : /tmp
-printer-realization           : 1
-printer-connection-mode       : external
-ps-init-directories           : !{dazel-install-directory}!/lib/PS
-fifo-directory                : /appl/hpos/fifo
-write-only-device             : true
-deliver-arguments             : !{fifo-directory}!/!{job-identifier}!
When you've created this delivery pathway, create the FIFO directory (in this case: /appl/hpos/fifo) and restart the accompanying DSM in order to activate the external destination.

The FIFO directory is used by HP Output Server to create FIFO files for every physical destination and for every job submitted to it. You can use these FIFOs to pass information back to HP Output Server.

You might have noticed the physical destination has a -deliver-program attribute. Make sure the user that runs your DSM is capable of executing this command, and the same user-ID must be able to access the FIFO directory.

The deliver-program used is shown below. It logs some information to a file and then sends an email with the contents of the file submitted to external.

echo "Process:"
echo $$
echo "Parameters:"
echo $0 $*
echo "Who am I?"
} >> /appl/hpos/external.out

base=`basename $file`
cp $file /appl/hpos/fifo/$base.$$
mail < $file
echo "-job-state-on-printer completed" > $1
exit 0
This script passes some information back to the FIFO:-job-state-on-printer completed
This will inform HP Output Server that the processing of the job has completed. If you do not pass this information, HPOS will wait forever for the job to complete, even if the job is no longer active anymore.

Now, if you submit the following command:
# pdpr -dexternal /etc/motd
The file /etc/motd will be mailed, using script

Topics: HP Output Server

Stack timeout

Problems may be encountered with printers connected via Axis Boxes to the network, producing errors with some of the prints, usually larger prints. The printer prints a page with the following text: "ERROR: timeout, OFFENDING COMMAND: timeout, STACK:".

The solution is quite easy. The port speed of the LPT port used on the Axis Box is probably set to "Standard". Set it to "High Speed" and timeouts don't occur anymore.

Topics: HP Output Server

Core dump AIM

If your AIM daemon dumps core frequently and you have a lot of destinations in HP Output Server, it may well be that the default stack size for the AIM daemon is too small. Default, this is 64 KB. You can confirm this, by checking the errpt on AIX only: If the errpt shows an error about Too many stack elements, then you should adjust the stack size of the AIM daemon. This may be encountered when searching for destinations on location within the Envoy Delivery Agent.

To solve this: Go to $DAZEL_HOME/etc and edit HostConfig.sgml. Search for aim in this file and scroll down to server-executable-options. Add the following line:

This will increase the stack size to 4 MB. You can increase it up to 8 MB if you like. Now restart the AIM daemon and your problems should be gone.

Topics: HP Output Server

Busiest logical destination

The following is a simple script to show you the busiest logical destination there is. The script is called tq and needs nq (see elsewhere on this website) to run:

cd /appl/dazel
nmcp list ".*,config,server_manager" | grep jqm | cut -f1 -d, | while read JQM ; do
   ./nq $JQM >> /tmp/tq.$$
sort -nk2 /tmp/tq.$$
rm /tmp/tq.$$
You'll have to modify this script to set the correct directory to nq.
# tq
pr26381: 1 jobs
pr50342: 1 jobs
pr50555: 1 jobs
pr50895: 1 jobs
pr69215: 1 jobs
pr36418: 2 jobs
pr39993: 2 jobs
pr50692: 3 jobs

Topics: HP Output Server

Number of jobs per logical destination

The following is a simple script to show you the number of jobs currently active within a given JQM per logical destination. The script is called nq:

. /appl/dazel/etc/
if [ -z "$jqm" ] ; then
   echo Please enter the name of a jqm.
pdls -c j -a destination $jqm: | grep destination | sort | awk '{print $3}' > /tmp/nq.$$
cat /tmp/nq.$$ | sort -dfu | while read printer ; do    echo $printer: `grep $printer /tmp/nq.$$ | wc -l | awk '{print $1}'` jobs
You'll have to modify this script to set the correct directory to

When you run this script, enter the name of a JQM as a parameter for this script:
# nq jqm_01
pr31249: 1 jobs
pr43461: 8 jobs
pr58153: 11 jobs
pr77996: 1 jobs
pr03226: 5 jobs

Topics: HP Output Server

LPG daemon stops frequently

The LPG daemon at default is able to process 11 jobs at a time. Under heavy load, the LPG daemon might stop because of this limitation. To avoid this, you can use the -R option for the LPR Gateway, so that it will allow an unlimited number of jobs coming in.

This is how to add the -R option:

  • Login as user root.
  • Stop your line printer gateway:
    # stop_server lpg
  • Goto your HPOS installation directory. Then switch to the etc subdirectory.
  • Backup your current HostConfig.sgml file (just in case!):
    # cp HostConfig.sgml HostConfig.sgml.original
  • Edit the HostConfig.sgml file, and add the -R option under the -server-executable-options under your DAZEL-SERVER NAME="lpg", just like this:
    <DAZEL-AVPAIR NAME="server-executable-options">
    <DAZEL-VALUE STRING-VALUE="-n !{server-name}!">
    <DAZEL-VALUE STRING-VALUE="-l !{server-login-name}!">
  • Now start your line printer gateway again:
    # start_server lpg
  • Check your LPG server to see if the -R option is enabled:
    # list_server lpg

Topics: HP Output Server

HPOS performance tips

  • Use as much Postscript templates as possible. If you use a lot of PCL templates, you'll get a lot of ghostscript processes on your system, required for translation of Postscript to PCL. Most printers nowadays understand Postscript, and Postscript usually gives the best result, without the need of translation processes.
  • Keep the HPOS installation in 1 filesystem, if possible. When files are transferred through HPOS, they get moved from the DLM (dm) directory, to the JQM (drm) directory and ultimately to the DSM (dsup) directory. If you have these 3 in different file systems, the jobs need to be transferred from 1 file system to the other multiple times, causing a lot of disk I/O. By keeping it all in 1 filesystem, a move of a job file is nothing more than setting a file pointer, which is a lot faster and saves huge amounts of disk I/O.
  • Recycle your JQM's at regular intervals (discribed above). Be deleting the JQM and configuring it again, the job database is deleted and recreated, usually saving you hundreds of megabytes in disk space and memory consumption.
  • Restart your system and complete HPOS environment at least once a month. This will clear the memory.
  • Set the server-log-level of each server to "terse" or "info". This will keep the logging to a minimum.
  • Rotate the log files daily: copy the log files, clean out the original log files and remove old log files.
  • The faster the CPUs in your system, the better (this is a very obvious point...)
  • Put the JFS log on a different disk than your HPOS "var" directory. This will separate the disk I/O for JFS logging and the jobs of HPOS, avoiding disk contention.
  • Keep the amount of jobs in HPOS to a minimum. The more jobs in HPOS, the more memory and CPU it uses.
  • Use "generic" templates if you wish to stop HPOS from doing any job delivery monitoring. PJL templates will interrogate the printer about the job status frequently, and thus use more CPU. PJL templates do have a more reliable job delivery method though.
  • Restart any DSM's that use a lot of disk space and/or memory. By restarting them, the disk space and memory is cleared. This will restart any active print jobs, so be sure to check if any jobs are active for the DSM, before restarting it (Especially those 1000 page print jobs at 99% completion....).
  • If you have geographically dispersed users, it might be best to set up a secondary server, which also runs DLM, JQM and DSM, and EM processes. This will keep most network traffic local to the users, instead of moving documents from one location to the other for processing and then transferring it back over the network to the users again. Having an EM process local to the users, saves a lot on EM network traffic also.

Topics: HP Output Server

HPOS sizing rules

Rule 1: Not more that 200 Logical Destinations per JQM.
Rule 2: For high-volume or Fax Destinations, use a separate JQM for both these type of destinations.
Rule 3: Use the same amount of DLMs as JQMs.
Rule 4: Per DSM 30 to 40 Physical Destinations, that will be 5 DSMs per JQM.
Rule 5: Have a separate DSM for every Fax destination.

Number of results found for topic HP Output Server: 17.
Displaying results: 1 - 10.