Title: Message
Hi,
 
    I'm trying to figure out if I'm doing something wrong or if I've run into a bug in LPRng.
 
    We have an LPRng setup with a number of spools with rather complex filters, which do a number of automated process files before they are submitted to a 3rd party production print spooler. They're written most in Perl (with some StreamWeaver, and other CASS language callouts). Now, from time to time, there are problems with the resources for these filters, and they must error out. Now, since the data files the LPRng spool has received have nothing to do with these errors and are OK, the filters generally return exit status 6 (JHOLD) and await someone to fix the problem.
 
Now, in the past, its been a matter of monitoring the queues from time to time to see if they listed errors, because under previous versions of LPRng the "mail_operator_on_error" lpd.conf variable does NOT mail on a JHOLD from a filter. This seems to continue to be the case under 3.8.x. (My first question about that is why, and can this be changed?) So, perhaps it would be better to have the filters return a JFAIL, which does cause a mailing, but the default behavior for JFAILed jobs is to remove the file, which we do not want to do, because the files are fine, and reprinting these files from the upstream customer is a "service failure" type event, but changing the "send_failure_action" to hold also seems to suppress mailing the operator. So perhaps the best option is to set "save_on_error", but that's where I think I run into the bug:
 
When I set this, it saves ALL jobs, whether they errored, completed, whatever. Jobs that pass through the filters fine, return with a 0 code from the filter, are also saved. Regardless of whether the "save_when_done" flag is set. Also, setting "done_jobs" to any number or setting "done_jobs_max_age" doesn't seem to have any affect...
 
Can anyone please advise as to what the proper settings are, or if in fact there is a bug that causes LPRng to save everything forever regardless when "save_on_error" is turned on?
 
Or if someone has a suggestion for how "properly" to
A) Have a filter return an error
B) Have the operator mailed that error
C) Have that job saved indefinitely in the queue to be released later when the problem is fixed.
please let me know.

Reply via email to