Subject: JMP> IMPRESSIONS COMPLETE (again)

From: Harry Lewis <[email-masked]>
Date: Fri, 7 Nov 1997 12:22:11 -0500

I apologize, especially since this is a long message, but I'm re-sending due to
truncation problems.

We've stumbled across an area in the Job MIB that seems to be unduly
confusing. This has to do with jmJobImpressionsRequested and Completed.
This seems to have crept in on the latest draft yet I didn't see revision
marks... or, I somehow missed them.

Below, are the excerpts. I've used * to highlight the issues.

 jmJobImpressionsRequested OBJECT-TYPE
     SYNTAX      Integer32(-2..2147483647)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "The total size in number of impressions of the document(s)
        being requested by this job to produce.
        *In computing this value, the server/device SHALL not include the
        *multiplicative factors contributed by (1) the number of document
        *copies, and (2) the number of job copies, independent of whether
        *the device can process multiple copies of the job or document
        *without making multiple passes over the job or document data and
        *independent of whether the output is collated or not.  Thus the
        *server/device computation is independent of the implementation."

 jmJobImpressionsCompleted OBJECT-TYPE
     SYNTAX      Integer32(-2..2147483647)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "The current number of impressions completed for this job so
        far.  For printing devices, the impressions completed includes
        interpreting, marking, and stacking the output.  For other types
        of job services, the number of impressions completed includes
        the number of impressions processed.

        *For implementations where multiple copies are produced by the
        *interpreter with only a single pass over the data, the final
        *value SHALL be equal to the value of the
        *jmJobImpressionsRequested object.  For implementations where
        *multiple copies are produced by the interpreter by processing
        *the data for each copy, the final value SHALL be a multiple of
        *the value of the jmJobImpressionsRequested object.

        NOTE - See the impressionsCompletedCurrentCopy and
        pagesCompletedCurrentCopy attributes for attributes that are
        reset on each document copy.

        NOTE - The jmJobImpressionsCompleted object can be used with the
        jmJobImpressionsRequested object to provide an indication of the
        relative progress of the job, provided that the multiplicative
        factor is taken into account for some implementations of
        multiple copies."

I really don't have a problem with the wording associated with
jmJobImpressionsRequested, but have included it for background. The
issue is with the * words in jmJobImpressionsCompleted.

We CANNOT have and either/or definition here. We must specify who
does the multiplication of impressions where there are copies involved.

In our labs, we believe the only viable alternative for ImpressionsCompleted
is for the JobMIB agent to count every impression as it is stacked. So, if
there were 3 copies and jmJobImpressionsRequested was 5 (that means 5
impressions per copy, by definition), then, if 2 copies has just completed,
the value for jmJobImpressionsCompleted would be 10. Our main reasons for
believing this are:

1. Two ways of counting something leads to confusion in the MIB

2. Counting completed impressions should have nothing to do with how
   many squirrels are in the cage or which way or how hard they are
   running to make impressions come out.

3. Even though the job MIB has "impressionsCompletedCurrentCopy(113)"
   it does not distinguish between collated and uncollatted copies.

4. If the printer is handling uncollated copies, and the agent is behaving
   such that the final value of jmJobImpressionsCompleted is expected to
   equal jmJobImpressionsRequested (the "wrong" way), neither variable
   (ImpressionsCompleted or ImpressionsCompletedCurrentCopy will "bump"
   until at least one impression has stacked all copies. If the job was 3
   copies of a 5 impression job, the printer could stack 10 impressions,
   then jam, abort or whatever and the accounting application would pick
   up a final count of zero impressions completed.

I suggest the * wording in jmJobImpressionsCompleted be replaced with
"Impressions SHALL be counted as they are completed such that the final
 value is a multiple of the value of the jmJobImpressionsRequested object."

Harry Lewis - IBM Printing Systems