idnits 2.17.1 draft-ietf-printmib-job-monitor-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-26) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 80 longer pages, the longest (page 2) being 59 lines == It seems as if not all pages are separated by form feeds - found 91 form feeds but 95 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 2 instances of too long lines in the document, the longest one being 1 character in excess of 72. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 292: '...attribute and 70 OPTIONAL attributes a...' RFC 2119 keyword, line 408: '... the application SHALL query each job ...' RFC 2119 keyword, line 455: '...which MAY be identified with a hard-co...' RFC 2119 keyword, line 459: '... disjoint; no job SHALL be represented...' RFC 2119 keyword, line 477: '... and other devices. A server MAY be a...' (234 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 426 has weird spacing: '...ure for monit...' == Line 501 has weird spacing: '...ication is th...' == Line 1022 has weird spacing: '...tion of jmJob...' == Line 3428 has weird spacing: '...dent of wheth...' == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: 2.SHALL accept all OPTIONAL attributes, including enum and bit values specified in this specification and additional ones that may be registered with IANA and SHALL either present them to the user or ignore them. In particular, a conforming job monitoring application SHALL not malfunction when receiving any standard or registered enum or bit values. See Section 7 entitled "IANA Considerations" on page 22. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: Most attributes SHALL have only one row per job. However, a few attributes can have multiple values per job or even per document, where each value is a separate row in the jmAttributeTable. Unless indicated with 'MULTI-ROW:' in JmAttributeTypeTC, an agent SHALL ensure that each attribute item occurs only once in the jmAttributeTable for a job. Attributes that are permitted to appear multiple times in the jmAttributeTable for a job are indicated with 'MULTI-ROW:' in their specification in the JmAttributeTypeTC. However, such 'MULTI-ROW' attribute items SHALL not contain duplicates for 'intensive' (as opposed to 'extensive') attributes. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: A number of attributes record consumption. Such attribute names end with the word 'Completed' or 'Consumed'. If the job has not yet consumed what that resource is metering, the agent either: (1) SHALL return the value 0 or (2) SHALL not add this attribute to the jmAttributeTable until the consumption begins. In the interests of brevity, the semantics for 0 is specified once here and is not repeated for each xxxxYyyyCompleted and xxxxYyyyConsumed attribute specification. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: A number of attributes are indexes in other tables. Such attribute names end with the word 'Index'. If the agent does not (yet) know the index value for a particular index attribute for a job, the agent either: (1) SHALL return the value 0 or (2) SHALL not add this attribute to the jmAttributeTable until the index value is known. In the interests of brevity, the semantics for 0 is specified once here and is not repeated for each index attribute specification. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: documentFormatIndex(37), -- Integer32(0..2147483647) -- INTEGER: MULTI-ROW: The index in the -- prtInterpreterTable in the Printer MIB[1] of the page -- description language (PDL) or control language -- interpreter that this job requires/uses. A document or a -- job MAY use more than one PDL or control language. ---- NOTE - As with all intensive attribute items where -- multiple rows are allowed, there SHALL be only one -- distinct row for each distinct interpreter; there SHALL -- be no duplicates. ---- NOTE - This attribute type is intended to be used with an -- agent that implements the Printer MIB and SHALL not be -- used if the agent does not implement the Printer MIB. -- Such an agent SHALL use the documentFormat attribute -- instead. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: -- jmJobStateReasons1 object and SHALL not schedule the job -- for processing until the specified date and time has -- passed. When the specified date and time arrives, the -- server SHALL remove the jobProcessAfterSpecified bit -- value from the job's jmJobStateReasons1 object and, if no -- other reasons remain, SHALL change the job's jmJobState -- object to pending so that the job becomes a candidate for -- being scheduled on devices(s). ---- The agent SHALL assign an empty value to the -- jobProcessAfterDateAndTime attribute when no process -- after time has been specified, so that the job SHALL be a -- candidate for processing immediately. --jobHold(52), -- Integer32(0..1) -- INTEGER: If the value is 1, a client has explicitly -- specified that the job is to be held until explicitly -- released. Until the job is explicitly released by a -- client, the job SHALL be in the pendingHeld state with -- the jobHoldSpecified value in the jmJobStateReasons1 -- attribute. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: jobProcessingCPUTime(198) -- Integer32(-2..2147483647) -- INTEGER: The amount of CPU time that the job has been -- processing in seconds, i.e., in the processing job state. -- If the device stops and/or the job enters the -- processingStopped state, that elapsed time SHALL not be -- included. In other words, the jobProcessingCPUTime value -- SHOULD be relatively repeatable when the same job is -- submitted again. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHOULD not' in this paragraph: badJob 0x40000000 This job was aborted by the system because this job has a major problem, such as an ill-formed PDL; the spooler SHOULD not even try another device. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: Each time a new job is accepted by the server or device that the agent is instrumenting AND that job is to be 'active' (pending, processing, or processingStopped, but not pendingHeld), the agent SHALL copy the value of the job's jmJobIndex to the jmGeneralNewestActiveJobIndex object. If the new job is 'in-active' (pendingHeld state), the agent SHALL not change the value of jmGeneralNewestActiveJobIndex object. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: 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." ::= { jmJobEntry 4 } == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: For attributes which do have the 'INTEGER:' tag in the JmAttributeTypeTC definition, if the integer value is not (yet) known, the value SHALL be (-2) to represent unknown counting integers, (2) to represent unknown enum values, or the attribute row SHALL not be present in the table." ::= { jmAttributeEntry 3 } -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (Dec 10, 1997) is 9634 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Missing reference section? '2' on line 3841 looks like a reference -- Missing reference section? '1' on line 3837 looks like a reference -- Missing reference section? '3' on line 3845 looks like a reference -- Missing reference section? '4' on line 3849 looks like a reference -- Missing reference section? '5' on line 3851 looks like a reference -- Missing reference section? '6' on line 3853 looks like a reference -- Missing reference section? '7' on line 3855 looks like a reference Summary: 7 errors (**), 0 flaws (~~), 18 warnings (==), 10 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Job Monitoring MIB, V0.82 June 9, 1997 3 INTERNET-DRAFT Ron Bergman 4 Dataproducts Corp. 5 Tom Hastings 6 Xerox Corporation 7 Scott Isaacson 8 Novell, Inc. 9 Harry Lewis 10 IBM Corp. 11 April 1997 13 Job Monitoring MIB - V0.82 15 17 Expires Dec 10, 1997 19 Status of this Memo 21 This document is an Internet-Draft. Internet-Drafts are working 22 documents of the Internet Engineering Task Force (IETF), its areas, 23 and its working groups. Note that other groups may also distribute 24 working documents as Internet-Drafts. 26 Internet-Drafts are draft documents valid for a maximum of six 27 months and may be updated, replaced, or obsoleted by other 28 documents at any time. It is inappropriate to use Internet-Drafts 29 as reference material or to cite them other than as "work in 30 progress." 32 To learn the current status of any Internet-Draft, please check the 33 "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow 34 Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), 35 munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or 36 ftp.isi.edu (US West Coast). 38 Abstract 40 This Internet-Draft specifies a set of 17 SNMP MIB objects for (1) 41 monitoring the status and progress of print jobs (2) obtaining 42 resource requirements before a job is processed, (3) monitoring 43 resource consumption while a job is being processed and (4) 44 collecting resource accounting data after the completion of a job. 45 This MIB is intended to be implemented (1) in a printer or (2) in a 46 server that supports one or more printers. Use of the object set 47 is not limited to printing. However, support for services other 48 than printing is outside the scope of this Job Monitoring MIB. 50 Job Monitoring MIB, V0.82 June 9, 1997 52 Future extensions to this MIB may include, but are not limited to, 53 fax machines and scanners. 55 Job Monitoring MIB, V0.82 June 9, 1997 57 TABLE OF CONTENTS 59 1. INTRODUCTION........................................................9 61 1.1 Types of Information in the MIB ..................................9 63 1.2 Types of Job Monitoring Applications ............................11 65 2. TERMINOLOGY AND JOB MODEL..........................................12 67 3. SYSTEM CONFIGURATIONS FOR THE JOB MONITORING MIB...................14 69 3.1 Configuration 1 - client-printer ................................15 71 3.2 Configuration 2 - client-server-printer - agent in the server ...16 73 3.3 Configuration 3 - client-server-printer - client monitors printer 74 agent and server ....................................................17 76 4. CONFORMANCE CONSIDERATIONS.........................................18 78 4.1 Conformance Terminology .........................................19 80 4.2 Agent Conformance Requirements ..................................19 81 4.2.1 MIB II System Group objects .................................19 82 4.2.2 MIB II Interface Group objects ..............................20 83 4.2.3 Printer MIB objects .........................................20 85 4.3 Job Monitoring Application Conformance Requirements .............20 87 5. JOB IDENTIFICATION.................................................20 89 6. INTERNATIONALIZATION CONSIDERATIONS................................21 91 7. IANA CONSIDERATIONS................................................22 93 7.1 IANA Registration of enums ......................................22 94 7.1.1 Type 1 enumerations .........................................22 95 7.1.2 Type 2 enumerations .........................................22 96 Job Monitoring MIB, V0.82 June 9, 1997 98 7.1.3 Type 3 enumeration ..........................................23 100 7.2 IANA Registration of type 2 bit values ..........................23 102 7.3 IANA Registration of Job Submission Id Formats ..................23 104 8. SECURITY CONSIDERATIONS............................................24 106 8.1 Read-Write objects ..............................................24 108 8.2 Read-Only Objects In Other User's Jobs ..........................24 110 9. RETURNING OBJECTS WITH NO VALUE IN MANDATORY GROUPS................24 112 10. NOTIFICATION AND TRAPS............................................25 114 11. MIB SPECIFICATION.................................................25 116 Textual conventions for this MIB module .............................27 117 JmTimeStampTC - simple time in seconds ............................27 118 JmJobSourcePlatformTypeTC - operating system platform definitions .27 119 JmFinishingTC - device finishing definitions ......................28 120 JmPrintQualityTC - print quality ..................................29 121 JmPrinterResolutionTC - printer resolution ........................30 122 JmTonerEconomyTC - toner economy setting ..........................31 123 JmMediumTypeTC - medium type definitions ..........................31 124 JmJobStateTC - job state definitions ..............................32 125 JmAttributeTypeTC - attribute type definitions ....................35 126 other ..........................................................38 127 unknown ........................................................39 128 Job State attributes.............................................39 129 jobStateReasons2 ...............................................39 130 jobStateReasons3 ...............................................39 131 jobStateReasons4 ...............................................39 132 deviceAlertCode ................................................40 133 processingMessage ..............................................40 134 Job Identification attributes....................................40 135 jobOwner (MANDATORY) ...........................................40 136 jobAccountName .................................................41 137 serverAssignedJobName ..........................................41 138 jobName ........................................................41 139 jobServiceTypes ................................................42 140 jobSourceChannelIndex ..........................................42 141 jobSourcePlatformType ..........................................43 142 Job Monitoring MIB, V0.82 June 9, 1997 144 submittingServerName ...........................................43 145 submittingApplicationName ......................................43 146 jobOriginatingHost .............................................43 147 deviceNameRequested ............................................43 148 queueNameRequested .............................................44 149 physicalDevice .................................................44 150 numberOfDocuments ..............................................44 151 fileName .......................................................44 152 documentName ...................................................45 153 jobComment .....................................................45 154 documentFormatIndex ............................................45 155 documentFormat .................................................45 156 Job Parameter attributes.........................................46 157 jobPriority ....................................................46 158 jobProcessAfterDateAndTime .....................................46 159 jobHoldUntil ...................................................47 160 jobHoldUntil ...................................................47 161 outputBin ......................................................47 162 sides ..........................................................48 163 finishing ......................................................48 164 Image Quality attributes (requested and used)....................48 165 printQualityRequested ..........................................48 166 printQualityUsed ...............................................48 167 printerResolutionRequested .....................................48 168 printerResolutionUsed ..........................................48 169 tonerEcomonyRequested ..........................................49 170 tonerEcomonyUsed ...............................................49 171 tonerDensityRequested ..........................................49 172 tonerDensityUsed ...............................................49 173 Job Progress attributes (requested and consumed).................49 174 jobCopiesRequested .............................................49 175 jobCopiesCompleted .............................................50 176 documentCopiesRequested ........................................50 177 documentCopiesCompleted ........................................50 178 jobKOctetsTransferred ..........................................50 179 Impression attributes (requested and consumed)...................51 180 impressionsSpooled .............................................51 181 impressionsSentToDevice ........................................51 182 impressionsInterpreted .........................................51 183 impressionsCompletedCurrentCopy ................................52 184 fullColorImpressionsCompleted ..................................52 185 highlightColorImpressionsCompleted .............................52 186 Page attributes (requested and consumed).........................52 187 pagesRequested .................................................53 188 pagesCompleted .................................................53 189 pagesCompletedCurrentCopy ......................................53 190 Sheet attributes (requested and consumed)........................53 191 sheetsRequested ................................................53 192 Job Monitoring MIB, V0.82 June 9, 1997 194 sheetsCompleted ................................................53 195 sheetsCompletedCurrentCopy .....................................54 196 Resource attributes (requested and consumed).....................54 197 mediumRequested ................................................54 198 mediumConsumedName .............................................54 199 colorantRequested ..............................................54 200 colorantConsumed ...............................................55 201 Time attributes (set by server or device)........................55 202 jobSubmissionToServerTime ......................................55 203 jobSubmissionToDeviceTime ......................................55 204 timeSinceJobWasSubmittedToDevice ...............................56 205 jobStartedBeingHeldTimeStamp ...................................56 206 jobStartedProcessingTime .......................................56 207 timeSinceStartedProcessing .....................................56 208 jobCompletedTime ...............................................56 209 timeSinceCompleted .............................................57 210 jobProcessingCPUTime ...........................................57 211 JmJobServiceTypesTC - bit encoded job service type definitions...57 212 JmJobStateReasons1TC - additional information about job states .59 213 JmJobStateReasons2TC - More additional information about job 214 states .........................................................62 215 JmJobStateReasons3TC - More additional information about job 216 states .........................................................66 217 JmJobStateReasons4TC - More additional information about job 218 states .........................................................67 219 The General Group (Mandatory)....................................69 220 jmGeneralNumberOfActiveJobs ....................................69 221 jmGeneralOldestActiveJobIndex ..................................70 222 jmGeneralNewestActiveJobIndex ..................................70 223 jmGeneralJobPersistence ........................................72 224 jmGeneralAttributePersistence ..................................72 225 jmGeneralJobSetName ............................................72 227 THE JOB ID GROUP (MANDATORY)..........................................73 229 JMJOBSUBMISSIONID.....................................................74 231 JMJOBSETINDEX.........................................................75 233 JMJOBINDEX............................................................76 235 THE JOB GROUP (MANDATORY).............................................76 236 Job Monitoring MIB, V0.82 June 9, 1997 238 JMJOBSTATE............................................................77 240 JMJOBSTATEREASONS1....................................................78 242 JMNUMBEROFINTERVENINGJOBS.............................................78 244 JMJOBKOCTETSREQUESTED.................................................79 246 JMJOBKOCTETSPROCESSED.................................................79 248 JMJOBIMPRESSIONSREQUESTED.............................................80 250 JMJOBIMPRESSIONSCOMPLETED.............................................80 252 THE ATTRIBUTE GROUP (MANDATORY).......................................81 254 JMATTRIBUTETYPEINDEX..................................................82 256 JMATTRIBUTEINSTANCEINDEX..............................................82 258 JMATTRIBUTEVALUEASINTEGER.............................................83 260 JMATTRIBUTEVALUEASOCTETS..............................................84 262 12. APPENDIX A - INSTRUMENTING THE JOB LIFE CYCLE.....................87 264 13. APPENDIX B - SUPPORT OF THE JOB SUBMISSION ID IN JOB SUBMISSION 265 PROTOCOLS.............................................................88 267 13.1 Hewlett-Packard's Printer Job Language (PJL) ...................88 269 14. BIBLIOGRAPHY......................................................88 270 Job Monitoring MIB, V0.82 June 9, 1997 272 15. AUTHOR'S ADDRESSES................................................89 274 16. INDEX.............................................................92 275 Job Monitoring MIB, V0.82 June 9, 1997 277 Job Monitoring MIB 279 1. Introduction 281 The Job Monitoring MIB consists of a 6-object General Group, a 2-object 282 Job Submission ID Group, a 7-object Job Group, and a 2-object Attribute 283 Group. Each group is a table. The General Group contains general 284 information that applies to all jobs in a job set. The Job Submission 285 ID table maps the job submission ID that the client uses to identify a 286 job to the jmJobIndex that the Job Monitoring Agent uses to identify 287 jobs in the Job and Attribute tables. The Job table contains the 288 mandatory integer job state and status objects. The Attribute table 289 consists of multiple entries per job that specify (1) job and document 290 identification and parameters, (2) requested resources, and (3) 291 consumed resources during and after job processing/printing. One 292 MANDATORY attribute and 70 OPTIONAL attributes are defined as textual 293 conventions. 295 The Job Monitoring MIB is intended to be instrumented by an agent within 296 a printer or the first server closest to the printer, where the printer 297 is either directly connected to the server only or the printer does not 298 contain the job monitoring MIB agent. It is recommended that 299 implementations place the SNMP agent as close as possible to the 300 processing of the print job. This MIB applies to printers with and 301 without spooling capabilities. This MIB is designed to be compatible 302 with most current commonly-used job submission protocols. In most 303 environments that support high function job submission/job control 304 protocols, like ISO DPA[2], those protocols would be used to monitor and 305 manage print jobs rather than using the Job Monitoring MIB. 307 1.1 Types of Information in the MIB 309 The job MIB is intended to provide the following information for the 310 indicated Role Models in the Printer MIB[1] (Appendix D - Roles of 311 Users). 313 User: 315 Provide the ability to identify the least busy printer. The user 316 will be able to determine the number and size of jobs waiting for 317 each printer. No attempt is made to actually predict the length 318 of time that jobs will take. 320 Provide the ability to identify the current status of the user's 321 job (user queries). 323 Job Monitoring MIB, V0.82 June 9, 1997 325 Provide a timely indication that the job has completed and where 326 it can be found. 328 Provide error and diagnostic information for jobs that did not 329 successfully complete. 331 Operator: 333 Provide a presentation of the state of all the jobs in the print 334 system. 336 Provide the ability to identify the user that submitted the print 337 job. 339 Provide the ability to identify the resources required by each 340 job. 342 Provide the ability to define which physical printers are 343 candidates for the print job. 345 Provide some idea of how long each job will take. However, exact 346 estimates of time to process a job is not being attempted. 347 Instead, objects are included that allow the operator to be able 348 to make gross estimates. 350 Capacity Planner: 352 Provide the ability to determine printer utilization as a function 353 of time. 355 Provide the ability to determine how long jobs wait before 356 starting to print. 358 Accountant: 360 Provide information to allow the creation of a record of resources 361 consumed and printer usage data for charging users or groups for 362 resources consumed. 364 Provide information to allow the prediction of consumable usage 365 and resource need. 367 The MIB supports printers that can contain more than one job at a time, 368 but still be usable for low end printers that only contain a single job 369 at a time. In particular, the MIB supports the needs of Windows and 370 other PC environments for managing low-end networked devices without 371 unnecessary overhead or complexity, while also providing for higher end 372 systems and devices. 374 Job Monitoring MIB, V0.82 June 9, 1997 376 1.2 Types of Job Monitoring Applications 378 The Job Monitoring MIB is designed for the following types of monitoring 379 applications: 381 1.monitor a single job starting when the job is submitted and 382 finishing a defined period after the job completes. The Job 383 Submission ID table provides the map to find the specific job to be 384 monitored. 386 2.monitor all 'active' jobs in a queue, which this specification 387 generalizes to a "job set". End users may use such a program when 388 selecting a least busy printer, so the MIB is designed for such a 389 program to start up quickly and find the information needed quickly 390 without having to read all (completed) jobs in order to find the 391 active jobs. System operators may also use such a program, in 392 which case it would be running for a long period of time and may 393 also be interested in the jobs that have completed. Finally such a 394 program may be co-located with the printer to provide an enhanced 395 console and logging capability. 397 3.collect resource usage for accounting or system utilization 398 purposes that copy the completed job statistics to an accounting 399 system. It is recognized that depending on accounting programs to 400 copy MIB data during the job-retention period is somewhat 401 unreliable, since the accounting program may not be running (or may 402 have crashed). Such a program is expected to keep a shadow copy of 403 the entire Job Attribute table including completed, canceled, and 404 aborted jobs which the program updates on each polling cycle. Such 405 a program polls at the rate of the persistence of the Attribute 406 table. The design is not optimized to help such an application 407 determine which jobs are completed, canceled, or aborted. Instead, 408 the application SHALL query each job that the application's shadow 409 copy shows was not complete, canceled, or aborted at the previous 410 poll cycle to see if it is now complete or canceled, plus any new 411 jobs that have been submitted. 413 The MIB provides a set of objects that represent a compatible subset of 414 job and document attributes of the ISO DPA standard[2] and the Internet 415 Printing Protocol (IPP)[3], so that coherence is maintained between 416 these two protocols and the information presented to end users and 417 system operators by monitoring applications. However, the job 418 monitoring MIB is intended to be used with printers that implement other 419 job submitting and management protocols, such as IEEE 1284.1 (TIPSI)[4], 420 as well as with ones that do implement ISO DPA. So nothing in the job 421 monitoring MIB requires implementation of the ISO DPA or IPP protocols. 423 Job Monitoring MIB, V0.82 June 9, 1997 425 The MIB is designed so that an additional MIB(s) can be specified in the 426 future for monitoring multi-function (scan, FAX, copy) jobs as an 427 augmentation to this MIB. 429 2. Terminology and Job Model 431 This section defines the terms that are used in this specification and 432 the general model for jobs. 434 NOTE - Existing systems use conflicting terms, so these terms are 435 drawn from the ISO 10175 Document Printing Application (DPA) 436 standard[2]. For example, PostScript systems use the term session for 437 what we call a job in this specification and the term job to mean what 438 we call a document in this specification. PJL systems use the term 439 job to mean what we call a job in this specification. PJL also 440 supports multiple documents per job, but does not support specifying 441 per-document attributes independently for each document. 443 A job is a unit of work whose results are expected together without 444 interjection of unrelated results. A client is able to specify job 445 instructions that apply to the job as a whole. Proscriptive 446 instructions specify how, when, and where the job is to be printed. 447 Descriptive instructions describe the job. A job contains one or more 448 documents. 450 A job set is a set of jobs that are queued and scheduled together 451 according to a specified scheduling algorithm for a specified device or 452 set of devices. For implementations that embed the SNMP agent in the 453 device, the MIB job set normally represents all the jobs known to the 454 device, so that the implementation only implements a single job set 455 which MAY be identified with a hard-coded value 1. If the SNMP agent is 456 implemented in a server that controls one or more devices, each MIB job 457 set represents a job queue for (1) a specific device or (2) set of 458 devices, if the server uses a single queue to load balance between 459 several devices. Each job set is disjoint; no job SHALL be represented 460 in more than one MIB job set. 462 A document is a sub-section within a job. A document contains print 463 data and document instructions that apply to just the document. The 464 client is able to specify document instructions separately for each 465 document in a job. Proscriptive instructions specify how the document 466 is to be processed and printed by the server. Descriptive instructions 467 describe the document. Server implementation of more than one document 468 per job is optional. 470 A client is the network entity that end users use to submit jobs to 471 spoolers, servers, or printers and other devices, depending on the 472 configuration, using any job submission protocol. 474 Job Monitoring MIB, V0.82 June 9, 1997 476 A server is a network entity that accepts jobs from clients and in turn 477 submits the jobs to printers and other devices. A server MAY be a 478 printer supervisor control program, or a print spooler. 480 A device is a hardware entity that (1) interfaces to humans in human 481 perceptible means, such as produces marks on paper, scans marks on paper 482 to produce an electronic representations, or writes CD-ROMs or (2) 483 interfaces to a network, such as sends FAX data to another FAX device. 485 A printer is a device that puts marks on media. 487 A supervisor is a server that contains a control program that controls a 488 printer or other device. A supervisor is a client to the printer or 489 other device. 491 A spooler is a server that accepts jobs, spools the data, and decides 492 when and on which printer to print the job. A spooler is a client to a 493 printer or a printer supervisor, depending on implementation. 495 Spooling is the act of a device or server of (1) accepting jobs and (2) 496 writing the job's attributes and document data on to secondary storage. 498 Queuing is the act of a device or server of ordering (queuing) the jobs 499 for the purposes of scheduling the jobs to be processed. 501 A monitor or job monitoring application is the network entity that End 502 Users, System Operators, Accountants, Asset Managers, and Capacity 503 Planners use to monitor jobs using SNMP. A monitor MAY be either a 504 separate application or MAY be part of the client that also submits 505 jobs. 507 An agent is the network entity that accepts SNMP requests from a monitor 508 and implements the Job Monitoring MIB by instrumenting a server or a 509 device. 511 A proxy is an agent that acts as a concentrator for one or more other 512 agents by accepting SNMP operations on the behalf of one or more other 513 agents, forwarding them on to those other agents, gathering responses 514 from those other agents and returning them to the original requesting 515 monitor. 517 A user is a person that uses a client or a monitor. 519 An end user is a user that uses a client to submit a print job. 521 A system operator is a user that uses a monitor to monitor the system 522 and carries out tasks to keep the system running. 524 Job Monitoring MIB, V0.82 June 9, 1997 526 A system administrator is a user that specifies policy for the system. 528 A job instruction is an instruction specifying how, when, or where the 529 job is to be processed. Job instructions MAY be passed in the job 530 submission protocol or MAY be embedded in the document data or a 531 combination depending on the job submission protocol and implementation. 533 A document instruction is an instruction specifying how to process the 534 document. Document instructions MAY be passed in the job submission 535 protocol separate from the actual document data, or MAY be embedded in 536 the document data or a combination, depending on the job submission 537 protocol and implementation. 539 An SNMP information object is a name, value-pair that specifies an 540 action, a status, or a condition in an SNMP MIB. Objects are identified 541 in SNMP by an OBJECT IDENTIFIER. 543 An attribute is a name, value-pair that specifies an instruction, a 544 status, or a condition of a job or a document that has been submitted to 545 a server or device. A particular attribute NEED NOT be present in each 546 job instance. In other words, attributes are present in a job instance 547 only when there is a need to express the value, either because (1) the 548 client supplied a value in the job submission protocol, (2) the document 549 data contained an embedded attribute, or (3) the server or device 550 supplied a default value. An agent SHALL represent an attribute as an 551 entry (row) in the Attribute table in this MIB in which entries are 552 present only when necessary. Attributes are identified in this MIB by 553 an enum. 555 Job monitoring using SNMP is (1) identifying jobs within the serial 556 streams of data being processed by the server, printer or other devices, 557 (2) creating "rows" in the job table for each job, and (3) recording 558 information, known by the agent, about the processing of the job in that 559 "row". 561 Job accounting is recording what happens to the job during the 562 processing and printing of the job. 564 3. System Configurations for the Job Monitoring MIB 566 This section enumerates the three configurations in which the Job 567 Monitoring MIB is intended to be used. To simplify the pictures, the 568 devices are shown as printers. See Goals section. 570 The diagram in the Printer MIB[1] entitled: "One Printer's View of the 571 Network" is assumed for this MIB as well. Please refer to that diagram 572 to aid in understanding the following system configurations. 574 Job Monitoring MIB, V0.82 June 9, 1997 576 3.1 Configuration 1 - client-printer 578 In the client-printer configuration, the client(s) submit jobs directly 579 to the printer, either by some direct connect, or by network connection. 580 The client-printer configuration can accommodate multiple job submitting 581 clients in either of two ways: 583 1.if each client relinquishes control of the Print Job Delivery 584 Channel after each job (or after a number of jobs) 586 2.if the printer supports more than one Print Job Delivery Channel 588 The job submitting client and/or monitoring application monitor jobs by 589 communicating directly with an agent that is part of the printer. The 590 agent in the printer SHALL keep the job in the Job Monitoring MIB as 591 long as the job is in the Printer, and longer in order to implement the 592 completed state in which monitoring programs can copy out the accounting 593 data from the Job Monitoring MIB. 595 all end-user ######## SNMP query 596 +-------+ +--------+ ---- job submission 597 |monitor| | client | 598 +---#---+ +--#--+--+ 599 # # | 600 # ############ | 601 # # | 602 +==+===#=#=+==+ | 603 | | agent | | | 604 | +-------+ | | 605 | PRINTER <--------+ 606 | | Print Job Delivery Channel 607 | | 608 +=============+ 610 Figure 3-1 - Configuration 1 - client-printer - agent in the printer 612 The Job Monitoring MIB is designed to support the following 613 relationships (not shown in Figure 3-1): 614 1.Multiple clients MAY submit jobs to a printer. 615 2.Multiple clients MAY monitor a printer. 616 3.Multiple monitors MAY monitor a printer. 617 4.A client MAY submit jobs to multiple printers. 618 5.A monitor MAY monitor multiple printers. 620 Job Monitoring MIB, V0.82 June 9, 1997 622 3.2 Configuration 2 - client-server-printer - agent in the server 624 In the client-server-printer configuration 2, the client(s) submit jobs 625 to an intermediate server by some network connection, not directly to 626 the printer. While configuration 2 is included, the design center for 627 this MIB is configurations 1 and 3, 629 The job submitting client and/or monitoring application monitor job by 630 communicating directly with: 632 1.a Job Monitoring MIB agent that is part of the server (or a 633 front for the server) 635 There is no SNMP Job Monitoring MIB agent in the printer in 636 configuration 2, at least that the client or monitor are aware. In this 637 configuration, the agent SHALL return the current values of the objects 638 in the Job Monitoring MIB both for jobs the server keeps and jobs that 639 the server has submitted to the printer. In configuration 2, the server 640 keeps a copy of the job during the time that the server has submitted 641 the job to the printer. Only some time after the printer completes the 642 job, SHALL the server remove the representation of the job from the Job 643 Monitoring MIB in the server. The agent NEED NOT access the printer, 644 except when a monitor queries the agent using an SNMP Get for an object 645 in the Job Monitoring MIB. Or the agent can subscribe to the 646 notification events that the printer generates and keep the Job 647 Monitoring MIB update to date. The agent in the server SHALL keep the 648 job in the Job Monitoring MIB as long as the job is in the Printer, and 649 longer in order to implement the completed state in which monitoring 650 programs can copy out the accounting data from the Job Monitoring MIB. 652 all end-user 653 +-------+ +----------+ 654 |monitor| | client | ######## SNMP query 655 +---+---# +---#----+-+ **** non-SNMP cntrl 656 # # | ---- job submission 657 # # | 658 # # | 659 #=====#=+==v==+ 660 | agent | | 661 +-------+ | 662 | server | 663 +----+-----+--+ 664 control * | 665 ********** | 666 * | 667 +========v====+ | 668 | | | 669 | | | 670 Job Monitoring MIB, V0.82 June 9, 1997 672 | PRINTER <---------+ 673 | | Print Job Delivery Channel 674 | | 675 +=============+ 677 Figure 3-2 - Configuration 2 - client-server-printer - agent in the 678 server 680 The Job Monitoring MIB is designed to support the following 681 relationships (not shown in Figure 3-2): 682 1.Multiple clients MAY submit jobs to a server. 683 2.Multiple clients MAY monitor a server. 684 3.Multiple monitors MAY monitor a server. 685 4.A client MAY submit jobs to multiple servers. 686 5.A monitor MAY monitor multiple servers. 687 6.Multiple servers MAY submit jobs to a printer. 688 7.Multiple servers MAY control a printer. 690 3.3 Configuration 3 - client-server-printer - client monitors printer 691 agent and server 693 In the client-server-printer configuration 3, the client(s) submit jobs 694 to an intermediate server by some network connection, not directly to 695 the printer. 697 The job submitting client and/or monitoring application monitor jobs by 698 communicating directly with: 700 1.the server using some protocol to monitor jobs in the server 701 that does not contain the Job Monitoring MIB AND 703 2.a Job Monitoring MIB agent that is part of the printer to 704 monitor jobs after the server passes the jobs to the printer. 705 In such configurations, the server deletes its copy of the job 706 from the server after submitting the job to the printer usually 707 almost immediately (before the job does much processing, if 708 any). 710 There is no SNMP Job Monitoring MIB agent in the server in configuration 711 3, at least that the client or monitor are aware. In this 712 configuration, the agent (in the printer) SHALL keep the values of the 713 objects in the Job Monitoring MIB that the agent implements updated for 714 a job that the server has submitted to the printer. The agent SHALL 715 obtain information about the jobs submitted to the printer from the 716 server (either in the job submission protocol, in the document data, or 717 by direct query of the server), in order to populate some of the objects 718 the Job Monitoring MIB in the printer. The agent in the printer SHALL 719 Job Monitoring MIB, V0.82 June 9, 1997 721 keep the job in the Job Monitoring MIB as long as the job is in the 722 Printer, and longer in order to implement the completed state in which 723 monitoring programs can copy out the accounting data from the Job 724 Monitoring MIB. 726 all end-user 727 +-------+ +----------+ 728 |monitor| | client | ######## SNMP query 729 +---+---* +---*----+-+ **** non-SNMP query 730 # * * | ---- job submission 731 # * * | 732 # * * | 733 # *=====v====v==+ 734 # | | 735 # | server | 736 # | | 737 # +----#-----+--+ 738 # optional# | 739 # ########## | 740 # # | 741 +==+=v===v=+==+ | 742 | | agent | | | 743 | +-------+ | | 744 | PRINTER <---------+ 745 | | Print Job Delivery Channel 746 | | 747 +=============+ 749 Figure 3-3 - Configuration 3 - client-server-printer - client monitors 750 printer agent and server 752 The Job Monitoring MIB is designed to support the following 753 relationships (not shown in Figure 3-3): 754 1.Multiple clients MAY submit jobs to a server. 755 2.Multiple clients MAY monitor a server. 756 3.Multiple monitors MAY monitor a server. 757 4.A client MAY submit jobs to multiple servers. 758 5.A monitor MAY monitor multiple servers. 759 6.Multiple servers MAY submit jobs to a printer. 760 7.Multiple servers MAY control a printer. 762 4. Conformance Considerations 764 In order to achieve interoperability between job monitoring applications 765 and job monitoring agents, this specification includes the conformance 766 requirements for both monitoring applications and agents. 768 Job Monitoring MIB, V0.82 June 9, 1997 770 4.1 Conformance Terminology 772 This specification uses the verbs: "SHALL", "SHOULD", "MAY", and "NEED 773 NOT" to specify conformance requirements according to RFC 2119 as 774 follows: 776 . "SHALL": indicates an action that the subject of the sentence must 777 implement in order to claim conformance to this specification 779 . "MAY": indicates an action that the subject of the sentence does 780 not have to implement in order to claim conformance to this 781 specification, in other words that action is an implementation 782 option 784 . "NEED NOT": indicates an action that the subject of the sentence 785 does not have to implement in order to claim conformance to this 786 specification. The verb "NEED NOT" is used instead of "may not", 787 since "may not" sounds like a prohibition. 789 . "SHOULD": indicates an action that is recommended for the subject 790 of the sentence to implement, but is not required, in order to 791 claim conformance to this specification. 793 4.2 Agent Conformance Requirements 795 A conforming agent: 797 1.SHALL implement all MANDATORY groups and attributes in this 798 specification. 800 2.NEED NOT implement any OPTIONAL attributes, whether the agent is able 801 to obtain the information from the server or device. 803 3.NEED NOT implement both forms of an attribute if it implements an 804 attribute that permits a choice of Integer and Octets forms, though 805 implementing both forms may help management applications by giving 806 them a choice of representations, since the representation are 807 equivalent. See page 55. 809 NOTE - This MIB, like the Printer MIB, is written following the 810 subset of SMIv2 that can be supported by SMIv1 and SNMPv1 811 implementations. 813 4.2.1 MIB II System Group objects 815 The Job Monitoring MIB agent SHALL implement all objects in the system 816 group of MIB-II (RFC 1213)[5], whether the Printer MIB[1] is implemented 817 or not. 819 Job Monitoring MIB, V0.82 June 9, 1997 821 4.2.2 MIB II Interface Group objects 823 The Job Monitoring MIB agent SHALL implement all objects in the 824 Interfaces Group of MIB-II (RFC 1213)[5], whether the Printer MIB[1] is 825 implemented or not. 827 4.2.3 Printer MIB objects 829 If the agent is instrumenting a device that is a printer, the agent 830 SHALL implement all of the mandatory objects in the Printer MIB[1] and 831 all the objects in other MIBs that conformance to the Printer MIB 832 requires, such as the Host Resources MIB (RFC 1514)[6]. If the agent is 833 instrumenting a server that controls one or more networked printers, the 834 agent NEED NOT implement the Printer MIB and NEED NOT implement the Host 835 Resources MIB. 837 4.3 Job Monitoring Application Conformance Requirements 839 A conforming job monitoring application: 841 1.SHALL accept all objects in all MANDATORY groups and all MANDATORY 842 attributes that are required to be implemented by an agent according 843 to Section 4.2 and SHALL either present them to the user or ignore 844 them. 846 2.SHALL accept all OPTIONAL attributes, including enum and bit values 847 specified in this specification and additional ones that may be 848 registered with IANA and SHALL either present them to the user or 849 ignore them. In particular, a conforming job monitoring application 850 SHALL not malfunction when receiving any standard or registered enum 851 or bit values. See Section 7 entitled "IANA Considerations" on page 852 22. 854 3.SHALL accept either form of time attribute, if it supports a time 855 attribute, since agents are free to implement either time form. See 856 page 55. 858 5. Job Identification 860 There are a number of attributes that permit a user, operator or system 861 administrator to identify jobs of interest, such as jobOwner, jobName, 862 etc. In addition, there is a Job Submission ID object that allows a 863 monitoring application to quickly locate and identify a particular job 864 of interest that was submitted from a particular client by the user 865 invoking the monitoring application. The Job Monitoring MIB needs to 866 provide for identification of the job at both sides of the job 867 submission process. The primary identification point is the client 868 side. The Job Submission ID allows the monitoring application to 869 Job Monitoring MIB, V0.82 June 9, 1997 871 identify the job of interest from all the jobs currently "known" by the 872 server or device. The Job Submission ID can be assigned by either the 873 client's local system or a downstream server or device. The point of 874 assignment will be determined by the job submission protocol in use. 876 The server/device-side identifier, called the jmJobIndex object, will be 877 assigned by the server or device that accepts the jobs from submitting 878 clients. The MIB agent SHALL use the job identifier assigned by the 879 server or device to the job as the value of the jmJobIndex object that 880 defines the table rows (there are multiple tables) that contain the 881 information relating to the job. This object allows the interested 882 party to obtain all objects desired that relate to this job. The MIB 883 provides a mapping table that maps each Job Submission ID to the 884 corresponding jmJobIndex value, so that an application can determine the 885 correct value for the jmJobIndex value for the job of interest in a 886 single Get operation. See the jmJobIDGroup on page 73. 888 The jobName attribute provides a name that the user supplies as a job 889 attribute with the job. The jobName attribute is not necessarily 890 unique, even for one user, let alone across users. 892 6. Internationalization Considerations 894 There are a number of objects in this MIB that are represented as coded 895 character sets. The data type for such objects is OCTET STRING. Such 896 objects could be in different coded character sets and could be 897 localized in the language and country, i.e., could be localized. 898 However, for the Job Monitoring MIB, most of the objects are supplied as 899 job attributes by the client that submits the job to the server or 900 device and so are represented in the coded character set specified by 901 that client. Therefore, the agent is not able to provide for different 902 representations depending on the locale of the server, device, or user 903 of the job monitoring application. The only exception is job submission 904 protocols that pass job or document attributes as OBJECT IDENTIFIERS or 905 enums. For those job and document attributes, the agent SHALL represent 906 the corresponding objects in the Job Monitoring MIB as coded character 907 sets in the current (default) locale of the server or printer as 908 established by the system administrator or the implementation. 910 For simplicity, this specification assumes that the clients, job 911 monitoring applications, servers, and devices are all running in the 912 same locale. However, this specification allows them to run in any 913 locale, including locales that use two-octet coded character sets, such 914 as ISO 10646 (Unicode). Job monitors applications are expected to 915 understand the coded character set of the client (and job), server, or 916 device. No special means is provided for the monitor to discover the 917 coded character set used by jobs or by the server or device. This 918 specification does not contain an object that indicates what locale the 919 Job Monitoring MIB, V0.82 June 9, 1997 921 server or device is running in, let alone contain an object to control 922 what locale the agent is to use to represent coded character set 923 objects. 925 This MIB also contains objects that are represented using the 926 DateAndTime textual convention from SNMPv2-TC (RFC 1903). The job 927 management application SHALL display such objects in the locale of the 928 user running the monitoring application. 930 7. IANA Considerations 932 During the development of this standard, the Printer Working Group (PWG) 933 working with IANA will register additional enums while the standard is 934 in the proposed and draft states according to the procedures described 935 in this section. IANA will handle registration of additional enums 936 after this standard is approved in cooperation with an IANA-appointed 937 registration editor from the PWG according to the procedures described 938 in this section: 940 7.1 IANA Registration of enums 942 This specification uses textual conventions to define enumerated values 943 (enums) and bit values. Enumerations (enums) and bit values are sets of 944 symbolic values defined for use with one or more objects or attributes. 945 All enumeration sets and bit value sets are assigned a symbolic data 946 type name (textual convention). As a convention the symbolic name ends 947 in "TC" for textual convention. These enumerations are defined at the 948 beginning of the MIB module specification. 950 This working group has defined several type of enumerations for use in 951 the Job Monitoring MIB and the Printer MIB[1]. These types differ in 952 the method employed to control the addition of new enumerations. 953 Throughout this document, references to "type n enum", where n can be 1, 954 2 or 3 can be found in the various tables. The definitions of these 955 types of enumerations are: 957 7.1.1 Type 1 enumerations 959 Type 1 enumeration: All the values are defined in the Job Monitoring 960 MIB specification (RFC for the Job Monitoring MIB). Additional 961 enumerated values require a new RFC. 963 NOTE - There are no type 1 enums in the current draft. 965 7.1.2 Type 2 enumerations 967 Type 2 enumeration: An initial set of values are defined in the Job 968 Monitoring MIB specification. Additional enumerated values are 969 Job Monitoring MIB, V0.82 June 9, 1997 971 registered after review by this working group. The initial versions of 972 the MIB will contain the values registered so far. After the MIB is 973 approved, additional values will be registered through IANA after 974 approval by this working group. 976 The following type 2 enums are contained in the current draft : 977 1.JmTimeStampTC 978 2.JmFinishingTC 979 3.JmPrintQualityTC 980 4.JmTonerEconomyTC 981 5.JmPrinterResolutionTC 982 6.JmMediumTypeTC 983 7.JmJobStateTC 984 8.JmAttributeTypeTC 986 7.1.3 Type 3 enumeration 988 Type 3 enumeration: An initial set of values are defined in the Job 989 Monitoring MIB specification. Additional enumerated values are 990 registered without working group review. The initial versions of the 991 MIB will contain the values registered so far. After the MIB is 992 approved, additional values will be registered through IANA without 993 approval by this working group. 995 NOTE - There are no type 3 enums in the current draft. 997 7.2 IANA Registration of type 2 bit values 999 This draft contains the following type 2 bit value textual-conventions: 1000 1.JmJobServiceTypesTC 1001 2.JmJobStateReasons1TC 1002 3.JmJobStateReasons2TC 1003 4.JmJobStateReasons3TC 1004 5.JmJobStateReasons4TC 1006 These textual-conventions are defined as bits in an Integer so that they 1007 can be used with SNMPv1 SMI. The jobStateReasonsn (n=1..4) attributes 1008 are defined as bit values using the corresponding JmJobStateReasonsnTC 1009 textual-conventions. 1011 The registration of JmJobServiceTypesTC and JmJobStateReasonsnTC bit 1012 values SHALL follow the procedures for a type 2 enum as specified in 1013 Section 7.1.2. 1015 7.3 IANA Registration of Job Submission Id Formats 1017 In addition to enums and bit values, this specification assigns numbers 1018 to various job submission ID formats. See jmJobSubmissionID on page 74. 1020 Job Monitoring MIB, V0.82 June 9, 1997 1022 The registration of jmJobSubmissionID format numbers SHALL follow the 1023 procedures for a type 2 enum as specified in Section 7.1.2. 1025 8. Security Considerations 1027 8.1 Read-Write objects 1029 All objects are read-only greatly simplifying the security 1030 considerations. If another MIB augments this MIB, that MIB might allow 1031 objects in this MIB to be modified. However, that MIB SHALL have to 1032 support the required access control in order to achieve security, not 1033 this MIB. 1035 8.2 Read-Only Objects In Other User's Jobs 1037 The security policy of some sites may be that unprivileged users can 1038 only get the objects from jobs that they submitted, plus a few minimal 1039 objects from other jobs, such as the jmJobKOctetsRequested and 1040 jmJobKOctetsCompleted objects, so that a user can tell how busy a 1041 printer is. Other sites might allow all unprivileged users to see all 1042 objects of all jobs. It is up to the agent to implement any such 1043 restrictions based on the identification of the user making the SNMP 1044 request. This MIB does not require, nor does it specify how, such 1045 restrictions would be implemented. A monitoring application SHOULD 1046 enforce the site security policy with respect to returning information 1047 to an unprivileged end user that is using the monitoring application to 1048 monitor jobs that do not belong to that user, i.e., the jobOwner 1049 attribute in the jmAttributeTable does not match the user's user name. 1050 See the JmAttributeTypeTC textual convention on page Error! Bookmark not 1051 defined. and the jmAttributeTable on page 81. 1053 An operator is a privileged user that would be able to see all objects 1054 of all jobs, independent of the policy for unprivileged users. 1056 9. Returning Objects With No Value In Mandatory Groups 1058 If an object in a mandatory group does not have an instrumented value 1059 for a particular job submission protocol or the job submitting client 1060 did not supply a value (and the accepting server or device does not 1061 supply a default), this MIB requires that the agent SHALL follow the 1062 normal SNMP practice of returning a distinguished value, such as a zero- 1063 length string, an unknown(2) value for an enum, or a (-2) for an integer 1064 value. 1066 Job Monitoring MIB, V0.82 June 9, 1997 1068 10. Notification and Traps 1070 This MIB does not specify any traps. For simplicity, management 1071 applications are expected to poll for status. The resulting network 1072 traffic is not expected to be significant. 1074 11. MIB specification 1076 The following pages constitute the actual Job Monitoring MIB. 1078 Job Monitoring MIB, V0.82 June 9, 1997 1080 Job-Monitoring-MIB DEFINITIONS ::= BEGIN 1082 IMPORTS 1083 MODULE-IDENTITY, OBJECT-TYPE, experimental, 1084 Integer32 FROM SNMPv2-SMI 1085 TEXTUAL-CONVENTION FROM SNMPv2-TC 1086 MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; 1087 -- The following textual-conventions are needed 1088 -- to implement certain attributes, but are not 1089 -- needed to compile this MIB. They are 1090 -- provided here for convenience: 1091 -- DateAndTime FROM SNMPv2-TC 1092 -- PrtAlertCodeTC, PrtInterpreterLangFamilyTC FROM Printer-MIB 1094 -- Use the experimental (54) OID assigned to the Printer MIB[1] before 1095 -- it was published as RFC 1759. 1096 -- Upon publication of the Job Monitoring MIB as an RFC, delete this 1097 -- comment and the line following this comment and change the 1098 -- reference of { temp 104 } (below) to { mib-2 X }. 1099 -- This will result in changing: 1100 -- 1 3 6 1 3 54 jobmonMIB(105) to: 1101 -- 1 3 6 1 2 1 jobmonMIB(X) 1102 -- This will make it easier to translate prototypes to 1103 -- the standard namespace because the lengths of the OIDs won't 1104 -- change. 1105 temp OBJECT IDENTIFIER ::= { experimental 54 } 1107 jobmonMIB MODULE-IDENTITY 1108 LAST-UPDATED "9705200000Z" 1109 ORGANIZATION "IETF Printer MIB Working Group" 1110 CONTACT-INFO 1111 "Tom Hastings 1112 Postal: Xerox Corp. 1113 Mail stop ESAE-231 1114 701 S. Aviation Blvd. 1115 El Segundo, CA 90245 1117 Tel: (301)333-6413 1118 Fax: (301)333-5514 1119 E-mail: hastings@cp10.es.xerox.com" 1120 DESCRIPTION 1121 "The MIB module for monitoring job in servers, printers, and 1122 other devices. 1124 File: jmp-mib.doc, .pdf, .txt, .mib 1125 Version: 0.82" 1126 ::= { temp 105 } 1127 Job Monitoring MIB, V0.82 June 9, 1997 1129 -- Textual conventions for this MIB module 1131 JmTimeStampTC ::= TEXTUAL-CONVENTION 1132 STATUS current 1133 DESCRIPTION 1134 "The simple time at which an event took place. The units SHALL 1135 be in seconds since the system was booted. 1137 NOTE - JmTimeStampTC is defined in units of seconds, rather than 1138 100ths of seconds, so as to be simpler for agents to implement 1139 (even if they have to implement the 100ths of a second to comply 1140 with implementing sysUpTime in MIB-II[5].) 1142 NOTE - JmTimeStampTC is defined as an Integer32 so that it can 1143 be used as a value of an attribute, i.e., as a value of the 1144 jmAttributeValueAsInteger object (see page 83). The TimeStamp 1145 textual-convention defined in SMNPv2-TC is defined as an 1146 APPLICATION 3 IMPLICIT INTEGER tag, not an Integer32, so cannot 1147 be used in this MIB as one of the values of 1148 jmAttributeValueAsInteger." 1149 SYNTAX INTEGER(0..2147483647) 1151 JmJobSourcePlatformTypeTC ::= TEXTUAL-CONVENTION 1152 STATUS current 1153 DESCRIPTION 1154 "The source platform type that can submit jobs to servers or 1155 devices in any of the 3 configurations." 1157 -- This is a type 2 enumeration. See Section 7.1 on page 22. 1158 SYNTAX INTEGER { 1159 other(1), 1160 unknown(2), 1161 sptUNIX(3), -- UNIX(tm) 1162 sptOS2(4), -- OS/2 1163 sptPCDOS(5), -- DOS 1164 sptNT(6), -- NT 1165 sptMVS(7), -- MVS 1166 sptVM(8), -- VM 1167 sptOS400(9), -- OS/400 1168 sptVMS(10), -- VMS 1169 Job Monitoring MIB, V0.82 June 9, 1997 1171 sptWindows95(11), -- Windows95 1172 sptNetWare(33) -- NetWare 1173 } 1175 JmFinishingTC ::= TEXTUAL-CONVENTION 1176 STATUS current 1177 DESCRIPTION 1178 "The type of finishing." 1180 -- This is a type 2 enumeration. See Section 7.1 on page 22. 1181 SYNTAX INTEGER { 1182 other(1), 1183 -- Some other finishing besides one of the specified or 1184 -- registered values. 1186 unknown(2), 1187 -- The finishing is unknown. 1189 none(3), 1190 -- Perform no finishing. 1192 staple(4), 1193 -- Bind the document(s) with one or more staples. The 1194 -- exact number and placement of the staples is site- 1195 -- defined. 1197 stapleTopLeft(5), 1198 -- Place one or more staples on the top left corner of 1199 -- the document(s). 1201 stapleBottomLeft(6), 1202 -- Place one or more staples on the bottom left corner 1203 -- of the document(s). 1205 stapleTopRight(7), 1206 -- Place one or more staples on the top right corner of 1207 -- the document(s). 1209 stapleBottomRight(8), 1210 -- Place one or more staples on the bottom right corner 1211 -- of the document(s). 1213 saddleStitch(9), 1214 Job Monitoring MIB, V0.82 June 9, 1997 1216 -- Bind the document(s) with one or more staples (wire 1217 -- stitches) along the middle fold. The exact number 1218 -- and placement of the stitches is site-defined. 1220 edgeStitch(10), 1221 -- Bind the document(s) with one or more staples (wire 1222 -- stitches) along one edge. The exact number and 1223 -- placement of the staples is site-defined. 1225 punch(11), 1226 -- This value indicates that holes are required in the 1227 -- finished document. The exact number and placement of 1228 -- the holes is site-defined The punch specification 1229 -- MAY be satisfied (in a site- and implementation- 1230 -- specific manner) either by drilling/punching, or by 1231 -- substituting pre-drilled media. 1233 cover(12), 1234 -- This value is specified when it is desired to select 1235 -- a non-printed (or pre-printed) cover for the 1236 -- document. This does not supplant the specification of 1237 -- a printed cover (on cover stock medium) by the 1238 -- document itself. 1240 bind(13) 1241 -- This value indicates that a binding is to be applied 1242 -- to the document; the type and placement of the 1243 -- binding is site-defined. 1245 } 1247 JmPrintQualityTC ::= TEXTUAL-CONVENTION 1248 STATUS current 1249 DESCRIPTION 1250 "Print quality settings." 1252 -- This is a type 2 enumeration. See Section 7.1 on page 22. 1253 SYNTAX INTEGER { 1254 other(1), -- Not one of the specified or registered 1255 -- values. 1256 unknown(2), -- The actual value is unknown. 1257 draft(3), -- Lowest quality available on the printer. 1258 normal(4), -- Normal or intermediate quality on the 1259 Job Monitoring MIB, V0.82 June 9, 1997 1261 -- printer. 1262 high(5) -- Highest quality available on the printer. 1263 } 1265 JmPrinterResolutionTC ::= TEXTUAL-CONVENTION 1266 STATUS current 1267 DESCRIPTION 1268 "Printer resolutions. 1270 The values are type2 enums that represent single integers or 1271 pairs of integers. The latter are to specify the resolution 1272 when the x and y dimensions differ. When two integers are 1273 specified, the first is in the x direction, i.e., in the 1274 direction of the shortest dimension of the medium, so that the 1275 value is independent of whether the printer feeds long edge or 1276 short edge first." 1278 -- This is a type 2 enumeration. See Section 7.1 on page 22. 1279 SYNTAX INTEGER { 1280 other(1), -- Not one of the specified or registered 1281 -- values. 1282 unknown(2), -- The actual value is unknown. 1283 normal(3), -- Normal resolution. 1284 res100(4), -- 100 x 100 dpi 1285 res200(5), -- 200 x 200 dpi 1286 res240(6), -- 240 x 240 dpi 1287 res300(7), -- 300 x 300 dpi 1288 res360(8), -- 360 x 360 dpi 1289 res600(9), -- 600 x 600 dpi 1290 res720(10), -- 720 x 720 dpi 1291 res800(11), -- 800 x 800 dpi 1292 res1200(12), -- 1200 x 1200 dpi 1293 res1440(13), -- 1440 x 1440 dpi 1294 res1800(14), -- 1800 x 1800 dpi 1295 res100x200(15), -- 100 x 200 dpi 1296 res300x600(16), -- 300 x 600 dpi 1297 res600x300(17), -- 600 x 300 dpi 1298 res360x720(18), -- 360 x 720 dpi 1299 res720x360(19), -- 720 x 360 dpi 1300 res400x800(20), -- 400 x 800 dpi 1301 res800x400(21), -- 800 x 400 dpi 1302 res600x1200(22), -- 600 x 1200 dpi 1303 res1200x600(23), -- 1200 x 600 dpi 1304 res720x1440(24), -- 720 x 1440 dpi 1305 res1440x720(25), -- 1440 x 720 dpi 1306 res1800x600(26) -- 1800 x 600 dpi 1307 Job Monitoring MIB, V0.82 June 9, 1997 1309 } 1311 JmTonerEconomyTC ::= TEXTUAL-CONVENTION 1312 STATUS current 1313 DESCRIPTION 1314 "Toner economy settings." 1316 -- This is a type 2 enumeration. See Section 7.1 on page 22. 1317 SYNTAX INTEGER { 1318 off(0), -- Off. Normal. Use full toner. 1319 on(1) -- On. Use less toner than normal. 1320 } 1322 JmMediumTypeTC ::= TEXTUAL-CONVENTION 1323 STATUS current 1324 DESCRIPTION 1325 "Identifies the type of medium." 1327 -- This is a type 2 enumeration. See Section 7.1 on page 22. 1328 SYNTAX INTEGER { 1329 other(1), 1330 -- The type is neither one of the values listed in this 1331 -- specification nor a registered value. 1333 unknown(2), 1334 -- The type is not known. 1336 stationery(3), 1337 -- Separately cut sheets of an opaque material. 1339 transparency(4), 1340 -- Separately cut sheets of a transparent material. 1342 envelope(5), 1343 -- Envelopes that can be used for conventional mailing 1344 -- purposes. 1346 envelopePlain(6), 1347 Job Monitoring MIB, V0.82 June 9, 1997 1349 -- Envelopes that are not preprinted and have no windows. 1351 envelopeWindow(7), 1352 -- Envelopes that have windows for addressing purposes. 1354 continuousLong(8), 1355 -- Continuously connected sheets of an opaque material 1356 -- connected along the long edge. 1358 continuousShort(9), 1359 -- Continuously connected sheets of an opaque material 1360 -- connected along the short edge. 1362 tabStock(10), 1363 -- Media with tabs. 1365 multiPartForm(11), 1366 -- Form medium composed of multiple layers not pre-attached 1367 -- to one another; each sheet MAY be drawn separately from 1368 -- an input source. 1370 labels(12), 1371 -- Label-stock. 1373 multiLayer(13) 1374 -- Form medium composed of multiple layers which are pre- 1375 -- attached to one another, e.g. for use with impact 1376 -- printers. 1378 } 1380 JmJobStateTC ::= TEXTUAL-CONVENTION 1381 STATUS current 1382 DESCRIPTION 1383 "The current state of the job (pending, processing, completed, 1384 etc.). 1386 The following figure shows the normal job state transitions: 1388 +----> 1389 canceled(7) 1390 / 1392 Job Monitoring MIB, V0.82 June 9, 1997 1394 +----> pending(3) ---------> processing(5) -------+------> 1395 completed(9) 1396 | ^ ^ \ 1397 --->+ | | +----> 1398 aborted(8) 1399 | v v / 1400 +----> pendingHeld(4) processingStopped(6) ----+ 1402 Figure 4 - Normal Job State Transitions 1404 Normally a job progresses from left to right. Other state 1405 transitions are unlikely, but are not forbidden. Not shown are 1406 the transitions to the canceled state from the pending, 1407 pendingHeld, processing, and processingStopped states. 1409 Jobs in the pending, processing, and processingStopped states 1410 are called 'active', while jobs in the pendingHeld, canceled, 1411 aborted, and completed are called 'in-active'." 1413 -- This is a type 2 enumeration. See Section 7.1 on page 22. 1414 SYNTAX INTEGER { 1415 other(1), 1416 -- The job state is not one of the defined states. 1418 unknown(2), 1419 -- The job state is not known, or its state is 1420 -- indeterminate. 1422 pending(3), 1423 -- The job is a candidate to start processing, but is 1424 -- not yet processing. 1426 pendingHeld(4), 1427 -- The job is not a candidate for processing for any 1428 -- number of reasons but will return to the pending 1429 -- state as soon as the reasons are no longer 1430 -- present. The job's jmJobStateReasons1 object 1431 -- and/or jobStateReasonsn (n=2..4) attributes SHALL 1432 -- indicate why the job is no longer a candidate for 1433 -- processing. The reasons are represented as bits 1434 -- in the jmJobStateReasons1 object and/or 1435 -- jobStateReasonsn (n=2..4) attributes. See the 1436 -- JmJobStateReasonsnTC (n=1..4) textual convention 1437 -- on page (59) for the specification of each reason. 1439 processing(5), 1440 Job Monitoring MIB, V0.82 June 9, 1997 1442 -- Either: 1443 -- 1444 -- 1. The job is using, or is attempting to use, one 1445 -- or more document transforms which include (1) 1446 -- purely software processes that are interpreting a 1447 -- PDL, and (2) hardware devices that are 1448 -- interpreting a PDL, making marks on a medium, 1449 -- and/or performing finishing, such as stapling, 1450 -- etc. 1451 -- 1452 -- OR 1453 -- 1454 -- 2. (configuration 2) the server has made the job 1455 -- ready for printing, but the output device is not 1456 -- yet printing it, either because the job hasn't 1457 -- reached the output device or because the job is 1458 -- queued in the output device or some other spooler, 1459 -- awaiting the output device to print it. 1460 -- 1461 -- When the job is in the processing state, the 1462 -- entire job state includes the detailed status 1463 -- represented in the device MIB indicated by the 1464 -- hrDeviceIndex value of the job's physicalDevice 1465 -- attribute, if the agent implements such a device 1466 -- MIB. 1467 -- 1468 -- Implementations MAY, though they NEED NOT, include 1469 -- additional values in the job's jmJobStateReasons1 1470 -- object to indicate the progress of the job, such 1471 -- as adding the jobPrinting value to indicate when 1472 -- the device is actually making marks on a medium. 1474 processingStopped(6), 1475 -- The job has stopped while processing for any 1476 -- number of reasons and will return to the 1477 -- processing state as soon as the reasons are no 1478 -- longer present. 1479 -- 1480 -- The job's jmJobStateReasons1 object and/or the 1481 -- job's jobStateReasonsn (n=2..4) attributes MAY 1482 -- indicate why the job has stopped processing. For 1483 -- example, if the output device is stopped, the 1484 -- deviceStopped value MAY be included in the job's 1485 -- jmJobStateReasons1 object. 1486 -- 1487 -- NOTE - When an output device is stopped, the 1488 Job Monitoring MIB, V0.82 June 9, 1997 1490 -- device usually indicate its condition in human 1491 -- readable form locally at the device. The 1492 -- management application can obtain more complete 1493 -- device status remotely by querying the appropriate 1494 -- device MIB using the job's deviceIndex 1495 -- attribute(s), if the agent implements such a 1496 -- device MIB 1498 canceled(7), 1499 -- A client has canceled the job and the job is 1500 -- either: (1) in the process of being terminated by 1501 -- the server or device or (2) has completed 1502 -- terminating. The job's jmJobStateReasons1 object 1503 -- SHOULD contain either the canceledByUser or 1504 -- canceledByOperator value. 1506 aborted(8), 1507 -- The job has been aborted by the system, usually 1508 -- while the job was in the processing or 1509 -- processingStopped state. 1511 completed(9) 1512 -- The job has completed successfully or with 1513 -- warnings or errors after processing and all of the 1514 -- media have been successfully stacked in the 1515 -- appropriate output bin(s). The job's 1516 -- jmJobStateReasons1 object SHOULD contain one of: 1517 -- completedSuccessfully, completedWithWarnings, or 1518 -- completedWithErrors values. 1520 } 1522 JmAttributeTypeTC ::= TEXTUAL-CONVENTION 1523 STATUS current 1524 DESCRIPTION 1525 "The type of the attribute which identifies the attribute. 1527 Some attributes represent information about a job, such as a 1528 file-name, or a document-name, or submission-time or completion 1529 time. Other attributes represent resources required, e.g., a 1530 medium or a colorant, etc. to process the job before the job 1531 start processing OR to indicate the amount of the resource that 1532 is being consumed while the job is processing, e.g., pages 1533 completed or impressions completed. If both a required and a 1534 consumed value of a resource is needed, this specification 1535 assigns two separate attribute enums in the textual convention. 1537 Job Monitoring MIB, V0.82 June 9, 1997 1539 Most attributes apply to all three configurations covered by 1540 this MIB specification (see section 3 on page 14). Those 1541 attribute that apply to a particular configuration are indicated 1542 as 'Configuration n:'. 1544 Conformance of Attribute Implementation 1546 A very few attributes are MANDATORY for conformance, and the 1547 rest are OPTIONAL. An agent SHALL instrument any MANDATORY 1548 attribute. If the server or device does not provide access to 1549 the information about the MANDATORY attribute, the agent SHALL 1550 return the 'unknown' value. For attributes represented by a 1551 counting integer, the unknown value is (-2) and for attributes 1552 represented by an enum, the unknown value is (2), as in the 1553 Printer MIB[1]. For attributes represented by an OCTET STRING, 1554 the unknown value is a zero-length string, unless specified 1555 otherwise. 1557 The MANDATORY attributes are: 1559 jobOwner(20) 1561 The attributes not labeled as MANDATORY are OPTIONAL. An agent 1562 MAY, but NEED NOT, implement any OPTIONAL attributes. 1564 NOTE - The table of contents lists all the attributes in order 1565 to help see the order of enum assignments which is the order 1566 that the GetNext operation can be used to get attributes. The 1567 table of contents also indicates the MANDATORY attributes as: 1568 (MANDATORY). 1570 NOTE - The enum assignments are grouped logically with values 1571 assigned in groups of 20, so that additional values may be 1572 registered in the future and assigned a value that is part of 1573 their logical grouping. 1575 Datatypes and Attribute Naming Conventions 1577 The datatype of each attribute is indicated on the first line(s) 1578 of the description. Some attributes have several different data 1579 type representations. When the data types can be represented in 1580 a single row in the jmAttributeTable, the data type name is not 1581 included as the last part of the name of the attribute. When 1582 the data types cannot be represented by a single row in the 1583 jmAttributeTable, each such representation is considered a 1584 separate attribute and is assigned a separate name and enum 1585 value. For these attributes, the name of the datatype is the 1586 Job Monitoring MIB, V0.82 June 9, 1997 1588 last part of the name of the attribute: Name, Index, 1589 DateAndTime, TimeStamp, etc. 1591 NOTE: No attribute name exceeds 31 characters. 1593 Single-Value (Row) Versus Multi-Value (MULTI-ROW) Attributes 1595 Most attributes SHALL have only one row per job. However, a few 1596 attributes can have multiple values per job or even per 1597 document, where each value is a separate row in the 1598 jmAttributeTable. Unless indicated with 'MULTI-ROW:' in 1599 JmAttributeTypeTC, an agent SHALL ensure that each attribute 1600 item occurs only once in the jmAttributeTable for a job. 1601 Attributes that are permitted to appear multiple times in the 1602 jmAttributeTable for a job are indicated with 'MULTI-ROW:' in 1603 their specification in the JmAttributeTypeTC. However, such 1604 'MULTI-ROW' attribute items SHALL not contain duplicates for 1605 'intensive' (as opposed to 'extensive') attributes. 1607 For example, a job or document(s) may use multiple PDLs. 1608 However, each distinct documentFormat attribute value 1609 SHALL appear in the jmAttributeTable only once for a job 1610 since the interpreter language is an intensive attribute 1611 item, even though the job has a number of documents that 1612 all use the same PDL. 1614 As another example of an intensive attribute that can 1615 have multiple entries, if a document or job uses 1616 multiple types of media, there SHALL be only one row in 1617 the jmAttributeTable for each media type, not one row 1618 for each document that uses that medium type. 1620 On the other hand, if a job contains two documents of 1621 the same name, there can be separate rows for the 1622 documentName attribute item with the same name, since a 1623 document name is an extensive attribute item. The 1624 specification indicates that the values NEED NOT be 1625 unique for such 'MULTI-ROW: attributes' 1627 Value Represented As Integer Or Octets 1629 In the following definitions of the enums, each description 1630 indicates whether the value of the attribute SHALL be 1631 represented using the jmAttributeValueAsInteger or the 1632 jmAttributeValueAsOctets objects by the initial tag: 'INTEGER:' 1633 or 'OCTETS:', respectively. Some attributes allow the agent a 1634 choice of either an integer and/or an octets representation, 1635 depending on implementation. These attributes are indicated 1636 Job Monitoring MIB, V0.82 June 9, 1997 1638 with 'INTEGER:' and/or 'OCTETS:' tags. A very few attributes 1639 require both objects at the same time to represent a pair of 1640 values (see mediumConsumed(171)). These attributes are 1641 indicated with 'INTEGER:' and/or 'OCTETS:' tags. See the 1642 jmAttributeGroup starting on page 81 for the descriptions of 1643 these objects. 1645 Consumption Attributes 1647 A number of attributes record consumption. Such attribute names 1648 end with the word 'Completed' or 'Consumed'. If the job has not 1649 yet consumed what that resource is metering, the agent either: 1650 (1) SHALL return the value 0 or (2) SHALL not add this attribute 1651 to the jmAttributeTable until the consumption begins. In the 1652 interests of brevity, the semantics for 0 is specified once here 1653 and is not repeated for each xxxxYyyyCompleted and 1654 xxxxYyyyConsumed attribute specification. 1656 Index Value Attributes 1658 A number of attributes are indexes in other tables. Such 1659 attribute names end with the word 'Index'. If the agent does 1660 not (yet) know the index value for a particular index attribute 1661 for a job, the agent either: (1) SHALL return the value 0 or (2) 1662 SHALL not add this attribute to the jmAttributeTable until the 1663 index value is known. In the interests of brevity, the 1664 semantics for 0 is specified once here and is not repeated for 1665 each index attribute specification. 1667 The standard attribute types defined so far are:" 1669 -- This is a type 2 enumeration. See Section 7.1 on page 22. 1670 SYNTAX INTEGER { 1671 -- jmAttributeTypeIndex Datatype 1672 -- Description - including 'OCTETS:' or 'INTEGER:' to 1673 -- specify whether the value SHALL be represented in the 1674 -- jmAttributeValueAsOctets or the jmAttributeValueAsInteger 1675 -- object, or both, respectively. 1677 other(1), -- Integer32(-2..2147483647) 1678 -- AND/OR 1679 -- OCTET STRING(SIZE(0..63)) 1680 -- INTEGER: and/or OCTETS: An attribute that is not in 1681 -- the list and/or that has not been approved and registered 1682 -- with IANA. 1684 unknown(2), -- Integer32(-2..2147483647) 1685 Job Monitoring MIB, V0.82 June 9, 1997 1687 -- OR 1688 -- OCTET STRING(SIZE(0..63)) 1689 -- INTEGER: or OCTETS: An attribute whose semantics are 1690 -- not known to the agent. 1692 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1693 -- Job State attributes 1694 -- 1695 -- The following attributes specify the state of a job. 1696 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1698 jobStateReasons2(3), -- JmJobStateReasons2TC (pg 62) 1699 -- INTEGER: Additional information about the job's current 1700 -- state that augments the jmJobState object. See the 1701 -- description under the JmJobStateReasons1TC textual- 1702 -- convention on page 59. 1704 jobStateReasons3(4), -- JmJobStateReasons3TC (pg 66) 1705 -- INTEGER: Additional information about the job's current 1706 -- state that augments the jmJobState object. See the 1707 -- description under JmJobStateReasons1TC textual-convention 1708 -- on page 59. 1710 jobStateReasons4(5), -- JmJobStateReasons4TC (pg 67) 1711 -- INTEGER: Additional information about the job's current 1712 -- state that augments the jmJobState object. See the 1713 -- description under JmJobStateReasons1TC textual-convention 1714 -- on page 59. 1716 deviceAlertCode(6), -- PrtAlertCodeTC (Printer-MIB) 1717 -- INTEGER: The device alert code when the job is stopped 1718 -- because the device needs attention, i.e., needs human 1719 -- intervention. When the device is a printer, this device 1720 -- alert code SHALL be the printer alert code defined by the 1721 -- Printer MIB[1] using the PrtAlertCodeTC textual 1722 -- convention or equivalent. 1724 processingMessage(7), -- OCTET STRING(SIZE(0..63)) 1725 -- OCTETS: MULTI-ROW: A coded character set message that 1726 Job Monitoring MIB, V0.82 June 9, 1997 1728 -- is generated during the processing of the job as a simple 1729 -- form of processing log to show progress and any problems. 1730 -- 1731 -- There is no restriction on the same message in multiple 1732 -- rows. 1734 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1735 -- Job Identification attributes 1736 -- 1737 -- The following attributes help an end user, a system 1738 -- operator, or an accounting program identify a job. 1739 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1741 jobOwner(20), -- OCTET STRING(SIZE(0..63)) 1742 -- (MANDATORY) 1743 -- OCTETS: The coded character set name of the user that 1744 -- submitted the job. The method of assigning this user 1745 -- name will be system and/or site specific but the method 1746 -- must insure that the name is unique to the network that 1747 -- is visible to the client and target device. 1748 -- 1749 -- This value SHOULD be the authenticated name of the user 1750 -- submitting the job. 1751 -- 1752 -- In order to assist users to find their jobs for job 1753 -- submission protocols that don't supply a 1754 -- jmJobSubmissionID, the agent SHOULD maintain the jobOwner 1755 -- attribute for the time specified by the 1756 -- jmGeneralJobPersistence object, rather than the (shorter) 1757 -- jmGeneralAttributePersistence object. 1759 jobAccountName(21), -- OCTET STRING(SIZE(0..63)) 1760 -- OCTETS: Arbitrary binary information which MAY be coded 1761 -- character set data or encrypted data supplied by the 1762 -- submitting user for use by accounting services to 1763 -- allocate or categorize charges for services provided, 1764 -- such as a customer account name. 1765 -- 1766 -- NOTE: This attribute NEED NOT be printable characters. 1768 serverAssignedJobName(22), -- OCTET STRING(SIZE(0..63)) 1769 -- OCTETS: Configuration 3 only: The human readable string 1770 -- name of the job as assigned by the server that submitted 1771 -- the job to the device that the agent in instrumenting 1772 -- with this MIB. 1773 -- 1774 -- NOTE - This attribute is intended for enabling a user to 1775 Job Monitoring MIB, V0.82 June 9, 1997 1777 -- find his/her job that a server submitted to a device 1778 -- after the user submitted the job to the server when the 1779 -- jmJobSubmissionID is not supported by the job submission 1780 -- protocol. 1782 jobName(23), -- OCTET STRING(SIZE(0..63)) 1783 -- OCTETS: The human readable string name of the job as 1784 -- assigned by the submitting user to help the user 1785 -- distinguish between his/her various jobs. This name does 1786 -- not need to be unique. 1787 -- 1788 -- This attribute is intended for enabling a user or the 1789 -- user's application to convey a job name that MAY be 1790 -- printed on a start sheet, returned in a query result, or 1791 -- used in notification or logging messages. 1792 -- 1793 -- In order to assist users to find their jobs for job 1794 -- submission protocols that don't supply a 1795 -- jmJobSubmissionID, the agent SHOULD maintain the jobName 1796 -- attribute for the time specified by the 1797 -- jmGeneralJobPersistence object, rather than the (shorter) 1798 -- jmGeneralAttributePersistence object. 1799 -- 1800 -- If this attribute is not specified when the job is 1801 -- submitted, no job name is assumed, but implementation 1802 -- specific defaults are allowed, such as the value of the 1803 -- documentName attribute of the first document in the job 1804 -- or the fileName attribute of the first document in the 1805 -- job. 1806 -- 1807 -- The jobName attribute is distinguished from the 1808 -- jobComment attribute, in that the jobName attribute is 1809 -- intended to permit the submitting user to distinguish 1810 -- between different jobs that he/she has submitted. The 1811 -- jobComment attribute is intended to be free form 1812 -- additional information that a user might wish to use to 1813 -- communicate with himself/herself, such as a reminder of 1814 -- what to do with the results or to indicate a different 1815 -- set of input parameters were tried in several different 1816 -- job submissions. 1818 jobServiceTypes(24), -- JmJobServiceTypesTC (pg 57) 1819 -- INTEGER: Specifies the type(s) of service to which the 1820 -- job has been submitted (print, fax, scan, etc.). The 1821 -- service type is bit encoded with each job service type so 1822 -- that more general and arbitrary services can be created, 1823 -- such as services with more than one destination type, or 1824 -- ones with only a source or only a destination. For 1825 Job Monitoring MIB, V0.82 June 9, 1997 1827 -- example, a job service might scan, faxOut, and print a 1828 -- single job. In this case, three bits would be set in the 1829 -- jobServiceTypes attribute, corresponding to the 1830 -- hexadecimal values: 0x8 + 0x20 + 0x4, respectively, 1831 -- yielding: 0x2C. 1832 -- 1833 -- Whether this attribute is set from a job attribute 1834 -- supplied by the job submission client or is set by the 1835 -- recipient job submission server or device depends on the 1836 -- job submission protocol. This attribute SHALL be 1837 -- implemented if the server or device has other types in 1838 -- addition to or instead of printing. 1839 -- 1840 -- One of the purposes of this attribute is to permit a 1841 -- requester to filter out jobs that are not of interest. 1842 -- For example, a printer operator may only be interested in 1843 -- jobs that include printing. That is why this attribute 1844 -- is in the job identification category. 1846 jobSourceChannelIndex(25), -- Integer32(0..2147483647) 1847 -- INTEGER: The index of the row in the associated Printer 1848 -- MIB[1] of the channel which is the source of the print 1849 -- job. 1850 -- 1851 -- NOTE - the Job Monitoring MIB points to the Channel row 1852 -- in the Printer MIB[1], so there is no need for a port 1853 -- attribute in the Job Monitoring MIB, since the PWG is 1854 -- adding a prtChannelInformation object to the Channel 1855 -- table of the draft Printer MIB. 1857 jobSourcePlatformType(26), -- JmJobSourcePlatformTypeTC 1858 -- (pg 27) 1859 -- INTEGER: The source platform type of the immediate 1860 -- upstream submitter that submitted the job to the server 1861 -- (configuration 2) or device (configuration 1 and 3) that 1862 -- the agent is instrumenting. For configuration 1, this is 1863 -- the type of the client that submitted the job to the 1864 -- device; for configuration 2, this is the type of the 1865 -- client that submitted the job to the server; and for 1866 -- configuration 3, this is the type of the server that 1867 -- submitted the job to the device. 1869 submittingServerName(27), -- OCTET STRING(SIZE(0..63)) 1870 -- OCTETS: For configuration 3 only: The administrative 1871 -- name of the server that submitted the job to the device. 1873 submittingApplicationName(28), -- OCTET STRING(SIZE(0..63)) 1874 -- OCTETS: The name of the client application (not the 1875 Job Monitoring MIB, V0.82 June 9, 1997 1877 -- server in configuration 3) that submitted the job to the 1878 -- server or device. 1880 jobOriginatingHost(29), -- OCTET STRING(SIZE(0..63)) 1881 -- OCTETS: The name of the client host (not the server host 1882 -- name in configuration 3) that submitted the job to the 1883 -- server or device. 1885 deviceNameRequested(30), -- OCTET STRING(SIZE(0..63)) 1886 -- OCTETS: The administratively defined coded character set 1887 -- name of the target device requested by the submitting 1888 -- user. For configuration 1, its value corresponds to the 1889 -- Printer MIB[1]: prtGeneralPrinterName object (added to 1890 -- the draft Printer MIB) for printers. For configuration 2 1891 -- and 3, its value is the name of the logical or physical 1892 -- device that the user supplied to indicate to the server 1893 -- on which device(s) they wanted the job to be processed. 1895 queueNameRequested(31), -- OCTET STRING(SIZE(0..63)) 1896 -- OCTETS: The administratively defined coded character set 1897 -- name of the target queue requested by the submitting 1898 -- user. For configuration 1, its value corresponds to the 1899 -- queue in the device that the agent is instrumenting. For 1900 -- configuration 2 and 3, its value is the name of the queue 1901 -- that the user supplied to indicate to the server on which 1902 -- device(s) they wanted the job to be processed. 1903 -- 1904 -- NOTE - typically an implementation SHOULD support either 1905 -- the deviceNameRequested or queueNameRequested attribute, 1906 -- but not both. 1908 physicalDevice(32), -- hrDeviceIndex (see HR MIB) 1909 -- AND/OR 1910 -- OCTET STRING(SIZE(0..63)) 1911 -- INTEGER: MULTI-ROW: The index of the physical device 1912 -- MIB instance requested/used, such as the Printer MIB[1]. 1913 -- This value is an hrDeviceIndex value. See the Host 1914 -- Resources MIB[6]. 1915 -- AND/OR 1916 -- OCTETS: MULTI-ROW: The name of the physical device to 1917 -- which the job is assigned. 1919 numberOfDocuments(33), -- Integer32(0..2147483647) 1920 -- INTEGER: The number of documents in this job. If this 1921 -- attribute is not present, the number of documents SHALL 1922 -- be 1. 1924 Job Monitoring MIB, V0.82 June 9, 1997 1926 fileName(34), -- OCTET STRING(SIZE(0..63)) 1927 -- OCTETS: MULTI-ROW: The coded character set file name of 1928 -- the document. 1929 -- 1930 -- There is no restriction on the same file name in multiple 1931 -- rows. 1933 documentName(35), -- OCTET STRING(SIZE(0..63)) 1934 -- OCTETS: MULTI-ROW: The coded character set name of the 1935 -- document. 1936 -- 1937 -- There is no restriction on the same document name in 1938 -- multiple rows. 1940 jobComment(36), -- OCTET STRING(SIZE(0..63)) 1941 -- OCTETS: An arbitrary human-readable coded character text 1942 -- string supplied by the submitting user or the job 1943 -- submitting application program for any purpose. For 1944 -- example, a user might indicate what he/she is going to do 1945 -- with the printed output or the job submitting application 1946 -- program might indicate how the document was produced. 1947 -- 1948 -- The jobComment attribute is not intended to be a name; 1949 -- see the jobName attribute. 1951 documentFormatIndex(37), -- Integer32(0..2147483647) 1952 -- INTEGER: MULTI-ROW: The index in the 1953 -- prtInterpreterTable in the Printer MIB[1] of the page 1954 -- description language (PDL) or control language 1955 -- interpreter that this job requires/uses. A document or a 1956 -- job MAY use more than one PDL or control language. 1957 -- 1958 -- NOTE - As with all intensive attribute items where 1959 -- multiple rows are allowed, there SHALL be only one 1960 -- distinct row for each distinct interpreter; there SHALL 1961 -- be no duplicates. 1962 -- 1963 -- NOTE - This attribute type is intended to be used with an 1964 -- agent that implements the Printer MIB and SHALL not be 1965 -- used if the agent does not implement the Printer MIB. 1966 -- Such an agent SHALL use the documentFormat attribute 1967 -- instead. 1969 documentFormat(38), -- PrtInterpreterLangFamilyTC 1970 -- AND/OR 1971 -- OCTET STRING(SIZE(0..63)) 1972 -- INTEGER: MULTI-ROW: The interpreter language family 1973 Job Monitoring MIB, V0.82 June 9, 1997 1975 -- corresponding to the Printer MIB[1] 1976 -- prtInterpreterLangFamily object, that this job 1977 -- requires/uses. A document or a job MAY use more than one 1978 -- PDL or control language. 1979 -- 1980 -- NOTE - This attribute is represented by a type 2 enum 1981 -- defined in the draft Printer MIB[1], but is not in RFC 1982 -- 1759. 1983 -- 1984 -- AND/OR 1985 -- 1986 -- OCTETS: MULTI-ROW: The document format registered as a 1987 -- MIME type, i.e., the name of the MIME type. 1988 -- 1989 -- NOTE - IPP[3] uses MIME type keywords to identify 1990 -- document formats. 1992 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1993 -- Job Parameter attributes 1994 -- 1995 -- The following attributes represent input parameters 1996 -- supplied by the submitting client in the job submission 1997 -- protocol. 1998 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2000 jobPriority(50), -- Integer32(1..100) 2001 -- INTEGER: The priority for scheduling the job. It is used 2002 -- by servers and devices that employ a priority-based 2003 -- scheduling algorithm. 2004 -- 2005 -- A higher value specifies a higher priority. The value 1 2006 -- is defined to indicate the lowest possible priority (a 2007 -- job which a priority-based scheduling algorithm SHALL 2008 -- pass over in favor of higher priority jobs). The value 2009 -- 100 is defined to indicate the highest possible priority. 2010 -- Priority is expected to be evenly or 'normally' 2011 -- distributed across this range. The mapping of vendor- 2012 -- defined priority over this range is implementation- 2013 -- specific. 2015 jobProcessAfterDateAndTime(51), -- DateAndTime (SNMPv2-TC) 2016 -- INTEGER: The calendar date and time of day after which 2017 -- the job SHALL become a candidate to be scheduled for 2018 -- processing. If the value of this attribute is in the 2019 -- future, the server SHALL set the value of the job's 2020 -- jmJobState object to pendingHeld and add the 2021 -- jobProcessAfterSpecified bit value to the job's 2022 Job Monitoring MIB, V0.82 June 9, 1997 2024 -- jmJobStateReasons1 object and SHALL not schedule the job 2025 -- for processing until the specified date and time has 2026 -- passed. When the specified date and time arrives, the 2027 -- server SHALL remove the jobProcessAfterSpecified bit 2028 -- value from the job's jmJobStateReasons1 object and, if no 2029 -- other reasons remain, SHALL change the job's jmJobState 2030 -- object to pending so that the job becomes a candidate for 2031 -- being scheduled on devices(s). 2032 -- 2033 -- The agent SHALL assign an empty value to the 2034 -- jobProcessAfterDateAndTime attribute when no process 2035 -- after time has been specified, so that the job SHALL be a 2036 -- candidate for processing immediately. 2037 -- 2038 jobHold(52), -- Integer32(0..1) 2039 -- INTEGER: If the value is 1, a client has explicitly 2040 -- specified that the job is to be held until explicitly 2041 -- released. Until the job is explicitly released by a 2042 -- client, the job SHALL be in the pendingHeld state with 2043 -- the jobHoldSpecified value in the jmJobStateReasons1 2044 -- attribute. 2046 jobHoldUntil(53), -- OCTET STRING(SIZE(0..63)) 2047 -- OCTETS: The named time period during which the job SHALL 2048 -- become a candidate for processing, such as 'no-hold', 2049 -- 'evening', 'night', 'weekend', 'second-shift', 'third- 2050 -- shift', etc., as defined by the system administrator. 2051 -- Until that time period arrives, the job SHALL be in the 2052 -- pendingHeld state with the jobHoldUntilSpecified value in 2053 -- the jmJobStateReasons1 object. 2055 outputBin(54), -- Integer32(0..2147483647) 2056 -- AND/OR 2057 -- OCTET STRING(SIZE(0..63)) 2058 -- INTEGER: MULTI-ROW: The output subunit index in the 2059 -- Printer MIB[1] 2060 -- AND/OR 2061 -- OCTETS: the name of the output bin to which all or part 2062 -- of the job is placed in. 2064 sides(55), -- Integer32(-2..1) 2065 -- INTEGER: MULTI-ROW: The number of sides that any 2066 -- document in this job requires/used. 2068 finishing(56), -- JmFinishingTC (pg 28) 2069 -- INTEGER: MULTI-ROW: Type of finishing that any document 2070 Job Monitoring MIB, V0.82 June 9, 1997 2072 -- in this job requires/used. 2074 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2075 -- Image Quality attributes (requested and consumed) 2076 -- 2077 -- For devices that can vary the image quality. 2078 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2080 printQualityRequested(70), -- JmPrintQualityTC (pg 29) 2081 -- INTEGER: MULTI-ROW: The print quality selection 2082 -- requested for document in the job for printers that allow 2083 -- quality differentiation. 2085 printQualityUsed(71), -- JmPrintQualityTC (pg 29) 2086 -- INTEGER: MULTI-ROW: The print quality selection 2087 -- actually used by documents in the job for printers that 2088 -- allow quality differentiation. 2090 printerResolutionRequested(72), -- JmPrinterResolutionTC 2091 -- (pg 30) 2092 -- INTEGER: MULTI-ROW: The print quality selection 2093 -- requested for document in the job for printers that allow 2094 -- quality differentiation. 2096 printerResolutionUsed(73), -- JmPrinterResolutionTC 2097 -- (pg 30) 2098 -- INTEGER: MULTI-ROW: The print quality selection 2099 -- actually used by documents in the job for printers that 2100 -- allow quality differentiation. 2102 tonerEcomonyRequested(74), -- JmTonerEconomyTC (pg 31) 2103 -- INTEGER: MULTI-ROW: The print quality selection 2104 -- requested for documents in the job for printers that 2105 -- allow toner quality differentiation. 2107 tonerEcomonyUsed(75), -- JmTonerEconomyTC (pg 31) 2108 -- INTEGER: MULTI-ROW: The print quality selection 2109 -- actually used by documents in the job for printers that 2110 -- allow toner quality differentiation. 2112 tonerDensityRequested(76), -- Integer32(1..20) 2113 -- INTEGER: MULTI-ROW: The toner density requested for 2114 -- documents in this job for devices that can vary toner 2115 -- density levels. Level 1 is the lowest density and level 2116 -- 20 is the highest density level. Devices with a smaller 2117 -- range, SHALL map the 1-20 range evenly onto the 2118 -- implemented range. 2120 Job Monitoring MIB, V0.82 June 9, 1997 2122 tonerDensityUsed(77), -- Integer32(1..20) 2123 -- INTEGER: MULTI-ROW: The toner density used by documents 2124 -- in this job for devices that can vary toner density 2125 -- levels. Level 1 is the lowest density and level 20 is 2126 -- the highest density level. Devices with a smaller range, 2127 -- SHALL map the 1-20 range evenly onto the implemented 2128 -- range. 2130 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2131 -- Job Progress attributes (requested and consumed) 2132 -- 2133 -- Pairs of these attributes can be used by monitoring 2134 -- applications to show 'thermometers' of progress to users. 2135 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2137 jobCopiesRequested(90), -- Integer32(-2..2147483647) 2138 -- INTEGER: The number of copies of the entire job that are 2139 -- to be produced. 2141 jobCopiesCompleted(91), -- Integer32(-2..2147483647) 2142 -- INTEGER: The number of copies of the entire job that 2143 -- have been completed so far. 2145 documentCopiesRequested(92), -- Integer32(-2..2147483647) 2146 -- INTEGER: The total count of the number of document 2147 -- copies requested. If there are documents A, B, and C, 2148 -- and document B is specified to produce 4 copies, the 2149 -- number of document copies requested is 6 for the job. 2150 -- 2151 -- This attribute SHALL be used only when a job has multiple 2152 -- documents. The jobCopiesRequested attribute SHALL be 2153 -- used when the job has only one document. 2155 documentCopiesCompleted(93), -- Integer32(-2..2147483647) 2156 -- INTEGER: The total count of the number of document 2157 -- copies completed so far for the job as a whole. If there 2158 -- are documents A, B, and C, and document B is specified to 2159 -- produce 4 copies, the number of document copies starts a 2160 -- 0 and runs up to 6 for the job as the job processes. 2161 -- 2162 -- This attribute SHALL be used only when a job has multiple 2163 -- documents. The jobCopiesCompleted attribute SHALL be 2164 -- used when the job has only one document. 2166 Job Monitoring MIB, V0.82 June 9, 1997 2168 jobKOctetsTransferred(94), -- Integer32(-2..2147483647) 2169 -- INTEGER: The number of K (1024) octets transferred to 2170 -- the server or device that the agent is instrumenting. 2171 -- This count is independent of the number of copies of the 2172 -- job or documents that will be produced, but is just a 2173 -- measure of the number of bytes transferred to the server 2174 -- or device. 2175 -- 2176 -- The agent SHALL round the actual number of octets 2177 -- transferred up to the next higher K. Thus 0 octets SHALL 2178 -- be represented as 0, 1-1024 octets SHALL BE represented 2179 -- as 1, 1025-2048 SHALL be 2, etc. When the job completes, 2180 -- the values of the jmJobKOctetsRequested object and the 2181 -- jobKOctetsTransferred attribute SHALL be equal. 2182 -- 2183 -- NOTE - The jobKOctetsTransferred can be used in the 2184 -- numerator with the jmJobKOctetsRequested object in the 2185 -- denominator in order to produce a "thermometer" that 2186 -- indicates the progress of the job for agents that do not 2187 -- implement the jmJobKOctetsProcessed object. 2189 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2190 -- Impression attributes 2191 -- 2192 -- For a print job, an impression is the marking of the 2193 -- entire side of a sheet. Two-sided processing involves two 2194 -- impressions per sheet. Two-up is the placement of two 2195 -- logical pages on one side of a sheet and so is still a 2196 -- single impression. See also jmJobImpressionsRequested and 2197 -- jmJobImpressionsCompleted objects in the jmJobTable on page 2198 -- 80. 2199 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2201 impressionsSpooled(110), -- Integer32(-2..2147483647) 2202 -- INTEGER: The number of impressions spooled to the server 2203 -- or device for the job so far. 2205 impressionsSentToDevice(111), -- Integer32(-2..2147483647) 2206 -- INTEGER: The number of impressions sent to the device 2207 -- for the job so far. 2209 impressionsInterpreted(112), -- Integer32(-2..2147483647) 2210 -- INTEGER: The number of impressions interpreted for the 2211 -- job so far. 2213 Job Monitoring MIB, V0.82 June 9, 1997 2215 impressionsCompletedCurrentCopy(113), -- Integer32(-2.. 2216 -- 2147483647) 2217 -- INTEGER: The number of impressions completed by the 2218 -- device for the current copy of the current document so 2219 -- far. For printing, the impressions completed includes 2220 -- interpreting, marking, and stacking the output. For 2221 -- other types of job services, the number of impressions 2222 -- completed includes the number of impressions processed. 2223 -- 2224 -- This value SHALL be reset to 0 for each document in the 2225 -- job and for each document copy. 2227 fullColorImpressionsCompleted(114), -- Integer32(-2.. 2228 -- 2147483647) 2229 -- INTEGER: The number of full color impressions completed 2230 -- by the device for this job so far. For printing, the 2231 -- impressions completed includes interpreting, marking, and 2232 -- stacking the output. For other types of job services, 2233 -- the number of impressions completed includes the number 2234 -- of impressions processed. Full color impressions are 2235 -- typically defined as those requiring 3 or more colorants, 2236 -- but this MAY vary by implementation. 2237 -- 2238 highlightColorImpressionsCompleted(115), -- Integer32(-2.. 2239 -- 2147483647) 2240 -- INTEGER: The number of highlight color impressions 2241 -- completed by the device for this job so far. For 2242 -- printing, the impressions completed includes 2243 -- interpreting, marking, and stacking the output. For 2244 -- other types of job services, the number of impressions 2245 -- completed includes the number of impressions processed. 2246 -- Highlight color impressions are typically defined as 2247 -- those requiring black plus one other colorant, but this 2248 -- MAY vary by implementation. 2250 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2251 -- Page attributes 2252 -- 2253 -- A page is a logical page. Number up can impose more than 2254 -- one page on a single side of a sheet. Two-up is the 2255 -- placement of two logical pages on one side of a sheet so 2256 -- that each side counts as two pages. 2257 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2258 Job Monitoring MIB, V0.82 June 9, 1997 2260 pagesRequested(130), -- Integer32(-2..2147483647) 2261 -- INTEGER: The number of logical pages requested by the 2262 -- job to be processed. 2264 pagesCompleted(131), -- Integer32(-2..2147483647) 2265 -- INTEGER: The number of logical pages completed for this 2266 -- job so far. 2268 pagesCompletedCurrentCopy(132), -- Integer32(-2..2147483647) 2269 -- INTEGER: The number of logical pages completed for the 2270 -- current copy of the document so far. This value SHALL be 2271 -- reset to 0 for each document in the job and for each 2272 -- document copy. 2274 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2275 -- Sheet attributes 2276 -- 2277 -- The sheet is a single piece of a medium, whether printing 2278 -- on one or both sides. 2279 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2281 sheetsRequested(150), -- Integer32(-2..2147483647) 2282 -- INTEGER: The number of medium sheets requested to be 2283 -- processed for this job. 2285 sheetsCompleted(151), -- Integer32(-2..2147483647) 2286 -- INTEGER: The number of medium sheets that have completed 2287 -- marking and stacking for the entire job so far whether 2288 -- those sheets have been processed on one side or on both. 2289 -- 2290 sheetsCompletedCurrentCopy(152), -- Integer32(-2..2147483647) 2291 -- INTEGER: The number of medium sheets that have completed 2292 -- marking and stacking for the current copy of a document 2293 -- in the job so far whether those sheets have been 2294 -- processed on one side or on both. 2295 -- 2296 -- The value of this attribute SHALL be reset to 0 as each 2297 -- document in the job starts being processed and for each 2298 -- document copy as it starts being processed. 2300 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2301 -- Resources attributes (requested and consumed) 2302 -- 2303 -- Pairs of these attributes can be used by monitoring 2304 -- applications to show 'thermometers' of usage to users. 2306 Job Monitoring MIB, V0.82 June 9, 1997 2308 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2310 mediumRequested(170), -- JmMediumTypeTC (pg 31) 2311 -- AND/OR 2312 -- OCTET STRING(SIZE(0..63)) 2313 -- INTEGER: MULTI-ROW: The type 2314 -- AND/OR 2315 -- OCTETS: the name of the medium that is required by the 2316 -- job. 2318 mediumConsumed(171), -- OCTET STRING(SIZE(0..63)) 2319 -- AND 2320 -- Integer32(-2..2147483647) 2321 -- OCTETS: MULTI-ROW: The name of the medium 2322 -- AND 2323 -- INTEGER: the number of sheets that have been consumed so 2324 -- far whether those sheets have been processed on one side 2325 -- or on both. This attribute SHALL have both values. 2327 colorantRequested(172), -- Integer32(0..2147483647) 2328 -- AND/OR 2329 -- OCTET STRING(SIZE(0..63)) 2330 -- INTEGER: MULTI-ROW: The index (prtMarkerColorantIndex) 2331 -- in the Printer MIB[1] 2332 -- AND/OR 2333 -- OCTETS: the name of the colorant requested. 2335 colorantConsumed(173), -- Integer32(0..2147483647) 2336 -- AND/OR 2337 -- OCTET STRING(SIZE(0..63)) 2338 -- INTEGER: MULTI-ROW: The index (prtMarkerColorantIndex) 2339 -- in the Printer MIB[1] 2340 -- AND/OR 2341 -- OCTETS: the name of the colorant consumed. 2343 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2344 -- Time attributes (set by server or device) 2345 -- 2346 -- This section of attributes are ones that are set by the 2347 -- server or device that accepts jobs. Two forms of time are 2348 -- provided. Each form is represented in a separate attribute. 2350 Job Monitoring MIB, V0.82 June 9, 1997 2352 -- See section 4.2 on page 19 and section 4.3 on page 20 for the 2353 -- conformance requirements for agents and monitoring 2354 -- applications, respectively. The two forms are: 2355 -- 2356 -- DateAndTime is an 8 or 11 octet binary encoded year, 2357 -- month, day, hour, minute, second, deci-second with 2358 -- optional offset from UTC. See SNMPv2-TC. 2359 -- 2360 -- NOTE: DateAndTime is not printable characters; it is 2361 -- binary. 2362 -- 2363 -- JmTimeStampTC is the time of day measured in the number of 2364 -- seconds since the system was booted. See page 27. 2365 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2367 jobSubmissionToServerTime(190), -- JmTimeStampTC (pg 27) 2368 -- AND/OR 2369 -- DateAndTime (SNMPv2-TC) 2370 -- INTEGER: Configuration 2 and 3: The time 2371 -- AND/OR 2372 -- OCTETS: the date and time that the job was submitted to 2373 -- the server. 2375 jobSubmissionToDeviceTime(191), -- JmTimeStampTC (pg 27) 2376 -- AND/OR 2377 -- DateAndTime (SNMPv2-TC) 2378 -- INTEGER: Configuration 1 and 3: The time 2379 -- AND/OR 2380 -- OCTETS: the date and time that the job was submitted to 2381 -- the device. 2383 timeSinceJobWasSubmittedToDevice(192), -- Integer32(0.. 2384 -- 2147483647) 2385 -- INTEGER: The time in seconds since the job was submitted 2386 -- to the device. 2388 jobStartedBeingHeldTimeStamp(193), -- JmTimeStampTC (pg 27) 2389 -- INTEGER: The time that the job started being held, i.e., 2390 -- the time that the job entered the pendingHeld state most 2391 -- recently. If the job has never entered the pendingHeld 2392 -- state, then the value SHALL be 0 or the attribute SHALL 2393 -- not be present in the table. 2395 jobStartedProcessingTime(194), -- JmTimeStampTC (pg 27) 2396 -- AND/OR 2397 -- DateAndTime (SNMPv2-TC) 2399 Job Monitoring MIB, V0.82 June 9, 1997 2401 -- INTEGER: The time 2402 -- AND/OR 2403 -- OCTETS: the date and time that the job started 2404 -- processing. 2406 timeSinceStartedProcessing(195), -- Integer32(-2..2147483647) 2407 -- INTEGER: The time in milliseconds since the job started 2408 -- processing. 2410 jobCompletedTime(196), -- JmTimeStampTC (pg 27) 2411 -- AND/OR 2412 -- DateAndTime (SNMPv2-TC) 2413 -- INTEGER: The time 2414 -- AND/OR 2415 -- OCTETS: the date and time that the job completed 2416 -- processing and the medium is completely stacked in the 2417 -- output bin, i.e., when the job entered the completed, 2418 -- canceled, or aborted state. 2420 timeSinceCompleted(197), -- Integer32(-2..2147483647) 2421 -- INTEGER: The time in milliseconds since the job 2422 -- completed processing and the medium was completely 2423 -- stacked in the output bin, i.e., since the job entered 2424 -- the completed, canceled, or aborted state. 2426 jobProcessingCPUTime(198) -- Integer32(-2..2147483647) 2427 -- INTEGER: The amount of CPU time that the job has been 2428 -- processing in seconds, i.e., in the processing job state. 2429 -- If the device stops and/or the job enters the 2430 -- processingStopped state, that elapsed time SHALL not be 2431 -- included. In other words, the jobProcessingCPUTime value 2432 -- SHOULD be relatively repeatable when the same job is 2433 -- submitted again. 2435 } 2437 JmJobServiceTypesTC ::= TEXTUAL-CONVENTION 2438 STATUS current 2439 DESCRIPTION 2440 Job Monitoring MIB, V0.82 June 9, 1997 2442 "Specifies the type(s) of service to which the job has been 2443 submitted (print, fax, scan, etc.). The service type is 2444 represented as an enum that is bit encoded with each job service 2445 type so that more general and arbitrary services can be created, 2446 such as services with more than one destination type, or ones 2447 with only a source or only a destination. For example, a job 2448 service might scan, faxOut, and print a single job. In this 2449 case, three bits would be set in the jobServiceTypes attribute, 2450 corresponding to the hexadecimal values: 0x8 + 0x20 + 0x4, 2451 respectively, yielding: 0x2C. 2453 Whether this attribute is set from a job attribute supplied by 2454 the job submission client or is set by the recipient job 2455 submission server or device depends on the job submission 2456 protocol. With either implementation, the agent SHALL return a 2457 non-zero value for this attribute indicating the type of the 2458 job. 2460 One of the purposes of this attribute is to permit a requester 2461 to filter out jobs that are not of interest. For example, a 2462 printer operator MAY only be interested in jobs that include 2463 printing. That is why the attribute is in the job 2464 identification category. 2466 The following service component types are defined (in 2467 hexadecimal) and are assigned a separate bit value for use with 2468 the jobServiceTypes attribute: 2470 other 0x1 2471 The job contains some document production instructions that are 2472 not one of the identified types. 2474 unknown 0x2 2475 The job contains some document production instructions whose 2476 type is unknown to the agent. 2478 print 0x4 2479 The job contains some document production instructions that 2480 specify printing 2482 scan 0x8 2483 The job contains some document production instructions that 2484 specify scanning 2486 faxIn 0x10 2487 The job contains some document production instructions that 2488 specify receive fax 2489 Job Monitoring MIB, V0.82 June 9, 1997 2491 faxOut 0x20 2492 The job contains some document production instructions that 2493 specify sending fax 2495 getFile 0x40 2496 The job contains some document production instructions that 2497 specify accessing files or documents 2499 putFile 0x80 2500 The job contains some document production instructions that 2501 specify storing files or documents 2503 mailList 0x100 2504 The job contains some document production instructions that 2505 specify distribution of documents using an electronic mail 2506 system. 2508 These bit definitions are the equivalent of a type 2 enum except 2509 that combinations of them MAY be used together. See section 7.1.2 2510 on page 22." 2512 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 2514 JmJobStateReasons1TC ::= TEXTUAL-CONVENTION 2515 STATUS current 2516 DESCRIPTION 2517 "This textual-convention is used with the jmJobStateReasons1 2518 object to provides additional information regarding the 2519 jmJobState object values. 2521 The following standard values are defined (in hexadecimal) as 2522 powers of two, since multiple values MAY be used at the same 2523 time. 2525 NOTE - The Job Monitoring MIB contains a superset of the IPP 2526 values[3] for the IPP 'job-state-reasons' attribute, since the 2527 Job Monitoring MIB is intended to cover other job submission 2528 protocols as well. Also some of the names of the reasons have 2529 been changed from 'printer' to 'device', since the Job 2530 Job Monitoring MIB, V0.82 June 9, 1997 2532 Monitoring MIB is intended to cover additional types of devices, 2533 including input devices, such as scanners. 2535 NOTE - For easy of understanding the order of the reasons is 2536 presented in the order in which the reason is most likely to 2537 occur. 2539 other 0x1 2540 The job state reason is not one of the standardized or 2541 registered reasons. 2543 unknown 0x2 2544 The job state reason is not known to the agent or is 2545 indeterminent. 2547 jobIncoming 0x4 2548 The job has been accepted by the server or device, but the 2549 server or device is expected (1) additional operations to finish 2550 creating the job and/or (2) is accessing/accepting document 2551 data. 2553 jobOutgoing 0x8 2554 Configuration 2 only: The server is transmitting the job to the 2555 device. 2557 jobHoldSpecified 0x10 2558 The value of the job's jobHold(52) attribute (see page 47) is 2559 TRUE, either set when the job was created or subsequently by an 2560 explicit modify job operation. The job SHALL NOT be a candidate 2561 for processing until this reason is removed and there are no 2562 other reasons to hold the job. 2564 jobHoldUntilSpecified 0x20 2565 The value of the job's jobHoldUntil(53) (see page 47) attribute 2566 specifies a time period that is still in the future, either set 2567 when the job was created or subsequently by an explicit modify 2568 job operation. The job SHALL NOT be a candidate for processing 2569 until this reason is removed and there are no other reasons to 2570 hold the job. 2572 jobProcessAfterSpecified 0x40 2573 The value of the job's jobProcessAfterDateAndTime(51) (see page 2574 46) attribute specifies a time that is still in the future, 2575 either set when the job was created or subsequently by an 2576 explicit modify job operation. The job SHALL NOT be a candidate 2577 for processing until this reason is removed and there are no 2578 other reasons to hold the job. 2580 Job Monitoring MIB, V0.82 June 9, 1997 2582 resourcesAreNotReady 0x80 2583 At least one of the resources needed by the job, such as media, 2584 fonts, resource objects, etc., is not ready on any of the 2585 physical devices for which the job is a candidate. This 2586 condition MAY be detected when the job is accepted, or 2587 subsequently while the job is pending or processing, depending 2588 on implementation. 2590 deviceStoppedPartly 0x100 2591 One or more, but not all, of the devices to which the job is 2592 assigned are stopped. If all of the devices are stopped (or the 2593 only device is stopped), the deviceStopped reason SHALL be used. 2595 deviceStopped 0x200 2596 The device(s) to which the job is assigned is (are all) stopped. 2598 jobPrinting 0x400 2599 The output device is marking media. This attribute is useful for 2600 servers and output devices which spend a great deal of time 2601 processing when no marking is happening and then want to show 2602 that marking is now happening. 2604 jobCanceledByUser 0x800 2605 The job was canceled by the user, i.e., by a user whose name is 2606 the same as the value of the job's jobOwner attribute. 2608 jobCanceledByOperator 0x1000 2609 The job was canceled by the operator, i.e., by a user whose name 2610 is different than the value of the job's jobOwner attribute. 2612 abortedBySystem 0x2000 2613 The job was aborted by the system. NOTE - this reason is needed 2614 only when the job is not placed in the aborted job state. 2615 jobCompletedSuccessfully 0x4000 2616 The job completed successfully. 2618 jobCompletedWithWarnings 0x8000 2619 The job completed with warnings. 2621 jobCompletedWithErrors 0x10000 2622 The job completed with errors (and possibly warnings too). 2624 The following additional job state reasons have been added to 2625 represent job states that are in ISO DPA[2] and other job submission 2626 protocols: 2628 jobPaused 0x20000 2629 The job has been indefinitely suspended by a client issuing an 2630 Job Monitoring MIB, V0.82 June 9, 1997 2632 operation to suspend the job so that other jobs may proceed 2633 using the same devices. The client MAY issue an operation to 2634 resume the paused job at any time, in which case the agent SHALL 2635 remove the jobPaused values from the job's jmJobStateReasons1 2636 object and the job is eventually resumed at or near the point 2637 where the job was paused. 2639 jobInterrupted 0x40000 2640 The job has been interrupted while processing by a client 2641 issuing an operation that specifies another job to be run 2642 instead of the current job. The server or device will 2643 automatically resume the interrupted job when the interrupting 2644 job completes. 2646 jobRetained 0x80000 2647 The job is being retained by the server or device with all of 2648 the job's document data (and submitted resources, such as fonts, 2649 logos, and forms, if any). Thus a client could issue an 2650 operation to resubmit the job (or a copy of the job). When a 2651 client could no longer resubmit the job, such as after the 2652 document data has been discarded, the agent SHALL remove the 2653 jobRetained value from the jmJobStateReasons1 object. 2655 These bit definitions are the equivalent of a type 2 enum except 2656 that combinations of bits may be used together. See section 7.1.2 2657 on page 22. The remaining bits are reserved for future 2658 standardization and/or registration." 2660 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 2662 JmJobStateReasons2TC ::= TEXTUAL-CONVENTION 2663 STATUS current 2664 DESCRIPTION 2665 "This textual-convention is used with the jobStateReasons2 2666 attribute to provides additional information regarding the 2667 jmJobState object. See the description under 2668 JmJobStateReasons1TC on page 59. 2670 The following standard values are defined (in hexadecimal) as 2671 powers of two, since multiple values may be used at the same 2672 time: 2674 Job Monitoring MIB, V0.82 June 9, 1997 2676 cascaded 0x1 2677 An outbound gateway has transmitted all of the job's job and 2678 document attributes and data to another spooling system. 2680 deletedByAdministrator 0x2 2681 The administrator has deleted the job. 2683 discardTimeArrived 0x4 2684 The job has been deleted due to the fact that the time specified 2685 by the job's job-discard-time has arrived. 2687 postProcessingFailed 0x8 2688 The post-processing agent failed while trying to log accounting 2689 attributes for the job; therefore the job has been placed into 2690 the completed state with the jobRetained jmJobStateReasons1 2691 object value for a system-defined period of time, so the 2692 administrator can examine it, resubmit it, etc. 2694 submissionInterrupted 0x10 2695 Indicates that the job was not completely submitted for the 2696 following reasons: (1) the server has crashed before the job was 2697 closed by the client, (2) the server or the document transfer 2698 method has crashed in some non-recoverable way before the 2699 document data was entirely transferred to the server, (3) the 2700 client crashed or failed to close the job before the time-out 2701 period. Whether the server or device puts the job into the 2702 pendingHeld or aborted state depends on implementation. 2704 maxJobFaultCountExceeded 0x20 2705 The job has faulted several times and has exceeded the 2706 administratively defined fault count limit. 2708 devicesNeedAttentionTimeOut 0x40 2709 One or more document transforms that the job is using needs 2710 human intervention in order for the job to make progress, but 2711 the human intervention did not occur within the site-settable 2712 time-out value. 2714 needsKeyOperatorTimeOut 0x80 2715 One or more devices or document transforms that the job is using 2716 need a specially trained operator (who may need a key to unlock 2717 the device and gain access) in order for the job to make 2718 progress, but the key operator intervention did not occur within 2719 the site-settable time-out value. 2721 jobStartWaitTimeOut 0x100 2722 The server/device has stopped the job at the beginning of 2723 processing to await human action, such as installing a special 2724 Job Monitoring MIB, V0.82 June 9, 1997 2726 cartridge or special non-standard media, but the job was not 2727 resumed within the site-settable time-out value and the 2728 server/device has transitioned the job to the pendingHeld state. 2729 Normally, the job is resumed by means outside the job submission 2730 protocol, such as some local function on the device. 2732 jobEndWaitTimeOut 0x200 2733 The server/device has stopped the job at the end of processing 2734 to await human action, such as removing a special cartridge or 2735 restoring standard media, but the job was not resumed within the 2736 site-settable time-out value and the server/device has 2737 transitioned the job to the completed state. Normally, the job 2738 is resumed by means outside the job submission protocol, such as 2739 some local function on the device, whereupon the job SHALL 2740 transition immediately to the completed state. 2742 jobPasswordWaitTimeOut 0x400 2743 The server/device has stopped the job at the beginning of 2744 processing to await input of the job's password, but the human 2745 intervention did not occur within the site-settable time-out 2746 value. 2748 deviceTimedOut 0x800 2749 A device that the job was using has not responded in a period 2750 specified by the device's site-settable attribute. 2752 connectingToDeviceTimeOut 0x1000 2753 The server is attempting to connect to one or more devices which 2754 may be dial-up, polled, or queued, and so may be busy with 2755 traffic from other systems, but server was unable to connect to 2756 the device within the site-settable time-out value. 2758 transferring 0x2000 2759 The job is being transferred to a down stream server or device. 2761 queuedInDevice 0x4000 2762 The job has been queued in a down stream server or device. 2764 jobCleanup 0x8000 2765 The server/device is performing cleanup activity as part of 2766 ending normal processing. 2768 processingToStopPoint 0x10000 2769 The requester has issued an operation to interrupt the job and 2770 the server/device is processing up until the specified stop 2771 point occurs. 2773 Job Monitoring MIB, V0.82 June 9, 1997 2775 jobPasswordWait 0x20000 2776 The server/device has selected the job to be next to process, 2777 but instead of assigning resources and started the job 2778 processing, the server/device has transitioned the job to the 2779 pendingHeld state to await entry of a password (and dispatched 2780 another job, if there is one). 2782 validating 0x40000 2783 The server/device is validating the job after accepting the job. 2785 queueHeld 0x80000 2786 The operator has held the entire job set or queue. 2788 jobProofWait 0x100000 2789 The job has produced a single proof copy and is in the 2790 pendingHeld state waiting for the requester to issue an 2791 operation to release the job to print normally, obeying any job 2792 and document copy attributes that were originally submitted. 2794 heldForDiagnostics 0x200000 2795 The system is running intrusive diagnostics, so that all jobs 2796 are being held. 2798 serviceOffLine 0x400000 2799 The service/document transform is off-line and accepting no 2800 jobs. All pending jobs are put into the pendingHeld state. 2801 This could be true if its input is impaired or broken. 2803 noSpaceOnServer 0x800000 2804 There is no room on the server to store all of the job. For 2805 example, there is no room for the document data. 2807 pinRequired 0x1000000 2808 The System Administrator settable device policy is (1) to 2809 require PINs, and (2) to hold jobs that do not have a pin 2810 supplied as an input parameter when the job was created. The 2811 requester SHALL either (1) enter a pin locally at the device or 2812 issue a remote operation supplying the PIN in order for the job 2813 to be able to proceed. 2815 exceededAccountLimit 0x2000000 2816 The account for which this job is drawn has exceeded its limit. 2817 This condition SHOULD be detected before the job is scheduled so 2818 that the user does not wait until his/her job is scheduled only 2819 to find that the account is overdrawn. This condition MAY also 2820 occur while the job is processing either as processing begins or 2821 part way through processing. 2823 Job Monitoring MIB, V0.82 June 9, 1997 2825 An overdraft mechanism SHOULD be included to be user-friendly, 2826 so as to minimize the chances that the job cannot finish or that 2827 media is wasted. For example, the server/device SHOULD finish 2828 the current copy for a job with collated document copies, rather 2829 than stopping in the middle of the current document copy. 2831 heldForRetry 0x4000000 2832 The job encountered some errors that the server/device could not 2833 recover from with its normal retry procedures, but the error is 2834 worth trying the job later, such as phone number busy or remote 2835 file system in-accessible. For such a situation, the 2836 server/device SHALL transition the job from the processing to 2837 the pendingHeld, rather than to the aborted state. 2839 The following values are from the X/Open PSIS draft standard: 2841 canceledByShutdown 0x8000000 2842 The job was canceled because the server or device was shutdown 2843 before completing the job. Whether the job is placed in the 2844 pendingHeld or aborted state, depends on implementation. 2846 deviceUnavailable 0x10000000 2847 This job was aborted by the system because the device is 2848 currently unable to accept jobs. Whether the job is placed in 2849 the pendingHeld or aborted state, depends on implementation. 2851 wrongDevice 0x20000000 2852 This job was aborted by the system because the device is unable 2853 to handle this particular job; the spooler SHOULD try another 2854 device or the user should submit the job to another device. 2855 Whether the job is placed in the pendingHeld or aborted state, 2856 depends on implementation. 2858 badJob 0x40000000 2859 This job was aborted by the system because this job has a major 2860 problem, such as an ill-formed PDL; the spooler SHOULD not even 2861 try another device. 2863 These bit definitions are the equivalent of a type 2 enum except that 2864 combinations of them may be used together. See section 7.1.2 on page 2865 22." 2867 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 2868 Job Monitoring MIB, V0.82 June 9, 1997 2870 JmJobStateReasons3TC ::= TEXTUAL-CONVENTION 2871 STATUS current 2872 DESCRIPTION 2873 "This textual-convention is used with the jobStateReasons3 2874 attribute to provides additional information regarding the 2875 jmJobState object. See the description under 2876 JmJobStateReasons1TC on page 59. 2878 The following standard values are defined (in hexadecimal) as 2879 powers of two, since multiple values may be used at the same 2880 time: 2882 jobInterruptedByDeviceFailure 0x1 2883 A device or the print system software that the job was using has 2884 failed while the job was processing. The server or device is 2885 keeping the job in the pendingHeld state until an operator can 2886 determine what to do with the job. 2888 These bit definitions are the equivalent of a type 2 enum except 2889 that combinations of them may be used together. See section 7.1.2 2890 on page 22. The remaining bits are reserved for future 2891 standardization and/or registration." 2893 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 2895 JmJobStateReasons4TC ::= TEXTUAL-CONVENTION 2896 STATUS current 2897 DESCRIPTION 2898 "This textual-convention is used in the jobStateReasons4 2899 attribute to provides additional information regarding the 2900 jmJobState object. See the description under 2901 JmJobStateReasons1TC on page 59. 2903 The following standard values are defined (in hexadecimal) as 2904 powers of two, since multiple values may be used at the same 2905 time: 2907 none yet defined. 2909 These bit definitions are the equivalent of a type 2 enum except 2910 that combinations of them may be used together. See section 2911 Job Monitoring MIB, V0.82 June 9, 1997 2913 7.1.2 on page 22. These bits are reserved for future 2914 standardization and/or registration." 2916 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 2917 Job Monitoring MIB, V0.82 June 9, 1997 2919 jobmonMIBObjects OBJECT IDENTIFIER ::= { jobmonMIB 1 } 2921 -- The General Group (Mandatory) 2923 -- The jmGeneralGroup consists entirely of the jmGeneralTable. 2925 -- Implementation of every object in this group is MANDATORY. 2926 -- See Section 4 entitled 'Conformance Considerations' on page 18. 2928 jmGeneral OBJECT IDENTIFIER ::= { jobmonMIBObjects 1 } 2930 jmGeneralTable OBJECT-TYPE 2931 SYNTAX SEQUENCE OF JmGeneralEntry 2932 MAX-ACCESS not-accessible 2933 STATUS current 2934 DESCRIPTION 2935 "The jmGeneralTable consists of information of a general nature 2936 that are per-job-set, but are not per-job. See Terminology and 2937 Job Model on page 12 for the definition of a job set." 2938 ::= { jmGeneral 1 } 2940 jmGeneralEntry OBJECT-TYPE 2941 SYNTAX JmGeneralEntry 2942 MAX-ACCESS not-accessible 2943 STATUS current 2944 DESCRIPTION 2945 "Information about a job set (queue). 2947 An entry SHALL exist in this table for each job set." 2948 INDEX { jmJobSetIndex } 2949 ::= { jmGeneralTable 1 } 2951 JmGeneralEntry ::= SEQUENCE { 2952 jmGeneralNumberOfActiveJobs Integer32(0..2147483647), 2953 jmGeneralOldestActiveJobIndex Integer32(0..2147483647), 2954 jmGeneralNewestActiveJobIndex Integer32(0..2147483647), 2955 jmGeneralJobPersistence Integer32(0..2147483647), 2956 jmGeneralAttributePersistence Integer32(0..2147483647), 2957 jmGeneralJobSetName OCTET STRING(SIZE(0..63)) 2958 } 2960 jmGeneralNumberOfActiveJobs OBJECT-TYPE 2961 SYNTAX Integer32(0..2147483647) 2962 MAX-ACCESS read-only 2963 STATUS current 2964 DESCRIPTION 2965 Job Monitoring MIB, V0.82 June 9, 1997 2967 "The current number of 'active' jobs in the jmJobIDTable, 2968 jmJobTable, and jmAttributeTable, i.e., the total number of jobs 2969 that are in the pending, processing, or processingStopped 2970 states. See JmJobStateTC on page 32 for the exact specification 2971 of the semantics of the job states. 2973 If there are no active jobs, the value of this object SHALL be 2974 0." 2975 ::= { jmGeneralEntry 1 } 2977 jmGeneralOldestActiveJobIndex OBJECT-TYPE 2978 SYNTAX Integer32 (0..2147483647) 2979 MAX-ACCESS read-only 2980 STATUS current 2981 DESCRIPTION 2982 "The jmJobIndex of the oldest job that is still in one of the 2983 'active' states (pending, processing, or processingStopped). In 2984 other words, the index of the 'active' job that has been in the 2985 job tables the longest. 2987 When a job transitions from one of the 'active' states (pending, 2988 processing, processingStopped) to one of the 'in-active' states 2989 (pendingHeld, completed, canceled, or aborted), with a 2990 jmJobIndex value that matches this object, the agent SHALL 2991 advance (or wrap - see jmGeneralNewestActiveJobIndex) the value 2992 to the next oldest 'active' job, if any. 2994 On the other hand, when a job transitions from one of the 'in- 2995 active' states to one of the 'active' state, the agent SHALL 2996 reduce (or wrap) the value of this object, if the job's 2997 jmJobIndex is smaller than the current value. 2999 If there are no active jobs, the agent SHALL set the value of 3000 this object to 0." 3001 ::= { jmGeneralEntry 2 } 3003 jmGeneralNewestActiveJobIndex OBJECT-TYPE 3004 SYNTAX Integer32 (0..2147483647) 3005 MAX-ACCESS read-only 3006 STATUS current 3007 DESCRIPTION 3008 "The jmJobIndex of the newest job that is in one of the 'active' 3009 states (pending, processing, or processingStopped). In other 3010 words, the index of the 'active' job that has been most recently 3011 added to the job tables. 3013 When a new job is accepted by the server or device that the 3014 agent is instrumenting, the agent SHALL assign the next 3015 Job Monitoring MIB, V0.82 June 9, 1997 3017 available value to the job's jmJobIndex that is used for storing 3018 job information in the jmJobIDTable, the jmJobTable, and the 3019 jmAttributeTable. If the value would exceed the implementation- 3020 defined maximum value for jmJobIndex, the agent SHALL set the 3021 value back to 1, i.e., wrap around to the beginning of the job 3022 tables. 3024 It is recommended that the largest value for jmJobIndex be much 3025 larger than the maximum number of jobs that the implementation 3026 can contain at a single time, so as to minimize the pre-mature 3027 re-use of jmJobIndex value for a newer job while clients retain 3028 the same 'stale' value for an older job. 3030 Each time a new job is accepted by the server or device that the 3031 agent is instrumenting AND that job is to be 'active' (pending, 3032 processing, or processingStopped, but not pendingHeld), the 3033 agent SHALL copy the value of the job's jmJobIndex to the 3034 jmGeneralNewestActiveJobIndex object. If the new job is 'in- 3035 active' (pendingHeld state), the agent SHALL not change the 3036 value of jmGeneralNewestActiveJobIndex object. 3038 When all jobs become 'inactive', i.e., enter the pendingHeld, 3039 completed, canceled, or aborted states, the agent SHALL set the 3040 value of this object to 0. Whenever a job changes from 'in- 3041 active' to 'active' (from pendingHeld to pending or processing), 3042 the agent SHALL update the value of either the 3043 jmGeneralOldestActiveJobIndex or the 3044 jmGeneralNewestActiveJobIndex objects, or both, if the job's 3045 jmJobIndex value is outside the range between 3046 jmGeneralOldestActiveJobIndex and jmGeneralNewestActiveJobIndex. 3048 When the server or device is power-cycled, the agent SHALL 3049 remember the next jmJobIndex value to be assigned, so that new 3050 jobs are not assigned the same jmJobIndex as recent jobs before 3051 the power cycle. 3053 NOTE - Applications that wish to efficiently access all of the 3054 active jobs MAY use jmGeneralOldestActiveJobIndex value to start 3055 with the oldest active job and continue until they reach the 3056 index value equal to jmGeneralNewestActiveJobIndex, skipping 3057 over any pendingHeld, completed, canceled, or aborted jobs that 3058 might intervene. 3060 If an application detects that the jmGeneralNewestActiveJobIndex 3061 is smaller than jmGeneralOldestActiveJobIndex, the job index has 3062 wrapped. In this case, when the application exceeds the maximum 3063 job index (detected by a no such object status returned from a 3064 GetNext operation for the next conceptual row), the application 3065 Job Monitoring MIB, V0.82 June 9, 1997 3067 SHALL start over at 1 and continue the GetNext operations to 3068 find the rest of the active jobs." 3069 ::= { jmGeneralEntry 3 } 3071 jmGeneralJobPersistence OBJECT-TYPE 3072 SYNTAX Integer32(0..2147483647) 3073 MAX-ACCESS read-only 3074 STATUS current 3075 DESCRIPTION 3076 "The minimum time in seconds for this instance of the Job Set 3077 that an entry will remain in the jmJobIDTable and jmJobTable 3078 after processing has completed, i.e., the minimum time in 3079 seconds starting when the job enters the completed, canceled, or 3080 aborted state. Depending on implementation, the value of this 3081 object MAY be either: (1) set by the system administrator by 3082 means outside this specification or (2) fixed by the 3083 implementation." 3084 ::= { jmGeneralEntry 4 } 3086 jmGeneralAttributePersistence OBJECT-TYPE 3087 SYNTAX Integer32(0..2147483647) 3088 MAX-ACCESS read-only 3089 STATUS current 3090 DESCRIPTION 3091 "The minimum time in seconds for this instance of the Job Set 3092 that an entry will remain in the jmAttributeTable after 3093 processing has completed , i.e., the time in seconds starting 3094 when the job enters the completed, canceled, or aborted state. 3095 The value of this object MAY be either (1) set by the system 3096 administrator by means outside this specification or MAY be (2) 3097 fixed by the implementation, depending on implementation. 3099 This value SHALL be equal to or less than the value of 3100 jmGeneralJobPersistence." 3101 ::= { jmGeneralEntry 5 } 3103 jmGeneralJobSetName OBJECT-TYPE 3104 SYNTAX OCTET STRING(SIZE(0..63)) 3105 MAX-ACCESS read-only 3106 STATUS current 3107 DESCRIPTION 3108 "The human readable administratively assigned name of this job 3109 set (by means outside of this MIB). Typically, this name will 3110 be the name of the job queue. If a server or device has only a 3111 single job set, this object can be the administratively assigned 3112 name of the server or device itself. This name does not need to 3113 be unique, though each job set in a single Job Monitoring MIB 3114 SHOULD have distinct names. 3116 Job Monitoring MIB, V0.82 June 9, 1997 3118 NOTE - The purpose of this object is to help the user of the job 3119 monitoring application distinguish between several job sets in 3120 implementations that support more than one job set." 3121 ::= { jmGeneralEntry 6 } 3123 -- The Job ID Group (Mandatory) 3125 -- The jmJobIDGroup consists entirely of the jmJobIDTable. 3126 -- 3127 -- The two key indexes that are used in other tables to index jobs: 3128 -- jmJobSetIndex and jmJobIndex are materialized in this group. 3129 -- 3130 -- Implementation of every object in this group is MANDATORY. 3131 -- See Section 4 entitled 'Conformance Considerations' on page 18. 3133 jmJobID OBJECT IDENTIFIER ::= { jobmonMIBObjects 2 } 3135 jmJobIDTable OBJECT-TYPE 3136 SYNTAX SEQUENCE OF JmJobIDEntry 3137 MAX-ACCESS not-accessible 3138 STATUS current 3139 DESCRIPTION 3140 "The jmJobIDTable provides a correspondence map (1) between the 3141 job submission ID that a client uses to refer to a job and (2) 3142 the jmJobSetIndex and jmJobIndex that the Job Monitoring MIB 3143 agent assigned to the job and that are used to access the job in 3144 all of the other tables in the MIB. If a monitoring application 3145 already knows the jmJobIndex of the job it is querying, that 3146 application NEED NOT use the jmJobIDTable." 3147 ::= { jmJobID 1 } 3149 jmJobIDEntry OBJECT-TYPE 3150 SYNTAX JmJobIDEntry 3151 MAX-ACCESS not-accessible 3152 STATUS current 3153 DESCRIPTION 3154 "The map from (1) the jmJobSubmissionID to (2) the jmJobSetIndex 3155 and jmJobIndex. 3157 An entry SHALL exist in this table for each job, no matter what 3158 the state of the job and no matter what job set the job is in. 3159 Each job SHALL appear in one and only one job set. 3161 Job Monitoring MIB, V0.82 June 9, 1997 3163 NOTE - an IMPLICIT statement is NOT provided in the following 3164 INDEX clause, since it was not an SMIv1 feature. Therefore, the 3165 extra ASN.1 tag SHALL be included in the varbind in the SNMP 3166 request and the response." 3167 INDEX { jmJobSubmissionID } 3168 ::= { jmJobIDTable 1 } 3170 JmJobIDEntry ::= SEQUENCE { 3171 jmJobSubmissionID OCTET STRING(SIZE(1..32)), 3172 jmJobSetIndex Integer32(1..32767), 3173 jmJobIndex Integer32(1..2147483647) 3174 } 3176 jmJobSubmissionID OBJECT-TYPE 3177 SYNTAX OCTET STRING(SIZE(1..32)) 3178 MAX-ACCESS not-accessible 3179 STATUS current 3180 DESCRIPTION 3181 "A quasi-unique 32-octet string ID which identifies the job 3182 uniquely within a particular client-server environment. Either 3183 the client or the server assigns the job submission ID for each 3184 job. The monitoring application whether in the client or 3185 running separately, uses the job submission ID to help the user 3186 identify which jmJobIndex was assigned by the agent. 3188 There are multiple formats for the jmJobSubmissionID. Each 3189 format SHALL be registered using the procedures of a type 2 3190 enum. See section entitled: 'IANA Registration of enums' on 3191 page 22. 3193 The value of jmJobSubmissionID SHOULD be one of the registered 3194 format types. The first octet of the string SHALL indicate 3195 which registered format is being used. The ASCII characters '0- 3196 9', 'A-Z', and 'a-z' will be assigned in order giving 62 3197 possible formats. The agent SHALL assign a string of registered 3198 format (0) for any job without a Job Submission ID. 3200 The format values registered so far are: 3202 Format 3203 Number Description 3204 ------ ------------ 3205 0 Set by the agent when neither the client nor the 3206 server assigned a job submission ID. 3208 1 octets 3-10: 8-decimal-digit random number 3209 octets 11-32: last 22 bytes of the jobName attribute 3210 Job Monitoring MIB, V0.82 June 9, 1997 3212 2 octets 3-10: 8-decimal-digit sequential number 3213 octets 11-32: Client MAC address 3215 3 octets 3-10: 8-decimal-digit sequential number 3216 octets 11-32: last 22 bytes of the client URL 3218 .. to be registered according to procedures of a type 2 3219 enum. See section 7.3 on page 23. 3221 NOTE - the job submission id is only intended to be unique 3222 between a limited set of clients for a limited duration of time, 3223 namely, for the life time of the job in the context of the 3224 server or device that is processing the job. Some of the 3225 formats include something that is unique per client and a random 3226 number so that the same job submitted by the same client will 3227 have a different job submission id. For other formats, where 3228 part of the id is guaranteed to be unique for each client, such 3229 as the MAC address or URL, a sequential number SHOULD suffice 3230 for each client (and may be easier for each client to manage). 3231 Therefore, the length of the job submission id has been selected 3232 to reduce the probability of collision to a very low number, but 3233 is not intended to be an absolute guarantee of uniqueness. 3234 None-the-less, collisions could occur, but without bad 3235 consequences, since this MIB is intended to be used only for 3236 monitoring jobs, not for controlling and managing them." 3237 ::= { jmJobIDEntry 1 } 3239 jmJobSetIndex OBJECT-TYPE 3240 SYNTAX Integer32(1..32767) 3241 MAX-ACCESS read-only 3242 STATUS current 3243 DESCRIPTION 3244 "The job set index of the job set in which the job was placed 3245 when that server or device accepted the job. This 16-bit value 3246 in combination with the jmJobIndex value permits the management 3247 application to access the other tables to obtain the job- 3248 specific objects. This value SHALL be the same for a job in the 3249 jmJobIDTable as the corresponding jmJobSetIndex value in the 3250 jmJobTable and jmAttributeTable for this job. 3252 The value(s) of the jmJobSetIndex SHALL be persistent across 3253 power cycles, so that clients that have retained jmJobSetIndex 3254 values will access the same job sets upon subsequent power-up. 3256 An implementation that has only one job set, such as a printer 3257 with a single queue, SHALL hard code this object with the value 3258 1. See Terminology and Job Model on page 12 for the definition 3259 of a job set." 3260 Job Monitoring MIB, V0.82 June 9, 1997 3262 ::= { jmJobIDEntry 2 } 3264 jmJobIndex OBJECT-TYPE 3265 SYNTAX Integer32(1..2147483647) 3266 MAX-ACCESS read-only 3267 STATUS current 3268 DESCRIPTION 3269 "The sequential, monatonically increasing identifier index for 3270 the job generated by the server or device when that server or 3271 device accepted the job. This index value permits the 3272 management application to access the other tables to obtain the 3273 job-specific row entries. This value SHALL be the index used in 3274 the jmJobTable and jmAttributeTable for this job. 3276 See jmGeneralNewestActiveJobIndex on page 70 for a discussion 3277 about the largest value of jmJobIndex for an implementation. 3279 Agents instrumenting systems that contain jobs with a job 3280 identifier of 0 SHALL map the job identifier value 0 to a 3281 jmJobIndex value that is one higher than the highest job 3282 identifier value that any job can have on that system." 3283 ::= { jmJobIDEntry 3 } 3285 -- The Job Group (Mandatory) 3287 -- The jmJobGroup consists entirely of the jmJobTable. 3288 -- 3289 -- Implementation of every object in this group is MANDATORY. 3290 -- See Section 4 entitled 'Conformance Considerations' on page 18. 3292 jmJob OBJECT IDENTIFIER ::= { jobmonMIBObjects 3 } 3294 jmJobTable OBJECT-TYPE 3295 SYNTAX SEQUENCE OF JmJobEntry 3296 MAX-ACCESS not-accessible 3297 STATUS current 3298 DESCRIPTION 3299 "The jmJobTable consists of basic job state and status 3300 information for each job in a job set that (1) monitoring 3301 applications need to be able to access in a single SNMP Get 3302 operation, (2) that have a single value per job, and (3) that 3303 SHALL always be implemented." 3304 ::= { jmJob 1 } 3306 jmJobEntry OBJECT-TYPE 3307 Job Monitoring MIB, V0.82 June 9, 1997 3309 SYNTAX JmJobEntry 3310 MAX-ACCESS not-accessible 3311 STATUS current 3312 DESCRIPTION 3313 "Basic per-job state and status information. 3315 An entry SHALL exist in this table for each job, no matter what 3316 the state of the job is. Each job SHALL appear in one and only 3317 one job set." 3318 INDEX { jmJobSetIndex, jmJobIndex } 3319 ::= { jmJobTable 1 } 3321 JmJobEntry ::= SEQUENCE { 3322 jmJobState JmJobStateTC, -- pg 32 3323 jmJobStateReasons1 JmJobStateReasons1TC, -- pg 59 3324 jmNumberOfInterveningJobs Integer32(-2..2147483647), 3325 jmJobKOctetsRequested Integer32(-2..2147483647), 3326 jmJobKOctetsProcessed Integer32(-2..2147483647), 3327 jmJobImpressionsRequested Integer32(-2..2147483647), 3328 jmJobImpressionsCompleted Integer32(-2..2147483647) 3330 } 3332 jmJobState OBJECT-TYPE 3333 MAX-ACCESS read-only 3334 STATUS current 3335 DESCRIPTION 3336 "The current state of the job (pending, processing, completed, 3337 etc.). Even though the JmJobStateTC textual-convention defines 3338 nine values for job states, agents SHALL only implement those 3339 states which are appropriate for the particular implementation. 3340 In other words, all possible enums for this object SHALL be 3341 reported if implemented by the device and available to the 3342 agent. However, management applications SHALL be prepared to 3343 receive all the standard job states. 3345 The final value for this object SHALL be one of: completed, 3346 canceled, or aborted. The minimum length of time that the agent 3347 SHALL keep a job in the completed, canceled, or aborted state 3348 before removing the job from the jmJobIDTable and jmJobTable is 3349 specified by the value of the jmGeneralJobPersistence object." 3350 ::= { jmJobEntry 1 } 3352 jmJobStateReasons1 OBJECT-TYPE 3353 Job Monitoring MIB, V0.82 June 9, 1997 3355 MAX-ACCESS read-only 3356 STATUS current 3357 DESCRIPTION 3358 "Additional information about the job's current state, i.e., 3359 information that augments the value of the job's jmJobState 3360 object. 3362 NOTE - The jobStateReasonsn (n=2..4) attributes (see page 39) 3363 provide further additional information about the job's current 3364 state. 3366 Implementation of these values is OPTIONAL, i.e., an agent NEED 3367 NOT implement them, even if (1) the device supports the 3368 functionality represented by the reason and (2) is available to 3369 the agent. These values MAY be used with any job state or 3370 states for which the reason makes sense. Furthermore, when 3371 implemented, the agent SHALL return these values when the reason 3372 applies and SHALL NOT return them when the reason no longer 3373 applies whether the value of the job's jmJobState object changed 3374 or not. When the job does not have any reasons for being in its 3375 current state, the agent SHALL set the value of the 3376 jmJobStateReasons1 object and jobStateReasonsn attributes to 0. 3378 NOTE - While values cannot be added to the jmJobState object 3379 without impacting deployed clients that take actions upon 3380 receiving jmJobState values, it is the intent that additional 3381 JmJobStateReasonsnTC enums can be defined and registered without 3382 impacting such deployed clients. In other words, the 3383 jmJobStateReasons1 object and jobStateReasonsn attributes are 3384 intended to be extensible." 3385 ::= { jmJobEntry 2 } 3387 jmNumberOfInterveningJobs OBJECT-TYPE 3388 SYNTAX Integer32(-2..2147483647) 3389 MAX-ACCESS read-only 3390 STATUS current 3391 DESCRIPTION 3392 "The number of jobs that are expected to be processed before 3393 this job is processed according to the implementation's queuing 3394 algorithm if no other jobs were to be submitted. In other 3395 words, this value is the job's queue position. The agent SHALL 3396 return a value of 0 for this attribute when this job starts 3397 processing (since there are no jobs in front of the job)." 3398 ::= { jmJobEntry 3 } 3400 jmJobKOctetsRequested OBJECT-TYPE 3401 SYNTAX Integer32(-2..2147483647) 3402 MAX-ACCESS read-only 3403 Job Monitoring MIB, V0.82 June 9, 1997 3405 STATUS current 3406 DESCRIPTION 3407 "The total size in K (1024) octets of the document(s) being 3408 requested to be processed in the job. The agent SHALL round the 3409 actual number of octets up to the next highest K. Thus 0 octets 3410 SHALL be represented as 0, 1-1024 octets SHALL be represented as 3411 1, 1025-2048 SHALL be represented as 2, etc. 3413 The server/device MAY update the value of this attribute after 3414 each document has been transferred to the server/device or the 3415 server/device MAY provide this value after all documents have 3416 been transferred to the server/device, depending on 3417 implementation. In other words, while the job is in the 3418 pendingHeld state with the jmJobStateReasons1 object containing 3419 a jobIncoming value, the value of the jmJobKOctetsRequested 3420 object depends on implementation and MAY not correctly reflect 3421 the size of the job. 3423 In computing this value, the server/device SHALL not include the 3424 multiplicative factors contributed by (1) the number of document 3425 copies, and (2) the number of job copies, independent of whether 3426 the device can process multiple copies of the job or document 3427 without making multiple passes over the job or document data and 3428 independent of whether the output is collated or not. Thus the 3429 server/device computation is independent of the implementation." 3430 ::= { jmJobEntry 4 } 3432 jmJobKOctetsProcessed OBJECT-TYPE 3433 SYNTAX Integer32(-2..2147483647) 3434 MAX-ACCESS read-only 3435 STATUS current 3436 DESCRIPTION 3437 "The current number of octets processed by the server or device 3438 measured in units of K (1024) octets. The agent SHALL round the 3439 actual number of octets processed up to the next higher K. Thus 3440 0 octets SHALL be represented as 0, 1-1024 octets SHALL be 3441 represented as 1, 1025-2048 octets SHALL be 2, etc. For 3442 printing devices, this value is the number interpreted by the 3443 page description language interpreter rather than what has been 3444 marked on media. For implementations where multiple copies are 3445 produced by the interpreter makes only a single pass over the 3446 document, the final value SHALL be equal to the value of the 3447 jmJobKOctetsRequested object. For implementations where 3448 multiple copies are produced by the interpreter making multiple 3449 passes over the document, the final value SHALL be a multiple of 3450 the value of the jmJobKOctetsRequested object. 3452 Job Monitoring MIB, V0.82 June 9, 1997 3454 NOTE - See the impressionsCompletedCurrentCopy and 3455 pagesCompletedCurrentCopy attributes for attributes that are 3456 reset on each document copy. 3458 NOTE - The jmJobKOctetsProcessed object can be used in the 3459 numerator with the jmJobKOctetsRequested object in the 3460 denominator in order to produce a 'thermometer' that indicates 3461 the progress of the job, provided that the multiplicative factor 3462 is taken into account for some implementations of multiple 3463 copies." 3464 ::= { jmJobEntry 5 } 3466 jmJobImpressionsRequested OBJECT-TYPE 3467 SYNTAX Integer32(-2..2147483647) 3468 MAX-ACCESS read-only 3469 STATUS current 3470 DESCRIPTION 3471 "The number of impressions requested by this job to produce." 3472 ::= { jmJobEntry 6 } 3474 jmJobImpressionsCompleted OBJECT-TYPE 3475 SYNTAX Integer32(-2..2147483647) 3476 MAX-ACCESS read-only 3477 STATUS current 3478 DESCRIPTION 3479 "The current number of impressions completed for this job so 3480 far. For printing devices, the impressions completed includes 3481 interpreting, marking, and stacking the output. For other types 3482 of job services, the number of impressions completed includes 3483 the number of impressions processed." 3484 ::= { jmJobEntry 7 } 3486 -- The Attribute Group (Mandatory) 3488 -- The jmAttributeGroup consists entirely of the jmAttributeTable. 3489 -- 3490 -- Implementation of the two objects in this group is MANDATORY. 3491 -- See Section 4 entitled 'Conformance Considerations' on page 18. 3492 -- 3493 -- A few attributes are MANDATORY for agent conformance, and the rest 3494 -- are OPTIONAL. See the specification of the JmAttributeTypeTC on 3495 -- page 35 for which attributes are MANDATORY for agents to implement. 3497 jmAttribute OBJECT IDENTIFIER ::= { jobmonMIBObjects 4 } 3498 Job Monitoring MIB, V0.82 June 9, 1997 3500 jmAttributeTable OBJECT-TYPE 3501 SYNTAX SEQUENCE OF JmAttributeEntry 3502 MAX-ACCESS not-accessible 3503 STATUS current 3504 DESCRIPTION 3505 "The jmAttributeTable SHALL contain attributes of the job and 3506 document(s) for each job in a job set. Instead of allocating 3507 distinct objects for each attribute, each attribute is 3508 represented as a separate row in the jmAttributeTable." 3509 ::= { jmAttribute 1 } 3511 jmAttributeEntry OBJECT-TYPE 3512 SYNTAX JmAttributeEntry 3513 MAX-ACCESS not-accessible 3514 STATUS current 3515 DESCRIPTION 3516 "Attributes representing information about the job and 3517 document(s) or resources required and/or consumed. 3519 Each entry in the jmAttributeTable is a per-job entry with an 3520 extra index for each type of attribute (jmAttributeTypeIndex) 3521 that a job can have and an additional index 3522 (jmAttributeInstanceIndex) for those attributes that can have 3523 multiple instances per job. The jmAttributeTypeIndex object 3524 SHALL contain an enum type that indicates the type of attribute 3525 (see JmAttributeTypeTC on page 35). The value of the attribute 3526 SHALL be represented in either the jmAttributeValueAsInteger or 3527 jmAttributeValueAsOctets objects, and/or both, as specified in 3528 the JmAttributeTypeTC textual-convention. 3530 The agent SHALL create rows in the jmAttributeTable as the 3531 server or device is able to discover the attributes either from 3532 the job submission protocol itself or from the document PDL. As 3533 the documents are interpreted, the interpreter MAY discover 3534 additional attributes and so the agent adds additional rows to 3535 this table. As the attributes that represent resources are 3536 actually consumed, the usage counter contained in the 3537 jmAttributeValueAsInteger object is incremented according to the 3538 units indicated in the description of the JmAttributeTypeTC 3539 enum. 3541 The agent SHALL maintain each row in the jmJobTable for at least 3542 the minimum time after a job completes as specified by the 3543 jmGeneralAttributePersistence (see page 72). 3545 Zero or more entries SHALL exist in this table for each job in a 3546 job set. Each job SHALL appear in one and only one job set." 3547 Job Monitoring MIB, V0.82 June 9, 1997 3549 INDEX { jmJobSetIndex, jmJobIndex, jmAttributeTypeIndex, 3550 jmAttributeInstanceIndex } 3551 ::= { jmAttributeTable 1 } 3553 JmAttributeEntry ::= SEQUENCE { 3554 jmAttributeTypeIndex JmAttributeTypeTC, -- pg 35 3555 jmAttributeInstanceIndex Integer32(1..32767), 3556 jmAttributeValueAsInteger Integer32(-2..2147483647), 3557 jmAttributeValueAsOctets OCTET STRING(SIZE(0..63)) 3558 } 3560 jmAttributeTypeIndex OBJECT-TYPE 3561 MAX-ACCESS not-accessible 3562 STATUS current 3563 DESCRIPTION 3564 "The type of attribute that this row entry represents. 3566 The type MAY identify information about the job or document(s) 3567 or MAY identify a resource required to process the job before 3568 the job start processing and/or consumed by the job as the job 3569 is processed. 3571 Examples of job and document attributes include: 3572 jobCopiesRequested, documentCopiesRequested, jobCopiesCompleted, 3573 documentCopiesCompleted, fileName, and documentName. 3575 Examples of required and consumed resource attributes include: 3576 pagesRequested, pagesCompleted, mediumRequested, and 3577 mediumConsumed, respectively." 3578 ::= { jmAttributeEntry 1 } 3580 jmAttributeInstanceIndex OBJECT-TYPE 3581 SYNTAX Integer32(1..32767) 3582 MAX-ACCESS not-accessible 3583 STATUS current 3584 DESCRIPTION 3585 "A running 16-bit index of the attributes of the same type for 3586 each job. For those attributes with only a single instance per 3587 job, this index value SHALL be 1. For those attributes that are 3588 a single value per document, the index value SHALL be the 3589 document number, starting with 1 for the first document in the 3590 job. Jobs with only a single document SHALL use the index value 3591 of 1. For those attributes that can have multiple values per 3592 job or per document, such as documentFormatIndex or 3593 documentFormat, the index SHALL be a running index for the job 3594 as a whole, starting at 1." 3595 ::= { jmAttributeEntry 2 } 3596 Job Monitoring MIB, V0.82 June 9, 1997 3598 jmAttributeValueAsInteger OBJECT-TYPE 3599 SYNTAX Integer32(-2..2147483647) 3600 MAX-ACCESS read-only 3601 STATUS current 3602 DESCRIPTION 3603 "The integer value of the attribute. The value of the attribute 3604 SHALL be represented as an integer if the enum description in 3605 the JmAttributeTypeTC definition (see page 35) has the tag: 3606 'INTEGER:'. 3608 Depending on the enum definition, this object value MAY be an 3609 integer, a counter, an index, or an enum, depending on the 3610 jmAttributeTypeIndex value. The units of this value are 3611 specified in the enum description. 3613 For those attributes that are accumulating job consumption as 3614 the job is processed as specified in the JmAttributeTypeTC, 3615 SHALL contain the final value after the job completes 3616 processing, i.e., this value SHALL indicate the total usage of 3617 this resource made by the job. 3619 A monitoring application is able to copy this value to a 3620 suitable longer term storage for later processing as part of an 3621 accounting system. 3623 Since the agent MAY add attributes representing resources to 3624 this table while the job is waiting to be processed or being 3625 processed, which can be a long time before any of the resources 3626 are actually used, the agent SHALL set the value of the 3627 jmAttributeValueAsInteger object to 0 for resources that the job 3628 has not yet consumed. 3630 Attributes for which the concept of an integer value is 3631 meaningless, such as fileName, interpreter, and physicalDevice, 3632 do not have the 'INTEGER:' tag in the JmAttributeTypeTC 3633 definition and so SHALL return a value of (-1) to indicate other 3634 for jmAttributeValueAsInteger. 3636 For attributes which do have the 'INTEGER:' tag in the 3637 JmAttributeTypeTC definition, if the integer value is not (yet) 3638 known, the value SHALL be (-2) to represent unknown counting 3639 integers, (2) to represent unknown enum values, or the attribute 3640 row SHALL not be present in the table." 3641 ::= { jmAttributeEntry 3 } 3643 jmAttributeValueAsOctets OBJECT-TYPE 3644 SYNTAX OCTET STRING(SIZE(0..63)) 3645 Job Monitoring MIB, V0.82 June 9, 1997 3647 MAX-ACCESS read-only 3648 STATUS current 3649 DESCRIPTION 3650 "The octet string value of the attribute. The value of the 3651 attribute SHALL be represented as an OCTET STRING if the enum 3652 description in the JmAttributeTypeTC definition (see page 35) 3653 has the tag: 'OCTETS:'. 3655 Depending on the enum definition, this object value MAY be a 3656 coded character set string (text) or a binary octet string, such 3657 as DateAndTime. 3659 Attributes for which the concept of an octet string value is 3660 meaningless, such as pagesCompleted, do not have the tag 3661 'OCTETS:' in the JmAttributeTypeTC definition and so the agent 3662 SHALL return a zero length string for the value of the 3663 jmAttributeValueAsOctets object." 3664 ::= { jmAttributeEntry 4 } 3665 Job Monitoring MIB, V0.82 June 9, 1997 3667 -- Notifications and Trapping 3668 -- Reserved for the future 3670 jobmonMIBNotifications OBJECT IDENTIFIER ::= { jobmonMIB 2} 3672 -- Conformance Information 3674 jmMIBConformance OBJECT IDENTIFIER ::= { jobmonMIB 3 } 3676 -- compliance statements 3677 jmMIBCompliance MODULE-COMPLIANCE 3678 STATUS current 3679 DESCRIPTION 3680 "The compliance statement for agents that implement the 3681 job monitoring MIB." 3682 MODULE -- this module 3683 MANDATORY-GROUPS { 3684 jmGeneralGroup, jmJobIDGroup, jmJobGroup, jmAttributeGroup } 3686 -- OBJECT jmAttributeTypeIndex 3687 -- SYNTAX INTEGER { 3688 -- jobOwner(20) 3689 -- } 3690 -- DESCRIPTION 3691 --"It is conformant for an agent to implement the one mandatory 3692 -- attribute. Any additional attributes are OPTIONAL, 3693 -- i.e., an agent NEED NOT represent any additional 3694 -- attributes that the server or device implements. However, a 3695 -- client SHALL accept all of the attributes from an agent and 3696 -- either display them to its user or ignore them. 3697 -- 3698 -- NOTE - SMI does not allow an enum to be declared as mandatory 3699 -- if that enum is not a member of a group, but 3700 -- jmAttributeTypeIndex cannot be a member of a group and still 3701 -- be not-accessible. So this MIB spec comments the MANDATORY 3702 -- attributes as if SMI allowed such a declaration in order to 3703 -- declare the MANDATORY attributes." 3705 -- There are no CONDITIONALLY MANDATORY or OPTIONAL groups. 3707 ::= { jmMIBConformance 1 } 3709 jmMIBGroups OBJECT IDENTIFIER ::= { jmMIBConformance 2 } 3711 jmGeneralGroup OBJECT-GROUP 3712 OBJECTS { 3713 Job Monitoring MIB, V0.82 June 9, 1997 3715 jmGeneralNumberOfActiveJobs, jmGeneralOldestActiveJobIndex, 3716 jmGeneralNewestActiveJobIndex, jmGeneralJobPersistence, 3717 jmGeneralAttributePersistence, jmGeneralJobSetName} 3718 STATUS current 3719 DESCRIPTION 3720 "The general group." 3721 ::= { jmMIBGroups 1 } 3723 jmJobIDGroup OBJECT-GROUP 3724 OBJECTS { 3725 jmJobSetIndex, jmJobIndex } 3726 STATUS current 3727 DESCRIPTION 3728 "The job ID group." 3729 ::= { jmMIBGroups 2 } 3731 jmJobGroup OBJECT-GROUP 3732 OBJECTS { 3733 jmJobState, jmJobStateReasons1, jmNumberOfInterveningJobs, 3734 jmJobKOctetsRequested, jmJobKOctetsProcessed, 3735 jmJobImpressionsRequested, jmJobImpressionsCompleted } 3736 STATUS current 3737 DESCRIPTION 3738 "The job group." 3739 ::= { jmMIBGroups 3 } 3741 jmAttributeGroup OBJECT-GROUP 3742 OBJECTS { 3743 jmAttributeValueAsInteger, jmAttributeValueAsOctets } 3744 STATUS current 3745 DESCRIPTION 3746 "The attribute group." 3747 ::= { jmMIBGroups 4 } 3749 END 3750 Job Monitoring MIB, V0.82 June 9, 1997 3752 12. Appendix A - Instrumenting the Job Life Cycle 3754 The job object has well-defined states and client operations that affect 3755 the transition between the job states. Internal server and device 3756 actions also affect the transitions of the job between the job states. 3757 These states and transitions are referred to as the job's life cycle. 3759 Not all implementations of job submission protocols have all of the 3760 states of the job model specified here. The job model specified here is 3761 intended to be a superset of most implementations. It is the purpose of 3762 the agent to map the particular implementation's job life cycle onto the 3763 one specified here. The agent MAY omit any states not implemented. 3764 Only the processing, canceled, aborted, and completed states are 3765 required to be implemented by an agent. However, a conforming 3766 management application SHALL be prepared to accept any of the states in 3767 the job life cycle specified here, so that the management application 3768 can interoperate with any conforming agent. 3770 The job states are intended to be the user visible. The agent SHALL 3771 make these states visible in the MIB, but only for the subset of job 3772 states that the implementation has. Implementations MAY need to have 3773 sub-states of these user-visible states. Such implementation is not 3774 specified in this model, is not supported by this Job Monitoring MIB, 3775 and will vary from implementation to implementation. In some 3776 implementations the jmJobStateReasons1 object and the jobStateReasonsn 3777 (n=2..4) attributes MAY represent some or all of the sub-states of the 3778 jobs. 3780 One of the purposes of the job life cycle is to specify what is 3781 invariant from implementation to implementation as far as the MIB 3782 specification and the management application is concerned. Therefore, 3783 job states are all intended to last a user-visible length of time in 3784 most implementations. However, some jobs may pass through some states 3785 in zero time in some situations and/or in some implementations. 3787 The job model does not specify how accounting and auditing is 3788 implemented, except to assume that accounting and auditing logs are 3789 separate from the job life cycle and last longer than job entries in the 3790 MIB. Jobs in the completed, aborted, or canceled states are not logs, 3791 since jobs in these states are accessible via SNMP protocol operations 3792 and SHALL be removed from the Job Monitoring MIB tables after a site- 3793 settable or implementation-defined period of time. An accounting 3794 application MAY copy accounting information incrementally to an 3795 accounting logs as a job processes, or MAY be copied while the job is in 3796 the canceled, aborted, or completed states, depending on implementation. 3797 The same is true for auditing logs. 3799 Job Monitoring MIB, V0.82 June 9, 1997 3801 The jmJobState object specifies the standard job states. The normal job 3802 state transitions are shown in the state transition diagram presented in 3803 Table 1. 3805 13. APPENDIX B - Support of the Job Submission ID in Job Submission 3806 Protocols 3808 This appendix lists the job submission protocols that support the 3809 concept of a job submission ID and indicates the attribute in that 3810 protocol. 3812 13.1 Hewlett-Packard's Printer Job Language (PJL) 3814 Hewlett-Packard's Printer Job Language provides job-level printer 3815 control and printer status information to applications. The PJL JOB 3816 command is used at the beginning of a print job and can include options 3817 applying only to that job. A PJL JOB command option has been defined to 3818 facilitate passing the JobSubmissionID with the print job, as required 3819 by the Job Monitoring MIB. The option is of the form: 3821 SUBMISSIONID = "id string" 3823 Where the "id string" is a string and must be enclosed in double quotes. 3824 The format is as described for the jmJobSubmissionID object. 3826 The entire PJL JOB command with the optional parameter would be of the 3827 form: 3829 @PJL JOB SUBMISSIONID = "id string" 3831 See "Printer Job Language Technical Reference Manual", part number 5021- 3832 0328, from Hewlett-Packard for complete information on the PJL JOB 3833 command and the Printer Job Language. 3835 14. Bibliography 3837 [1] The Printer MIB - RFC 1579, proposed IETF standard. Also an 3838 Internet-Draft on the standards track as a draft standard: draft-ietf- 3839 printmib-mib-info-01.txt 3841 [2] ISO/IEC 10175 Document Printing Application (DPA). See 3842 ftp://ftp.pwg.org/pub/pwg/dpa/ 3843 Job Monitoring MIB, V0.82 June 9, 1997 3845 [3] Internet Printing Protocol (IPP), in progress on the IETF standards 3846 track. See draft-ietf-ipp-model-01.txt. See also 3847 http://www.pwg.org/ipp/index.html 3849 [4] IEEE 1284.1, Transport-independent Printer System Interface (TIPSI). 3851 [5] MIB-II, RFC 1213. 3853 [6] Host Resources MIB, RFC 1514 3855 [7] RFC 2119 3857 15. Author's Addresses 3858 Ron Bergman 3859 Dataproducts Corp. 3860 1757 Tapo Canyon Road 3861 Simi Valley, CA 93063-3394 3863 Phone: 805-578-4421 3864 Fax: 805-578-4001 3865 Email: rbergman@dpc.com 3867 Tom Hastings 3868 Xerox Corporation, ESAE-231 3869 701 S. Aviation Blvd. 3870 El Segundo, CA 90245 3872 Phone: 310-333-6413 3873 Fax: 310-333-5514 3874 EMail: hastings@cp10.es.xerox.com 3876 Scott A. Isaacson 3877 Novell, Inc. 3878 122 E 1700 S 3879 Provo, UT 84606 3881 Phone: 801-861-7366 3882 Fax: 801-861-4025 3883 EMail: scott_isaacson@novell.com 3885 Harry Lewis 3886 IBM Corporation 3887 6300 Diagonal Hwy 3888 Boulder, CO 80301 3889 Job Monitoring MIB, V0.82 June 9, 1997 3891 Phone: (303) 924-5337 3892 Fax: 3893 Email: harryl@us.ibm.com 3895 Send comments to the printmib WG using the Job Monitoring Project 3896 (JMP) Mailing List: jmp@pwg.org 3898 To learn how to subscribe, send email to: jmp-request@pwg.org 3900 For further information, access the PWG web page under "JMP": 3901 http://www.pwg.org/ 3903 Other Participants: 3904 Chuck Adams - Tektronix 3905 Jeff Barnett - IBM 3906 Keith Carter, IBM Corporation 3907 Jeff Copeland - QMS 3908 Andy Davidson - Tektronix 3909 Roger deBry - IBM 3910 Mabry Dozier - QMS 3911 Lee Ferrel - Canon 3912 Steve Gebert - IBM 3913 Robert Herriot - Sun Microsystems Inc. 3914 Shige Kanemitsu - Kyocera 3915 David Kellerman - Northlake Software 3916 Rick Landau - Digital 3917 Harry Lewis - IBM 3918 Pete Loya - HP 3919 Ray Lutz - Cognisys 3920 Jay Martin - Underscore 3921 Mike MacKay, Novell, Inc. 3922 Stan McConnell - Xerox 3923 Carl-Uno Manros, Xerox, Corp. 3924 Pat Nogay - IBM 3925 Bob Pentecost - HP 3926 Rob Rhoads - Intel 3927 David Roach - Unisys 3928 Hiroyuki Sato - Canon 3929 Bob Setterbo - Adobe 3930 Gail Songer, EFI 3931 Mike Timperman - Lexmark 3932 Randy Turner - Sharp 3933 William Wagner - Digital Products 3934 Job Monitoring MIB, V0.82 June 9, 1997 3936 Jim Walker - Dazel 3937 Chris Wellens - Interworking Labs 3938 Rob Whittle - Novell 3939 Don Wright - Lexmark 3940 Lloyd Young - Lexmark 3941 Atsushi Yuki - Kyocera 3942 Peter Zehler, Xerox, Corp. 3944 Job Monitoring MIB, V0.82 June 9, 1997 3946 16. INDEX 3948 This index includes the textual conventions, the objects, and the 3949 attributes. Textual conventions all start with the prefix: "JM" and 3950 end with the suffix: "TC". Objects all starts with the prefix: "jm" 3951 followed by the group name. Attributes are identified with enums, and 3952 so start with any lower case letter and have no special prefix. 3954 ------ 3956 colorantConsumed, 46 3957 colorantRequested, 46 3959 --D--- 3961 deviceAlertCode, 34 3962 deviceNameRequested, 38 3963 documentCopiesCompleted, 43 3964 documentCopiesRequested, 43 3965 documentFormat, 39 3966 documentFormatIndex, 39 3967 documentName, 38 3969 --F--- 3971 fileName, 38 3972 finishing, 41 3973 fullColorImpressionsCompleted, 44 3975 ------ 3977 highlightColorImpressionsCompleted, 44 3979 --I--- 3981 impressionsCompletedCurrentCopy, 44 3982 impressionsInterpreted, 44 3983 impressionsSentToDevice, 44 3984 impressionsSpooled, 44 3986 ------ 3988 jmAttributeInstanceIndex, 71 3989 jmAttributeTypeIndex, 71 3990 JmAttributeTypeTC, 30 3991 jmAttributeValueAsInteger, 72 3992 Job Monitoring MIB, V0.82 June 9, 1997 3994 jmAttributeValueAsOctets, 73 3995 JmFinishingTC, 24 3996 jmGeneralAttributePersistence, 62 3997 jmGeneralJobPersistence, 61 3998 jmGeneralJobSetName, 62 3999 jmGeneralNewestActiveJobIndex, 60 4000 jmGeneralNumberOfActiveJobs, 59 4001 jmGeneralOldestActiveJobIndex, 60 4002 jmJobImpressionsCompleted, 69 4003 jmJobImpressionsRequested, 69 4004 jmJobIndex, 65 4005 jmJobKOctetsProcessed, 68 4006 jmJobKOctetsRequested, 68 4007 JmJobServiceTypesTC, 49 4008 jmJobSetIndex, 65 4009 JmJobSourcePlatformTypeTC, 23 4010 jmJobState, 67 4011 jmJobStateReasons1, 67 4012 JmJobStateReasons1TC, 50 4013 JmJobStateReasons2TC, 53 4014 JmJobStateReasons3TC, 57 4015 JmJobStateReasons4TC, 58 4016 JmJobStateTC, 28 4017 jmJobSubmissionID, 63 4018 JmMediumTypeTC, 27 4019 jmNumberOfInterveningJobs, 68 4020 JmPrinterResolutionTC, 25 4021 JmPrintQualityTC, 25 4022 JmTimeStampTC, 23 4023 JmTonerEconomyTC, 26 4024 jobAccountName, 35 4025 jobComment, 39 4026 jobCompletedTime, 48 4027 jobCopiesCompleted, 42 4028 jobCopiesRequested, 42 4029 jobHoldUntil, 40, 41 4030 jobKOctetsTransferred, 43 4031 jobName, 36 4032 jobOriginatingHost, 37 4033 jobOwner, 35 4034 jobPriority, 40 4035 jobProcessAfterDateAndTime, 40 4036 jobProcessingCPUTime, 48 4037 jobServiceTypes, 36 4038 jobSourceChannelIndex, 37 4039 jobSourcePlatformType, 37 4040 jobStartedBeingHeldTimeStamp, 48 4041 Job Monitoring MIB, V0.82 June 9, 1997 4043 jobStartedProcessingTime, 48 4044 jobStateReasons2, 34 4045 jobStateReasons3, 34 4046 jobStateReasons4, 34 4047 jobSubmissionToDeviceTime, 47 4048 jobSubmissionToServerTime, 47 4050 --M--- 4052 mediumConsumedName, 46 4053 mediumRequested, 46 4055 --N--- 4057 numberOfDocuments, 38 4059 ------ 4061 other, 33 4062 outputBin, 41 4064 --P--- 4066 pagesCompleted, 45 4067 pagesCompletedCurrentCopy, 45 4068 pagesRequested, 45 4069 physicalDevice, 38 4070 printerResolutionRequested, 41 4071 printerResolutionUsed, 42 4072 printQualityRequested, 41 4073 printQualityUsed, 41 4074 processingMessage, 34 4076 ------ 4078 queueNameRequested, 38 4080 ------ 4082 serverAssignedJobName, 35 4083 sheetsCompleted, 45 4084 sheetsCompletedCurrentCopy, 46 4085 sheetsRequested, 45 4086 sides, 41 4087 submittingApplicationName, 37 4088 submittingServerName, 37 4089 Job Monitoring MIB, V0.82 June 9, 1997 4091 ------ 4093 timeSinceCompleted, 48 4094 timeSinceJobWasSubmittedToDevice, 47 4095 timeSinceStartedProcessing, 48 4096 tonerDensityRequested, 42 4097 tonerDensityUsed, 42 4098 tonerEcomonyRequested, 42 4099 tonerEcomonyUsed, 42 4101 --U--- 4103 unknown, 34