There has been a lot of discussion on the JMP list about the held
and needs-attention state.
Several people have stated that the primary reason for having 'held'
and 'needs-attention' as job-states rather than job-state-reason is
that the job-state should be all that most people need to look at.
Keeping that in mind, here's is an slightly different view that we
should perhaps consider. I put this forth for discussion and can
see pro's and con's for keeping the simple 5 job-states of IPP versus
adding these two additional states.
Change the name of "needs-attention" to "stopped-printing" and define
the "stopped-printing" state as an alternate view of the "processing"
state. A job is in the "stopped-printing" state when certain
job-state-reasons take it out of the "processing" state temporarily.
When those reasons clear, the job goes back to the "processing" state.
Likewise, the "held" job-state is an alternate view of the "pending"
state. A job is in the "held" state when certain job-state-reasons
take it out of the "pending" state temporarily. When those reasons
clear, the job goes back to the "pending" state. Such reasons include
"held-until" (aka "job-hold-until-specified"), "held-for-resources"
(aka "required-resources-not-ready"), and "printer-stopped".
Any reasons that keeps a job from making progress towards the printer
put it in the "held" state. Any reasons that keep a job from
processing put it in the "stopped-printing state.
Note that the "printing-stopped" reason changes a "processing" job to
"stopped-printing" and a "pending" job to a "held" job.
If we want more regular names, then we should call "held", "pending-stopped"
and we should call "stopped-printing", "processing-stopped".
Note: I do not like the name "needs-attention" because it is the printer
that needs attention and not the job. Furthermore, the printer may need
attention even when a particular job is pending.