HP JetDirect queues fail after 3.2.5 to 4.1.5 migration

        AIX 4.1.5
        HP JetDirects


        After upgrading from AIX 3.2.5 to AIX 4.1.5 our JetDirect 
        print queues that existed before the migration don't function
        but newly added JetDirect queues do.  When I submit a print
        job to a JetDirect print queue defined before the migration,
        I get the error:

        error opening /var/spool/lpd/pio/dev/hp..... as stdout for

        If you look in /etc/qconfig you will see that each queue 
        device (for local and JetDirect queues) have a line that

        file = \

        In the case of a local (serial or parallel) printer, the 
        purpose of this is much more obvious... When a job is sent
        to this queue, qdaemon invokes the backend program and sends
        its stdout to the file specified by the "file =" line.
        This makes good sense for piobe - it writes the formatted
        print job to stdout which is directed to the appropriate 
        file, eg. /dev/lp0.

        However, in the case of an HP JetDirect, the behavior is a bit
        more subtle.  Since the output isn't going to a "file" but
        rather being piped into piohpnpf to be sent across the network,
        why bother to have a "file =" at all?  The answer is for 
        locking purposes - if you have two print queues pointing to 
        the same JetDirect printer, only one of the two queues can
        be sending data to it at a time.  The file specified in the
        "file =" line isn't where output is sent, but since only one
        process can open the file for writing at a given moment, it
        ensures only one queue will be RUNNING a job while the other
        is in DEV_BUSY state waiting to be able to open the "file ="

        However, at AIX 3.2.5 these "lock" files resided in 
        /var/spool/lpd/pio/dev - which no longer exists in AIX 4.1.
        Therefore, no queue can open the files in this directory.
        In AIX 4.1.5 the files now reside in 
        /var/spool/lpd/pio/@local/dev directory.

        The solution is to modify the path of the "file =" line in
        /etc/qconfig to the correct location and create a blank file
        in the directory corresponding to the "file =" line in 
        qconfig.  An alternate solution would be to just take out the
        "file =" line, or set "file = FALSE" which has special 
        meaning (discard stdout).  

Support Line: HP JetDirect queues fail after 3.2.5 to 4.1.5 migration ITEM: DF3404L
Dated: July 1997 Category: N/A
This HTML file was generated 99/06/24~13:30:16
Comments or suggestions? Contact us