idnits 2.17.1 draft-ietf-printmib-job-monitor-03.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-16) 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 95 longer pages, the longest (page 1) being 60 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** 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 298: '...extual conventions that an agent SHALL...' RFC 2119 keyword, line 403: '... the application SHALL query each job ...' RFC 2119 keyword, line 451: '...Each job set is disjoint; no job SHALL...' RFC 2119 keyword, line 462: '... and other devices. A server MAY be a...' RFC 2119 keyword, line 490: '...monitor MAY be either a separate appli...' (234 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 422 has weird spacing: '...ure for monit...' == Line 1276 has weird spacing: '...and the objec...' == Line 1277 has weird spacing: '...tion of jmJob...' == Line 3660 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 the full syntactic range for all 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 3.6 entitled "IANA Considerations". == 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 providing access to 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 to be 'inactive' (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: jmAttributeTable for a job are indicated with 'MULTI-ROW:' in their specification in the JmAttributeTypeTC. However, such 'MULTI-ROW' attributes 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 consumptive 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: 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: jobStartedBeingHeldTime(192), JmTimeStampTC AND/OR DateAndTime (SNMPv2-TC) INTEGER: The time AND/OR OCTETS: the date and time that the job last entered the pendingHeld state. If the job has never entered the pendingHeld state, then the value SHALL be '0' or the attribute SHALL not be present in the table. == 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(195) Integer32(-2..2147483647) UNITS 'seconds' INTEGER: The amount of CPU time in seconds that the job has been in the processing state. If 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 processed again on the same 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 '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. " REFERENCE "These bit definitions are the equivalent of a type 2 enum except that combinations of them may be used together. See section 3.6.1.2. See the description under JmJobStateReasons1TC and the jobStateReasons2 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: 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 5 } == 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 agent either SHALL not materialize the row in the jmAttributeTable until the value is known or SHALL return a '-2' to represent an 'unknown' counting integer value, a '0' to represent an 'unknown' index value, and a '2' to represent an 'unknown(2)' enum value." ::= { jmAttributeEntry 3 } == 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 'OCTETS:' tag in the JmAttributeTypeTC definition, if the OCTET STRING value is not (yet) known, the agent either SHALL not materialize the row in the jmAttributeTable until the value is known or SHALL return a zero-length string." ::= { jmAttributeEntry 4 } Job Monitoring MIB, V0.83 July 14, 1997 -- 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 (July 1997) is 9772 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) ** Obsolete normative reference: RFC 1903 (ref. 'SMIv2') (Obsoleted by RFC 2579) ** Obsolete normative reference: RFC 1738 (ref. 'URI-spec') (Obsoleted by RFC 4248, RFC 4266) Summary: 9 errors (**), 0 flaws (~~), 17 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Job Monitoring MIB, V0.83 July 14, 1997 4 INTERNET-DRAFT Ron Bergman 5 Dataproducts Corp. 6 Tom Hastings 7 Xerox Corporation 8 Scott Isaacson 9 Novell, Inc. 10 Harry Lewis 11 IBM Corp. 12 July 1997 14 Job Monitoring MIB - V0.83 16 18 Expires Jan 14, 1997 20 Status of this Memo 22 This document is an Internet-Draft. Internet-Drafts are working 23 documents of the Internet Engineering Task Force (IETF), its areas, 24 and its working groups. Note that other groups may also distribute 25 working documents as Internet-Drafts. 27 Internet-Drafts are draft documents valid for a maximum of six 28 months and may be updated, replaced, or obsoleted by other 29 documents at any time. It is inappropriate to use Internet-Drafts 30 as reference material or to cite them other than as "work in 31 progress." 33 To learn the current status of any Internet-Draft, please check the 34 "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow 35 Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), 36 munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or 37 ftp.isi.edu (US West Coast). 39 Abstract 41 This Internet-Draft specifies a set of 18 SNMP MIB objects for (1) 42 monitoring the status and progress of print jobs (2) obtaining 43 resource requirements before a job is processed, (3) monitoring 44 resource consumption while a job is being processed and (4) 45 collecting resource accounting data after the completion of a job. 46 This MIB is intended to be implemented (1) in a printer or (2) in a 47 server that supports one or more printers. Use of the object set 48 is not limited to printing. However, support for services other 49 than printing is outside the scope of this Job Monitoring MIB. 51 Job Monitoring MIB, V0.83 July 14, 1997 53 Future extensions to this MIB may include, but are not limited to, 54 fax machines and scanners. 56 Job Monitoring MIB, V0.83 July 14, 1997 58 TABLE OF CONTENTS 60 1. INTRODUCTION............................................8 62 1.1 Types of Information in the MIB ......................8 64 1.2 Types of Job Monitoring Applications ................10 66 2. TERMINOLOGY AND JOB MODEL..............................11 68 2.1 System Configurations for the Job Monitoring MIB ....13 69 2.1.1 Configuration 1 - client-printer ................13 70 2.1.2 Configuration 2 - client-server-printer - agent in the server 71 ......................................................14 72 2.1.3 Configuration 3 - client-server-printer - client monitors 73 printer agent and server ..............................16 75 3. MANAGED OBJECT USAGE...................................17 77 3.1 Conformance Considerations ..........................17 78 3.1.1 Conformance Terminology .........................18 79 3.1.2 Agent Conformance Requirements ..................18 80 3.1.2.1 MIB II System Group objects..................18 81 3.1.2.2 MIB II Interface Group objects...............19 82 3.1.2.3 Printer MIB objects..........................19 83 3.1.3 Job Monitoring Application Conformance Requirements 19 85 3.2 The Job Tables and the Oldest Active and Newest Active Indexes 19 87 3.3 The Attribute Mechanism .............................21 88 3.3.1 Conformance of Attribute Implementation .........22 89 3.3.2 Useful, 'Unknown', and 'Other' Values for Objects and 90 Attributes ............................................23 91 3.3.3 Data Sub-types and Attribute Naming Conventions .23 92 3.3.4 Single-Value (Row) Versus Multi-Value (MULTI-ROW) Attributes 23 93 3.3.5 Requested Attributes ............................24 94 3.3.6 Consumption Attributes ..........................24 95 3.3.7 Index Value Attributes ..........................24 97 3.4 Job Identification ..................................25 99 3.5 Internationalization Considerations .................25 100 Job Monitoring MIB, V0.83 July 14, 1997 102 3.6 IANA Considerations .................................26 103 3.6.1 IANA Registration of enums ......................26 104 3.6.1.1 Type 1 enumerations..........................26 105 3.6.1.2 Type 2 enumerations..........................27 106 3.6.1.3 Type 3 enumeration...........................27 107 3.6.2 IANA Registration of type 2 bit values ..........27 108 3.6.3 IANA Registration of Job Submission Id Formats ..28 109 3.6.4 IANA Registration of MIME types/sub-types for document-formats 110 ......................................................28 112 3.7 Security Considerations .............................28 113 3.7.1 Read-Write objects ..............................28 114 3.7.2 Read-Only Objects In Other User's Jobs ..........28 116 3.8 Values for Objects ..................................22 118 3.9 Notification-s ......................................29 120 4. MIB SPECIFICATION......................................29 122 Textual conventions for this MIB module .................31 123 JmTimeStampTC - simple time in seconds ................31 124 JmJobSourcePlatformTypeTC - operating system platform definitions 31 125 JmFinishingTC - device finishing definitions ..........32 126 JmPrintQualityTC - print quality ......................34 127 JmPrinterResolutionTC - printer resolution ............34 128 JmTonerEconomyTC - toner economy setting ..............36 129 JmBooleanTC - Boolean value ...........................36 130 JmMediumTypeTC - medium type definitions ..............36 131 JmJobSubmissionIDTypeTC - job submission ID type definitions 38 132 JmJobStateTC - job state definitions ..................40 133 JmAttributeTypeTC - attribute type definitions ........43 134 other (Int32(-2..) and/or Octets63) ..............43 135 Job State attributes.................................44 136 jobStateReasons2 (JmJobStateReasons2TC) ..........44 137 jobStateReasons3 (JmJobStateReasons3TC) ..........44 138 jobStateReasons4 (JmJobStateReasons4TC) ..........44 139 processingMessage (Octets63) .....................44 140 Job Identification attributes........................44 141 jobAccountName (Octets63) ........................45 142 serverAssignedJobName (Octets63) .................45 143 jobName (Octets63) ...............................45 144 jobServiceTypes (JmJobServiceTypesTC) ............46 145 jobSourceChannelIndex (Int32(0..)) ...............46 146 jobSourcePlatformType (JmJobSourcePlatformTypeTC) 46 147 submittingServerName (Octets63) ..................47 148 submittingApplicationName (Octets63) .............47 149 Job Monitoring MIB, V0.83 July 14, 1997 151 jobOriginatingHost (Octets63) ....................47 152 deviceNameRequested (Octets63) ...................47 153 queueNameRequested (Octets63) ....................47 154 physicalDevice (hrDeviceIndex and/or Octets63) ...48 155 numberOfDocuments (Int32(-2..)) ..................48 156 fileName (Octets63) ..............................48 157 documentName (Octets63) ..........................48 158 jobComment (Octets63) ............................48 159 documentFormatIndex (Int32(0..)) .................49 160 documentFormat (PrtInterpreterLangFamilyTC and/or Octets63) 49 161 Job Parameter attributes.............................49 162 jobPriority (Int32(1..100)) ......................50 163 jobProcessAfterDateAndTime (DateAndTime) .........50 164 jobHold (JmBooleanTC) ............................50 165 jobHoldUntil (Octets63) ..........................50 166 outputBin (Int32(0..) and/or Octets63) ...........51 167 sides (Int32(-2..2)) .............................51 168 finishing (JmFinishingTC) ........................51 169 Image Quality attributes (requested and used)........51 170 printQualityRequested (JmPrintQualityTC) .........51 171 printQualityUsed (JmPrintQualityTC) ..............51 172 printerResolutionRequested (JmPrinterResolutionTC)51 173 printerResolutionUsed (JmPrinterResolutionTC) ....52 174 tonerEcomonyRequested (JmTonerEconomyTC) .........52 175 tonerEcomonyUsed (JmTonerEconomyTC) ..............52 176 tonerDensityRequested (Int32(-2..100)) ...........52 177 tonerDensityUsed (Int32(-2..100)) ................52 178 Job Progress attributes (requested and consumed).....52 179 jobCopiesRequested (Int32(-2..)) .................53 180 jobCopiesCompleted (Int32(-2..)) .................53 181 documentCopiesRequested (Int32(-2..)) ............53 182 documentCopiesCompleted (Int32(-2..)) ............53 183 jobKOctetsTransferred (Int32(-2..)) ..............53 184 Impression attributes (requested and consumed).......54 185 impressionsSpooled (Int32(-2..)) .................54 186 impressionsSentToDevice (Int32(-2..)) ............54 187 impressionsInterpreted (Int32(-2..)) .............54 188 impressionsCompletedCurrentCopy (Int32(-2..)) ....54 189 fullColorImpressionsCompleted (Int32(-2..)) ......55 190 highlightColorImpressionsCompleted (Int32(-2..)) .55 191 Page attributes (requested and consumed).............55 192 pagesRequested (Int32(-2..)) .....................55 193 pagesCompleted (Int32(-2..)) .....................55 194 pagesCompletedCurrentCopy (Int32(-2..)) ..........56 195 Sheet attributes (requested and consumed)............56 196 sheetsRequested (Int32(-2..)) ....................56 197 sheetsCompleted (Int32(-2..)) ....................56 198 sheetsCompletedCurrentCopy (Int32(-2..)) .........56 199 Job Monitoring MIB, V0.83 July 14, 1997 201 Resource attributes (requested and consumed).........56 202 mediumRequested (JmMediumTypeTC and/or Octets63) .57 203 mediumConsumed (Octets63) ........................57 204 colorantRequested (Int32(-2..) and/or Octets63) ..57 205 colorantConsumed (Int32(-2..) and/or Octets63) ...57 206 Time attributes (set by server or device)............57 207 jobSubmissionToServerTime (JmTimeStampTC and/or DateAndTime) 58 208 jobSubmissionTime (JmTimeStampTC and/or DateAndTime) 58 209 jobStartedBeingHeldTime (JmTimeStampTC and/or DateAndTime) 58 210 jobStartedProcessingTime (JmTimeStampTC and/or DateAndTime) 59 211 jobCompletedTime (JmTimeStampTC and/or DateAndTime)59 212 jobProcessingCPUTime (Int32(-2..)) ...............59 213 JmJobServiceTypesTC - bit encoded job service type definitions 61 214 JmJobStateReasons1TC - additional information about job states 63 215 JmJobStateReasons2TC - More additional information about job states 216 ......................................................66 217 JmJobStateReasons3TC - More additional information about job states 218 ......................................................70 219 JmJobStateReasons4TC - More additional information about job states 220 ......................................................71 222 The General Group (MANDATORY) ...........................73 223 jmGeneralJobSetIndex (Int32(1..32767)) ..............73 224 jmGeneralNumberOfActiveJobs (Int32(0..)) ............74 225 jmGeneralOldestActiveJobIndex (Int32(0..)) ..........74 226 jmGeneralNewestActiveJobIndex (Int32(0..)) ..........75 227 jmGeneralJobPersistence (Int32(15..)) ...............75 228 jmGeneralAttributePersistence (Int32(15..)) .........76 229 jmGeneralJobSetName (Octets63) ......................76 231 The Job ID Group (MANDATORY) ............................76 232 jmJobSubmissionID (OCTET STRING(SIZE(48))) ..........77 233 jmJobIDJobSetIndex (Int32(1..32767)) ................78 234 jmJobIDJobIndex (Int32(1..)) ........................79 236 The Job Group (MANDATORY) ...............................79 237 jmJobIndex (Int32(1..)) .............................80 238 jmJobState (JmJobStateTC) ...........................80 239 jmJobStateReasons1 (JmJobStateReasons1TC) ...........81 240 jmNumberOfInterveningJobs (Int32(-2..)) .............81 241 jmJobKOctetsRequested (Int32(-2..)) .................82 242 jmJobKOctetsProcessed (Int32(-2..)) .................82 243 jmJobImpressionsRequested (Int32(-2..)) .............83 244 jmJobImpressionsCompleted (Int32(-2..)) .............83 245 jmJobOwner (Octets63) ...............................83 247 The Attribute Group (MANDATORY) .........................84 248 jmAttributeTypeIndex (JmAttributeTypeTC) ............85 249 Job Monitoring MIB, V0.83 July 14, 1997 251 jmAttributeInstanceIndex (Int32(1..32767)) ..........86 252 jmAttributeValueAsInteger (Int32(-2..)) .............86 253 jmAttributeValueAsOctets (Octets63) .................87 255 5. APPENDIX A - IMPLEMENTING THE JOB LIFE CYCLE...........91 257 6. APPENDIX B - SUPPORT OF THE JOB SUBMISSION ID IN JOB SUBMISSION 258 PROTOCOLS.................................................92 260 6.1 Hewlett-Packard's Printer Job Language (PJL) ........92 262 6.2 ISO DPA .............................................92 264 7. REFERENCES.............................................92 266 8. AUTHOR'S ADDRESSES.....................................93 268 9. INDEX..................................................96 269 Job Monitoring MIB, V0.83 July 14, 1997 271 Job Monitoring MIB 273 1. Introduction 275 The Job Monitoring MIB is intended to be implemented by an agent within 276 a printer or the first server closest to the printer, where the printer 277 is either directly connected to the server only or the printer does not 278 contain the job monitoring MIB agent. It is recommended that 279 implementations place the SNMP agent as close as possible to the 280 processing of the print job. This MIB applies to printers with and 281 without spooling capabilities. This MIB is designed to be compatible 282 with most current commonly-used job submission protocols. In most 283 environments that support high function job submission/job control 284 protocols, like ISO DPA[iso-dpa], those protocols would be used to 285 monitor and manage print jobs rather than using the Job Monitoring MIB. 287 The Job Monitoring MIB consists of a 7-object General Group, a 2-object 288 Job Submission ID Group, a 7-object Job Group, and a 2-object Attribute 289 Group. Each group is a table. The General Group contains general 290 information that applies to all jobs in a job set. The Job Submission 291 ID table maps the job submission ID that the client uses to identify a 292 job to the jmJobIndex that the Job Monitoring Agent uses to identify 293 jobs in the Job and Attribute tables. The Job table contains the 294 MANDATORY integer job state and status objects. The Attribute table 295 consists of multiple entries per job that specify (1) job and document 296 identification and parameters, (2) requested resources, and (3) 297 consumed resources during and after job processing/printing. Sixty five 298 job attributes are defined as textual conventions that an agent SHALL 299 return if the server or device implements the functionality so 300 represented and the agent has access to the information. 302 1.1 Types of Information in the MIB 304 The job MIB is intended to provide the following information for the 305 indicated Role Models in the Printer MIB[print-mib] (Appendix D - Roles 306 of Users). 308 User: 310 Provide the ability to identify the least busy printer. The user 311 will be able to determine the number and size of jobs waiting for 312 each printer. No attempt is made to actually predict the length 313 of time that jobs will take. 315 Provide the ability to identify the current status of the user's 316 job (user queries). 318 Job Monitoring MIB, V0.83 July 14, 1997 320 Provide a timely indication that the job has completed and where 321 it can be found. 323 Provide error and diagnostic information for jobs that did not 324 successfully complete. 326 Operator: 328 Provide a presentation of the state of all the jobs in the print 329 system. 331 Provide the ability to identify the user that submitted the print 332 job. 334 Provide the ability to identify the resources required by each 335 job. 337 Provide the ability to define which physical printers are 338 candidates for the print job. 340 Provide some idea of how long each job will take. However, exact 341 estimates of time to process a job is not being attempted. 342 Instead, objects are included that allow the operator to be able 343 to make gross estimates. 345 Capacity Planner: 347 Provide the ability to determine printer utilization as a function 348 of time. 350 Provide the ability to determine how long jobs wait before 351 starting to print. 353 Accountant: 355 Provide information to allow the creation of a record of resources 356 consumed and printer usage data for charging users or groups for 357 resources consumed. 359 Provide information to allow the prediction of consumable usage 360 and resource need. 362 The MIB supports printers that can contain more than one job at a time, 363 but still be usable for low end printers that only contain a single job 364 at a time. In particular, the MIB supports the needs of Windows and 365 other PC environments for managing low-end networked devices without 366 unnecessary overhead or complexity, while also providing for higher end 367 systems and devices. 369 Job Monitoring MIB, V0.83 July 14, 1997 371 1.2 Types of Job Monitoring Applications 373 The Job Monitoring MIB is designed for the following types of monitoring 374 applications: 376 1.Monitor a single job starting when the job is submitted and 377 finishing a defined period after the job completes. The Job 378 Submission ID table provides the map to find the specific job to be 379 monitored. 381 2.Monitor all 'active' jobs in a queue, which this specification 382 generalizes to a "job set". End users may use such a program when 383 selecting a least busy printer, so the MIB is designed for such a 384 program to start up quickly and find the information needed quickly 385 without having to read all (completed) jobs in order to find the 386 active jobs. System operators may also use such a program, in 387 which case it would be running for a long period of time and may 388 also be interested in the jobs that have completed. Finally such a 389 program may be used to provide an enhanced console and logging 390 capability. 392 3.Collect resource usage for accounting or system utilization 393 purposes that copy the completed job statistics to an accounting 394 system. It is recognized that depending on accounting programs to 395 copy MIB data during the job-retention period is somewhat 396 unreliable, since the accounting program may not be running (or may 397 have crashed). Such a program is also expected to keep a shadow 398 copy of the entire Job Attribute table including completed, 399 canceled, and aborted jobs which the program updates on each 400 polling cycle. Such a program polls at the rate of the persistence 401 of the Attribute table. The design is not optimized to help such 402 an application determine which jobs are completed, canceled, or 403 aborted. Instead, the application SHALL query each job that the 404 application's shadow copy shows was not complete, canceled, or 405 aborted at the previous poll cycle to see if it is now complete or 406 canceled, plus any new jobs that have been submitted. 408 The MIB provides a set of objects that represent a compatible subset of 409 job and document attributes of the ISO DPA standard[iso-dpa] and the 410 Internet Printing Protocol (IPP)[ipp-model], so that coherence is 411 maintained between these two protocols and the information presented to 412 end users and system operators by monitoring applications. However, the 413 job monitoring MIB is intended to be used with printers that implement 414 other job submitting and management protocols, such as IEEE 1284.1 415 (TIPSI)[tipsi], as well as with ones that do implement ISO DPA. Thus 416 the job monitoring MIB does not require implementation of either the ISO 417 DPA or IPP protocols. 419 Job Monitoring MIB, V0.83 July 14, 1997 421 The MIB is designed so that an additional MIB(s) can be specified in the 422 future for monitoring multi-function (scan, FAX, copy) jobs as an 423 augmentation to this MIB. 425 2. Terminology and Job Model 427 This section defines the terms that are used in this specification and 428 the general model for jobs. 430 NOTE - Existing systems use conflicting terms, so these terms are 431 drawn from the ISO 10175 Document Printing Application (DPA) 432 standard[iso-dpa]. For example, PostScript systems use the term 433 session for what we call a job in this specification and the term job 434 to mean what we call a document in this specification. PJL systems 435 use the term job to mean what we call a job in this specification. 436 PJL also supports multiple documents per job, but does not support 437 specifying per-document attributes independently for each document. 439 Job: a unit of work whose results are expected together without 440 interjection of unrelated results. A job contains one or more 441 documents. 443 Job set: a group of jobs that are queued and scheduled together 444 according to a specified scheduling algorithm for a specified device or 445 set of devices. For implementations that embed the SNMP agent in the 446 device, the MIB job set normally represents all the jobs known to the 447 device, so that the implementation only implements a single job set. If 448 the SNMP agent is implemented in a server that controls one or more 449 devices, each MIB job set represents a job queue for (1) a specific 450 device or (2) set of devices, if the server uses a single queue to load 451 balance between several devices. Each job set is disjoint; no job SHALL 452 be represented in more than one MIB job set. 454 Document: a sub-section within a job that contains print data and 455 document instructions that apply to just the document. 457 Client: the network entity that end users use to submit jobs to 458 spoolers, servers, or printers and other devices, depending on the 459 configuration, using any job submission protocol. 461 Server: a network entity that accepts jobs from clients and in turn 462 submits the jobs to printers and other devices. A server MAY be a 463 printer supervisor control program, or a print spooler. 465 Device: a hardware entity that (1) interfaces to humans in human 466 perceptible means, such as produces marks on paper, scans marks on paper 467 to produce an electronic representations, or writes CD-ROMs or (2) 468 interfaces to a network, such as sends FAX data to another FAX device. 470 Job Monitoring MIB, V0.83 July 14, 1997 472 Printer: a device that puts marks on media. 474 Supervisor: a server that contains a control program that controls a 475 printer or other device. A supervisor is a client to the printer or 476 other device. 478 Spooler: a server that accepts jobs, spools the data, and decides when 479 and on which printer to print the job. A spooler is a client to a 480 printer or a printer supervisor, depending on implementation. 482 Spooling: the act of a device or server of (1) accepting jobs and (2) 483 writing the job's attributes and document data on to secondary storage. 485 Queuing: the act of a device or server of ordering (queuing) the jobs 486 for the purposes of scheduling the jobs to be processed. 488 Monitor or Job Monitoring Application: the SNMP management application 489 that End Users, and System Operators use to monitor jobs using SNMP. A 490 monitor MAY be either a separate application or MAY be part of the 491 client that also submits jobs. 493 Accounting Application: the SNMP management application that copies job 494 information to some more permanent medium so that another application 495 can perform accounting on the data for Accountants, Asset Managers, and 496 Capacity Planners use. 498 Agent: the network entity that accepts SNMP requests from a monitor or 499 accounting application and provides access to the instrumentation for 500 managing jobs modeled by the management objects defined in the Job 501 Monitoring MIB module for a server or a device. 503 Proxy: an agent that acts as a concentrator for one or more other 504 agents by accepting SNMP operations on the behalf of one or more other 505 agents, forwarding them on to those other agents, gathering responses 506 from those other agents and returning them to the original requesting 507 monitor. 509 User: is a person that uses a client or a monitor. 511 End User: is a user that uses a client to submit a print job. 513 System Operator: is a user that uses a monitor to monitor the system 514 and carries out tasks to keep the system running. 516 System Administrator: is a user that specifies policy for the system. 518 Job Instruction: is an instruction specifying how, when, or where the 519 job is to be processed. Job instructions MAY be passed in the job 520 Job Monitoring MIB, V0.83 July 14, 1997 522 submission protocol or MAY be embedded in the document data or a 523 combination depending on the job submission protocol and implementation. 525 Document Instruction: is an instruction specifying how to process the 526 document. Document instructions MAY be passed in the job submission 527 protocol separate from the actual document data, or MAY be embedded in 528 the document data or a combination, depending on the job submission 529 protocol and implementation. 531 SNMP Information Object: is a name, value-pair that specifies an 532 action, a status, or a condition in an SNMP MIB. Objects are identified 533 in SNMP by an OBJECT IDENTIFIER. 535 Attribute: is a name, value-pair that specifies a job or document 536 instruction, a status, or a condition of a job or a document that has 537 been submitted to a server or device. A particular attribute NEED NOT 538 be present in each job instance. In other words, attributes are present 539 in a job instance only when there is a need to express the value, either 540 because (1) the client supplied a value in the job submission protocol, 541 (2) the document data contained an embedded attribute, or (3) the server 542 or device supplied a default value. An agent SHALL represent an 543 attribute as an entry (row) in the Attribute table in this MIB in which 544 entries are present only when necessary. Attributes are identified in 545 this MIB by an enum. 547 Job Monitoring (using SNMP): is (1) identifying jobs within the serial 548 streams of data being processed by the server, printer or other devices, 549 (2) creating "rows" in the job table for each job, and (3) recording 550 information, known by the agent, about the processing of the job in that 551 "row". 553 Job Accounting: is recording what happens to the job during the 554 processing and printing of the job. 556 2.1 System Configurations for the Job Monitoring MIB 558 This section enumerates the three configurations in which the Job 559 Monitoring MIB is intended to be used. To simplify the pictures, the 560 devices are shown as printers. See Goals section. 562 The diagram in the Printer MIB[print-mib] entitled: "One Printer's View 563 of the Network" is assumed for this MIB as well. Please refer to that 564 diagram to aid in understanding the following system configurations. 566 2.1.1 Configuration 1 - client-printer 568 In the client-printer configuration, the client(s) submit jobs directly 569 to the printer, either by some direct connect, or by network connection. 571 Job Monitoring MIB, V0.83 July 14, 1997 573 The client-printer configuration can accommodate multiple job submitting 574 clients in either of two ways: 576 1.if each client relinquishes control of the Print Job Delivery 577 Channel after each job (or after a number of jobs) 579 2.if the printer supports more than one Print Job Delivery Channel 581 The job submitting client and/or monitoring application monitor jobs by 582 communicating directly with an agent that is part of the printer. The 583 agent in the Printer SHALL keep the job in the Job Monitoring MIB as 584 long as the job is in the Printer, plus a defined time period after the 585 job enters the completed state in which accounting programs can copy out 586 the accounting data from the Job Monitoring MIB. 588 all end-user ######## SNMP query 589 +-------+ +--------+ ---- job submission 590 |monitor| | client | 591 +---#---+ +--#--+--+ 592 # # | 593 # ############ | 594 # # | 595 +==+===#=#=+==+ | 596 | | agent | | | 597 | +-------+ | | 598 | PRINTER <--------+ 599 | | Print Job Delivery Channel 600 | | 601 +=============+ 603 Figure 2-1 - Configuration 1 - client-printer - agent in the printer 605 The Job Monitoring MIB is designed to support the following 606 relationships (not shown in Figure 2-1): 607 1.Multiple clients MAY submit jobs to a printer. 608 2.Multiple clients MAY monitor a printer. 609 3.Multiple monitors MAY monitor a printer. 610 4.A client MAY submit jobs to multiple printers. 611 5.A monitor MAY monitor multiple printers. 613 2.1.2 Configuration 2 - client-server-printer - agent in the server 615 In the client-server-printer configuration 2, the client(s) submit jobs 616 to an intermediate server by some network connection, not directly to 617 the printer. While configuration 2 is included, the design center for 618 this MIB is configurations 1 and 3, 619 Job Monitoring MIB, V0.83 July 14, 1997 621 The job submitting client and/or monitoring application monitor job by 622 communicating directly with: 624 A Job Monitoring MIB agent that is part of the server (or a front 625 for the server) 627 There is no SNMP Job Monitoring MIB agent in the printer in 628 configuration 2, at least that the client or monitor are aware. In this 629 configuration, the agent SHALL return the current values of the objects 630 in the Job Monitoring MIB both for jobs the server keeps and jobs that 631 the server has submitted to the printer. The Job Monitoring MIB agent 632 SHALL obtain the required information from the printer by a method that 633 is beyond the scope of this document. The agent in the server SHALL 634 keep the job in the Job Monitoring MIB in the server as long as the job 635 is in the Printer, plus a defined time period after the job enters the 636 completed state in which accounting programs can copy out the accounting 637 data from the Job Monitoring MIB. 639 all end-user 640 +-------+ +----------+ 641 |monitor| | client | ######## SNMP query 642 +---+---# +---#----+-+ **** non-SNMP cntrl 643 # # | ---- job submission 644 # # | 645 # # | 646 #=====#=+==v==+ 647 | agent | | 648 +-------+ | 649 | server | 650 +----+-----+--+ 651 control * | 652 ********** | 653 * | 654 +========v====+ | 655 | | | 656 | | | 657 | PRINTER <---------+ 658 | | Print Job Delivery Channel 659 | | 660 +=============+ 662 Figure 2-2 - Configuration 2 - client-server-printer - agent in the 663 server 665 The Job Monitoring MIB is designed to support the following 666 relationships (not shown in Figure 2-2): 667 1.Multiple clients MAY submit jobs to a server. 669 Job Monitoring MIB, V0.83 July 14, 1997 671 2.Multiple clients MAY monitor a server. 672 3.Multiple monitors MAY monitor a server. 673 4.A client MAY submit jobs to multiple servers. 674 5.A monitor MAY monitor multiple servers. 675 6.Multiple servers MAY submit jobs to a printer. 676 7.Multiple servers MAY control a printer. 678 2.1.3 Configuration 3 - client-server-printer - client monitors printer 679 agent and server 681 In the client-server-printer configuration 3, the client(s) submit jobs 682 to an intermediate server by some network connection, not directly to 683 the printer. That server does not contain a Job Monitoring MIB and 684 agent. 686 The job submitting client and/or monitoring application monitor jobs by 687 communicating directly with: 689 1.The server using some undefined protocol to monitor jobs in the 690 server (that does not contain the Job Monitoring MIB) AND 692 2.A Job Monitoring MIB agent that is part of the printer to 693 monitor jobs after the server passes the jobs to the printer. 694 In such configurations, the server deletes its copy of the job 695 from the server after submitting the job to the printer usually 696 almost immediately (before the job does much processing, if 697 any). 699 In configuration 3, the agent (in the printer) SHALL keep the values of 700 the objects in the Job Monitoring MIB that the agent implements updated 701 for a job that the server has submitted to the printer. The agent SHALL 702 obtain information about the jobs submitted to the printer from the 703 server (either in the job submission protocol, in the document data, or 704 by direct query of the server), in order to populate some of the objects 705 the Job Monitoring MIB in the printer. The agent in the printer SHALL 706 keep the job in the Job Monitoring MIB as long as the job is in the 707 Printer, and longer in order to implement the completed state in which 708 monitoring programs can copy out the accounting data from the Job 709 Monitoring MIB. 711 Job Monitoring MIB, V0.83 July 14, 1997 713 all end-user 714 +-------+ +----------+ 715 |monitor| | client | ######## SNMP query 716 +---+---* +---*----+-+ **** non-SNMP query 717 # * * | ---- job submission 718 # * * | 719 # * * | 720 # *=====v====v==+ 721 # | | 722 # | server | 723 # | | 724 # +----#-----+--+ 725 # optional# | 726 # ########## | 727 # # | 728 +==+=v===v=+==+ | 729 | | agent | | | 730 | +-------+ | | 731 | PRINTER <---------+ 732 | | Print Job Delivery Channel 733 | | 734 +=============+ 736 Figure 2-3 - Configuration 3 - client-server-printer - client monitors 737 printer agent and server 739 The Job Monitoring MIB is designed to support the following 740 relationships (not shown in Figure 2-3): 741 1.Multiple clients MAY submit jobs to a server. 742 2.Multiple clients MAY monitor a server. 743 3.Multiple monitors MAY monitor a server. 744 4.A client MAY submit jobs to multiple servers. 745 5.A monitor MAY monitor multiple servers. 746 6.Multiple servers MAY submit jobs to a printer. 747 7.Multiple servers MAY control a printer. 749 3. Managed Object Usage 751 This section describes the usage of the objects in the MIB. 753 3.1 Conformance Considerations 755 In order to achieve interoperability between job monitoring applications 756 and job monitoring agents, this specification includes the conformance 757 requirements for both monitoring applications and agents. 759 Job Monitoring MIB, V0.83 July 14, 1997 761 3.1.1 Conformance Terminology 763 This specification uses the verbs: "SHALL", "SHOULD", "MAY", and "NEED 764 NOT" to specify conformance requirements according to RFC 2119 [req- 765 words] as follows: 767 . "SHALL": indicates an action that the subject of the sentence must 768 implement in order to claim conformance to this specification 770 . "MAY": indicates an action that the subject of the sentence does 771 not have to implement in order to claim conformance to this 772 specification, in other words that action is an implementation 773 option 775 . "NEED NOT": indicates an action that the subject of the sentence 776 does not have to implement in order to claim conformance to this 777 specification. The verb "NEED NOT" is used instead of "may not", 778 since "may not" sounds like a prohibition. 780 . "SHOULD": indicates an action that is recommended for the subject 781 of the sentence to implement, but is not required, in order to 782 claim conformance to this specification. 784 3.1.2 Agent Conformance Requirements 786 A conforming agent: 788 1.SHALL implement all MANDATORY groups in this specification. 790 2.SHALL implement any attributes if (1) the server or device supports 791 the functionality represented by the attribute and (2) the 792 information is available to the agent. 794 3.SHOULD implement both forms of an attribute if it implements an 795 attribute that permits a choice of INTEGER and OCTET STRING forms, 796 since implementing both forms may help management applications by 797 giving them a choice of representations, since the representation are 798 equivalent. See the JmAttributeTypeTC textual-convention. 800 NOTE - This MIB, like the Printer MIB, is written following the 801 subset of SMIv2 that can be supported by SMIv1 and SNMPv1 802 implementations. 804 3.1.2.1 MIB II System Group objects 806 The Job Monitoring MIB agent SHALL implement all objects in the System 807 Group of MIB-II[mib-II], whether the Printer MIB[print-mib] is 808 implemented or not. 810 Job Monitoring MIB, V0.83 July 14, 1997 812 3.1.2.2 MIB II Interface Group objects 814 The Job Monitoring MIB agent SHALL implement all objects in the 815 Interfaces Group of MIB-II[mib-II], whether the Printer MIB[print-mib] 816 is implemented or not. 818 3.1.2.3 Printer MIB objects 820 If the agent is providing access to a device that is a printer, the 821 agent SHALL implement all of the MANDATORY objects in the Printer 822 MIB[print-mib] and all the objects in other MIBs that conformance to the 823 Printer MIB requires, such as the Host Resources MIB[hr-mib]. If the 824 agent is providing access to a server that controls one or more 825 networked printers, the agent NEED NOT implement the Printer MIB and 826 NEED NOT implement the Host Resources MIB. 828 3.1.3 Job Monitoring Application Conformance Requirements 830 A conforming job monitoring application: 832 1.SHALL accept the full syntactic range for all objects in all 833 MANDATORY groups and all MANDATORY attributes that are required to be 834 implemented by an agent according to Section 3.1.2 and SHALL either 835 present them to the user or ignore them. 837 2.SHALL accept the full syntactic range for all attributes, including 838 enum and bit values specified in this specification and additional 839 ones that may be registered with IANA and SHALL either present them 840 to the user or ignore them. In particular, a conforming job 841 monitoring application SHALL not malfunction when receiving any 842 standard or registered enum or bit values. See Section 3.6 entitled 843 "IANA Considerations". 845 3.SHALL NOT fail when operating with agents that materialize attributes 846 after the job has been submitted, as opposed to when the job is 847 submitted. 849 4.SHALL, if it supports a time attribute, accept either form of the 850 time attribute, since agents are free to implement either time form. 852 3.2 The Job Tables and the Oldest Active and Newest Active Indexes 854 The jmJobTable and jmAttributeTable contain objects and attributes, 855 respectively, for each job in a job set. These first two indexes are: 857 1.jmGeneralJobSetIndex - which job set 859 2.jmJobIndex - which job in the job set 860 Job Monitoring MIB, V0.83 July 14, 1997 862 In order for a monitoring application to quickly find that active jobs 863 (jobs in the pending, processing, or processingStopped states), the MIB 864 contains two indexes: 866 1.jmGeneralOldestActiveJobIndex - the index of the active job that 867 has been in the tables the longest. 869 2.jmGeneralNewestActiveJobIndex - the index of the active job that 870 has been most recently added to the tables. 872 When a new job is accepted by the server or device that the agent is 873 providing access to , the agent SHALL assign the next available value to 874 the job's jmJobIndex that is used for storing job information in the 875 jmJobTable and the jmAttributeTable. If the value would exceed the 876 implementation-defined maximum value for jmJobIndex, the agent SHALL set 877 the value back to 1, i.e., 'wrap' around to the beginning of the job 878 tables. 880 It is recommended that the largest value for jmJobIndex be much larger 881 than the maximum number of jobs that the implementation can contain at a 882 single time, so as to minimize the pre-mature re-use of jmJobIndex value 883 for a newer job while clients retain the same 'stale' value for an older 884 job. 886 Each time a new job is accepted by the server or device that the agent 887 is providing access to AND that job is to be 'active' (pending, 888 processing, or processingStopped, but not pendingHeld), the agent SHALL 889 copy the value of the job's jmJobIndex to the 890 jmGeneralNewestActiveJobIndex object. If the new job is to be 891 'inactive' (pendingHeld state), the agent SHALL not change the value of 892 jmGeneralNewestActiveJobIndex object. 894 When a job transitions from one of the 'active' states (pending, 895 processing, processingStopped) to one of the 'inactive' states 896 (pendingHeld, completed, canceled, or aborted), with a jmJobIndex value 897 that matches the jmGeneralOldestActiveJobIndex object, the agent SHALL 898 advance (or wrap) the value to the next oldest 'active' job, if any. 900 Whenever a job changes from 'inactive' to 'active' (from pendingHeld to 901 pending or processing), the agent SHALL update the value of either the 902 jmGeneralOldestActiveJobIndex or the jmGeneralNewestActiveJobIndex 903 objects, or both, if the job's jmJobIndex value is outside the range 904 between jmGeneralOldestActiveJobIndex and jmGeneralNewestActiveJobIndex. 906 When all jobs become 'inactive', i.e., enter the pendingHeld, completed, 907 canceled, or aborted states, the agent SHALL set the value of both the 908 jmGeneralOldestActiveJobIndex and jmGeneralNewestActiveJobIndex objects 909 to 0. 911 Job Monitoring MIB, V0.83 July 14, 1997 913 NOTE - Applications that wish to efficiently access all of the active 914 jobs MAY use jmGeneralOldestActiveJobIndex value to start with the 915 oldest active job and continue until they reach the index value equal to 916 jmGeneralNewestActiveJobIndex, skipping over any pendingHeld, completed, 917 canceled, or aborted jobs that might intervene. 919 If an application detects that the jmGeneralNewestActiveJobIndex is 920 smaller than jmGeneralOldestActiveJobIndex, the job index has wrapped. 921 In this case, when the application detects that the returned OID is in a 922 different MIB (Get Next has moved to the next MIB in the agent), the 923 application SHALL start over at 1 and continue the GetNext operations to 924 find the rest of the active jobs. 926 When the server or device is power-cycled, the agent SHALL remember the 927 next jmJobIndex value to be assigned, so that new jobs are not assigned 928 the same jmJobIndex as recent jobs before the power cycle. 930 3.3 The Attribute Mechanism 932 Attributes are similar to information objects, except that attributes 933 are identified by an enum, instead of an OID, so that attributes may be 934 registered without requiring a new MIB. Also an implementation that 935 does not have the functionality represented by the attribute can omit 936 the attribute entirely, rather than having to return a distinguished 937 value. The agent is free to materialize an attribute in the 938 jmAttributeTable as soon as the agent is aware of the value of the 939 attribute. 941 The agent materializes job attributes in a four-indexed 942 jmAttributeTable: 944 1.jmGeneralJobSetIndex - which job set 946 2.jmJobIndex - which job in the job set 948 3.jmAttributeTypeIndex - which attribute 950 4.jmAttributeInstanceIndex - which attribute instance for those 951 attributes that can have multiple values per job. 953 Some attributes represent information about a job, such as a file-name, 954 a document-name, a submission-time or a completion time. Other 955 attributes represent resources required, e.g., a medium or a colorant, 956 etc. to process the job before the job starts processing OR to indicate 957 the amount of the resource consumed during and after processing, e.g., 958 pages completed or impressions completed. If both a required and a 959 consumed value of a resource is needed, this specification assigns two 960 separate attribute enums in the textual convention. 962 Job Monitoring MIB, V0.83 July 14, 1997 964 NOTE - The table of contents lists all the attributes in order. This 965 order is the order of enum assignments which is the order that the SNMP 966 GetNext operation returns attributes. Most attributes apply to all 967 three configurations covered by this MIB specification (see section 2.1 968 entitled "System Configurations for the Job Monitoring MIB"). Those 969 attribute that apply to a particular configuration are indicated as 970 'Configuration n:' and SHALL NOT be used with other configurations. 972 3.3.1 Conformance of Attribute Implementation 974 An agent SHALL implement any attribute if (1) the server or device 975 supports the functionality represented by the attribute and (2) the 976 information is available to the agent. The agent MAY create the 977 attribute row in the jmAttributeTable when the information is available 978 or MAY create the row earlier with the designated 'unknown' value 979 appropriate for that attribute. See next section. 981 If the server or device does not implement or does not provide access to 982 the information about an attribute, the agent SHOULD NOT create the 983 corresponding row in the jmAttributeTable. 985 3.3.2 Useful, 'Unknown', and 'Other' Values for Objects and Attributes 987 Some attributes have a 'useful' INTEGER32 value, some have a 'useful' 988 OCTET STRING value, some MAY have either or both depending on 989 implementation, and some MUST have both. See the JmAttributeTypeTC 990 textual convention for the specification of each attribute. 992 SNMP requires that if an object cannot be implemented because its values 993 cannot be accessed, then a compliant agent SHALL return an SNMP error in 994 SNMPv1 or an exception value in SNMPv2. However, this MIB has been 995 designed so that 'all' objects can and SHALL be implemented by an agent, 996 so that neither the SNMPv1 error nor the SNMPv2 exception value SHALL be 997 generated by the agent. This MIB has also been designed so that when an 998 agent materializes an attribute, the agent SHALL materialize a row 999 consisting of both the jmAttributeValueAsInteger and 1000 jmAttributeValueAsOctets objects. 1002 In general, values for objects and attributes have been chosen so that a 1003 management application will be able to determine whether a 'useful', 1004 'unknown', or 'other' value is available. When a useful value is not 1005 available for an object that agent SHALL return a zero-length string for 1006 octet strings, the value 'unknown(2)' for enums, a '0' value for an 1007 object that represents an index in another table, and a value '-2' for 1008 counting integers. 1010 Since each attribute is represented by a row consisting of both the 1011 jmAttributeValueAsInteger and jmAttributeValueAsOctets MANDATORY 1012 Job Monitoring MIB, V0.83 July 14, 1997 1014 objects, SNMP requires that the agent SHALL always create an attribute 1015 row with both objects specified. However, for most attributes the agent 1016 SHALL return a "useful" value for one of the objects and SHALL return 1017 the 'other' value for the other object. For integer only attributes, 1018 the agent SHALL always return a zero-length string value for the 1019 jmAttributeValueAsOctets object. For octet string only attributes, the 1020 agent SHALL always return a '-1' value for the jmAttributeValueAsInteger 1021 object. 1023 3.3.3 Data Sub-types and Attribute Naming Conventions 1025 Many attributes are sub-typed to give a more specific data sub-type than 1026 Integer32 or OCTET STRING. The data sub-type of each attribute is 1027 indicated on the first line(s) of the description. Some attributes have 1028 several different data sub-type representations. When an attribute has 1029 both an Integer32 data sub-type and an OCTET STRING data sub-type, the 1030 attribute can be represented in a single row in the jmAttributeTable. 1031 In this case, the data sub-type name is not included as the last part of 1032 the name of the attribute, e.g., documentFormat(38) which is both an 1033 enum and/or a name. When the data sub-types cannot be represented by a 1034 single row in the jmAttributeTable, each such representation is 1035 considered a separate attribute and is assigned a separate name and enum 1036 value. For these attributes, the name of the data sub-type is the last 1037 part of the name of the attribute: Name, Index, DateAndTime, TimeStamp, 1038 etc. For example, documentFormatIndex(37) in an index. 1040 NOTE: The Table of Contents also lists the data sub-type and/or data 1041 sub-types of each attribute, using the textual-convention name when such 1042 is defined. The following abbreviations are used in the Table of 1043 Contents as shown: 1044 'Int32(-2..)' Integer32(-2..2147483647) 1045 'Int32(0..)' Integer32(0..2147483647) 1046 'Int32(1..)' Integer32(1..2147483647) 1047 'Int32(m..n)' For all other Integer ranges, the lower 1048 and upper bound of the range is 1049 indicated. 1050 'Octets63' OCTET STRING(SIZE(0..63)) 1051 'Octets(m..n)' For all other OCTET STRING ranges, the 1052 exact range is indicated. 1054 3.3.4 Single-Value (Row) Versus Multi-Value (MULTI-ROW) Attributes 1056 Most attributes SHALL have only one row per job. However, a few 1057 attributes can have multiple values per job or even per document, where 1058 each value is a separate row in the jmAttributeTable. Unless indicated 1059 with 'MULTI-ROW:' in JmAttributeTypeTC, an agent SHALL ensure that each 1060 attribute occurs only once in the jmAttributeTable for a job. 1061 Attributes that are permitted to appear multiple times in the 1062 Job Monitoring MIB, V0.83 July 14, 1997 1064 jmAttributeTable for a job are indicated with 'MULTI-ROW:' in their 1065 specification in the JmAttributeTypeTC. However, such 'MULTI-ROW' 1066 attributes SHALL not contain duplicates for 'intensive' (as opposed to 1067 'extensive') attributes. 1069 For example, a job or document(s) may use multiple PDLs. However, each 1070 distinct documentFormat attribute value SHALL appear in the 1071 jmAttributeTable only once for a job since the interpreter language is 1072 an intensive attribute, even though the job has a number of documents 1073 that all use the same PDL. 1075 As another example of an intensive attribute that can have multiple 1076 entries, if a document or job uses multiple types of media, there SHALL 1077 be only one row in the jmAttributeTable for each media type, not one row 1078 for each document that uses that medium type. 1080 On the other hand, if a job contains two documents of the same name, 1081 there can be separate rows for the documentName attribute with the same 1082 name, since a document name is an extensive attribute. The 1083 specification indicates that the values NEED NOT be unique for such 1084 'MULTI-ROW: attributes' 1086 3.3.5 Requested Attributes 1088 A number of attributes record requirements for the job. Such attribute 1089 names end with the word 'Requested'. In the interests of brevity, the 1090 phrase 'requested' SHALL mean: (1) requested by the client (or 1091 intervening server) in the job submission protocol that submitted the 1092 job and MAY also mean (2) embedded in the submitted document data, 1093 and/or (3) defaulted by the recipient device or server with the same 1094 semantics as if the requester had supplied, depending on implementation. 1096 3.3.6 Consumption Attributes 1098 A number of attributes record consumption. Such attribute names end 1099 with the word 'Completed' or 'Consumed'. If the job has not yet 1100 consumed what that resource is metering, the agent either: (1) SHALL 1101 return the value 0 or (2) SHALL not add this attribute to the 1102 jmAttributeTable until the consumption begins. In the interests of 1103 brevity, the semantics for 0 is specified once here and is not repeated 1104 for each consumptive attribute specification. 1106 3.3.7 Index Value Attributes 1108 A number of attributes are indexes in other tables. Such attribute 1109 names end with the word 'Index'. If the agent has not (yet) assigned an 1110 index value for a particular index attribute for a job, the agent SHALL 1111 either: (1) return the value 0 or (2) not add this attribute to the 1112 Job Monitoring MIB, V0.83 July 14, 1997 1114 jmAttributeTable until the index value is assigned. In the interests of 1115 brevity, the semantics for 0 is specified once here and is not repeated 1116 for each index attribute specification. 1118 3.4 Job Identification 1120 There are a number of attributes that permit a user, operator or system 1121 administrator to identify jobs of interest, such as jobName, 1122 jobOriginatingHost, etc. In addition, there is a Job Submission ID 1123 object that allows a monitoring application to quickly locate and 1124 identify a particular job of interest that was submitted from a 1125 particular client by the user invoking the monitoring application. The 1126 Job Monitoring MIB needs to provide for identification of the job at 1127 both sides of the job submission process. The primary identification 1128 point is the client side. The Job Submission ID allows the monitoring 1129 application to identify the job of interest from all the jobs currently 1130 "known" by the server or device. The Job Submission ID can be assigned 1131 by either the client's local system or a downstream server or device. 1132 The point of assignment depends on the job submission protocol in use. 1134 The server/device-side identifier, called the jmJobIndex object, SHALL 1135 be assigned by the SNMP Job Monitoring MIB agent when the server or 1136 device accepts the jobs from submitting clients. The jmJobIndex object 1137 allows the interested party to obtain all objects desired that relate to 1138 this job. The MIB provides a mapping table that maps each Job 1139 Submission ID (generated by the client) to the corresponding jmJobIndex 1140 value generated by the agent, so that an application can determine the 1141 correct value for the jmJobIndex value for the job of interest in a 1142 single Get operation, given the Job Submission ID. See the 1143 jmJobIDGroup. 1145 The jobName attribute provides a name that the user supplies as a job 1146 attribute with the job. The jobName attribute is not necessarily 1147 unique, even for one user, let alone across users. 1149 3.5 Internationalization Considerations 1151 There are a number of objects in this MIB that are represented as coded 1152 character sets with a data type of OCTET STRING. Most of the objects 1153 are supplied as job attributes by the client that submits the job to the 1154 server or device and so are represented in the coded character set 1155 specified by that client. 1157 For simplicity, this specification assumes that the clients, job 1158 monitoring applications, servers, and devices are all running in the 1159 same locale, including locales that use two-octet coded character sets, 1160 such as ISO 10646 (Unicode). Job monitoring applications are expected 1161 to understand the coded character set of the client (and job), server, 1162 Job Monitoring MIB, V0.83 July 14, 1997 1164 or device. No special means is provided for the monitor to discover the 1165 coded character set used by jobs or by the server or device. This 1166 specification does not contain an object that indicates what locale the 1167 server or device is running in, let alone contain an object to control 1168 what locale the agent is to use to represent coded character set 1169 objects. 1171 This MIB also contains objects that are represented using the 1172 DateAndTime textual convention from SMIv2 [SMIv2]. The job management 1173 application SHALL display such objects in the locale of the user running 1174 the monitoring application. 1176 3.6 IANA Considerations 1178 During the development of this standard, the Printer Working Group (PWG) 1179 working with IANA will register additional enums while the standard is 1180 in the proposed and draft states according to the procedures described 1181 in this section. IANA will handle registration of additional enums 1182 after this standard is approved in cooperation with an IANA-appointed 1183 registration editor from the PWG according to the procedures described 1184 in this section: 1186 3.6.1 IANA Registration of enums 1188 This specification uses textual conventions to define enumerated values 1189 (enums) and bit values. Enumerations (enums) and bit values are sets of 1190 symbolic values defined for use with one or more objects or attributes. 1191 All enumeration sets and bit value sets are assigned a symbolic data 1192 type name (textual convention). As a convention the symbolic name ends 1193 in "TC" for textual convention. These enumerations are defined at the 1194 beginning of the MIB module specification. 1196 This working group has defined several type of enumerations for use in 1197 the Job Monitoring MIB and the Printer MIB[print-mib]. These types 1198 differ in the method employed to control the addition of new 1199 enumerations. Throughout this document, references to "type n enum", 1200 where n can be 1, 2 or 3 can be found in the various tables. The 1201 definitions of these types of enumerations are: 1203 3.6.1.1 Type 1 enumerations 1205 Type 1 enumeration: All the values are defined in the Job Monitoring 1206 MIB specification (RFC for the Job Monitoring MIB). Additional 1207 enumerated values require a new RFC. 1209 There are no type 1 enums in the current draft. 1211 Job Monitoring MIB, V0.83 July 14, 1997 1213 3.6.1.2 Type 2 enumerations 1215 Type 2 enumeration: An initial set of values are defined in the Job 1216 Monitoring MIB specification. Additional enumerated values are 1217 registered after review by this working group. The initial versions of 1218 the MIB will contain the values registered so far. After the MIB is 1219 approved, additional values will be registered through IANA after 1220 approval by this working group. 1222 The following type 2 enums are contained in the current draft : 1223 1.JmTimeStampTC 1224 2.JmFinishingTC [same enum values as IPP "finishing" attribute] 1225 3.JmPrintQualityTC [same enum values as IPP "print-quality" 1226 attribute] 1227 4.JmTonerEconomyTC 1228 5.JmPrinterResolutionTC [same enum values as IPP "printer-resolution" 1229 attribute] 1230 6.JmMediumTypeTC 1231 7.JmJobSubmissionTypeTC 1232 8.JmJobStateTC [same enum values as IPP "job-state" attribute] 1233 9.JmAttributeTypeTC 1235 Those textual conventions that are labeled "[same enum values as IPP]" 1236 have the same enum values as the indicated IPP Job attribute. When IPP 1237 registers additional values, those values shall be simultaneously 1238 registered by IANA for use with the Job Monitoring MIB textual- 1239 convention, so that the enum values stay in lock step between the IPP 1240 protocol and the Job Monitoring MIB. 1242 3.6.1.3 Type 3 enumeration 1244 Type 3 enumeration: An initial set of values are defined in the Job 1245 Monitoring MIB specification. Additional enumerated values are 1246 registered without working group review. The initial versions of the 1247 MIB will contain the values registered so far. After the MIB is 1248 approved, additional values will be registered through IANA without 1249 approval by this working group. 1251 There are no type 3 enums in the current draft. 1253 3.6.2 IANA Registration of type 2 bit values 1255 This draft contains the following type 2 bit value textual-conventions: 1256 1.JmJobServiceTypesTC 1257 2.JmJobStateReasons1TC 1258 3.JmJobStateReasons2TC 1259 4.JmJobStateReasons3TC 1260 5.JmJobStateReasons4TC 1261 Job Monitoring MIB, V0.83 July 14, 1997 1263 These textual-conventions are defined as bits in an Integer so that they 1264 can be used with SNMPv1 SMI. The jobStateReasonsN (N=1..4) attributes 1265 are defined as bit values using the corresponding JmJobStateReasonsNTC 1266 textual-conventions. 1268 The registration of JmJobServiceTypesTC and JmJobStateReasonsNTC bit 1269 values SHALL follow the procedures for a type 2 enum as specified in 1270 Section 3.6.1.2. 1272 3.6.3 IANA Registration of Job Submission Id Formats 1274 In addition to enums and bit values, this specification assigns a single 1275 ASCII digit or letter to various job submission ID formats. See the 1276 JmJobSubmissionIDTypeTC textual-convention and the object. The 1277 registration of jmJobSubmissionID format numbers SHALL follow the 1278 procedures for a type 2 enum as specified in Section 3.6.1.2. 1280 3.6.4 IANA Registration of MIME types/sub-types for document-formats 1282 The documentFormat(38) attribute has MIME type/sub-type values for 1283 indicating document formats which IANA registers as "media type" names. 1284 The values of the documentFormat(38) attribute are the same as the 1285 corresponding Internet Printing Protocol (IPP) "document-format" Job 1286 attribute values [ipp-model]. 1288 3.7 Security Considerations 1290 3.7.1 Read-Write objects 1292 All objects are read-only, greatly simplifying the security 1293 considerations. If another MIB augments this MIB, that MIB might accept 1294 SNMP Write operations to objects in that MIB whose effect is to modify 1295 the values of read-only objects in this MIB. However, that MIB SHALL 1296 have to support the required access control in order to achieve 1297 security, not this MIB. 1299 3.7.2 Read-Only Objects In Other User's Jobs 1301 The security policy of some sites MAY be that unprivileged users can 1302 only get the objects from jobs that they submitted, plus a few minimal 1303 objects from other jobs, such as the jmJobKOctetsRequested and 1304 jmJobKOctetsCompleted objects, so that a user can tell how busy a 1305 printer is. Other sites MAY allow all unprivileged users to see all 1306 objects of all jobs. This MIB does not require, nor does it specify 1307 how, such restrictions would be implemented. A monitoring application 1308 SHOULD enforce the site security policy with respect to returning 1309 information to an unprivileged end user that is using the monitoring 1310 Job Monitoring MIB, V0.83 July 14, 1997 1312 application to monitor jobs that do not belong to that user, i.e., the 1313 jmJobOwner object in the jmJobTable does not match the user's user name. 1315 An operator is a privileged user that would be able to see all objects 1316 of all jobs, independent of the policy for unprivileged users. 1318 3.8 Notifications 1320 This MIB does not specify any notifications. For simplicity, management 1321 applications are expected to poll for status. The 1322 jmGeneralJobPersistence and jmGeneralAttributePersistence objects assist 1323 an application to determine the polling rate. The resulting network 1324 traffic is not expected to be significant. 1326 4. MIB specification 1328 The following pages constitute the actual Job Monitoring MIB. 1330 Job Monitoring MIB, V0.83 July 14, 1997 1332 Job-Monitoring-MIB DEFINITIONS ::= BEGIN 1334 IMPORTS 1335 MODULE-IDENTITY, OBJECT-TYPE, experimental, 1336 Integer32 FROM SNMPv2-SMI 1337 TEXTUAL-CONVENTION FROM SNMPv2-TC 1338 MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; 1339 -- The following textual-conventions are needed 1340 -- to implement certain attributes, but are not 1341 -- needed to compile this MIB. They are 1342 -- provided here for convenience: 1343 -- DateAndTime FROM SNMPv2-TC 1344 -- PrtInterpreterLangFamilyTC FROM Printer-MIB 1346 -- Use the experimental (54) OID assigned to the Printer MIB[print-mib] 1347 -- before it was published as RFC 1759. 1348 -- Upon publication of the Job Monitoring MIB as an RFC, delete this 1349 -- comment and the line following this comment and change the 1350 -- reference of { temp 105 } (below) to { mib-2 X }. 1351 -- This will result in changing: 1352 -- 1 3 6 1 3 54 jobmonMIB(105) to: 1353 -- 1 3 6 1 2 1 jobmonMIB(X) 1354 -- This will make it easier to translate prototypes to 1355 -- the standard namespace because the lengths of the OIDs won't 1356 -- change. 1357 temp OBJECT IDENTIFIER ::= { experimental 54 } 1359 jobmonMIB MODULE-IDENTITY 1360 LAST-UPDATED "9707140000Z" 1361 ORGANIZATION "IETF Printer MIB Working Group" 1362 CONTACT-INFO 1363 "Tom Hastings 1364 Postal: Xerox Corp. 1365 Mail stop ESAE-231 1366 701 S. Aviation Blvd. 1367 El Segundo, CA 90245 1369 Tel: (301)333-6413 1370 Fax: (301)333-5514 1371 E-mail: hastings@cp10.es.xerox.com 1373 Send comments to the printmib WG using the Job Monitoring 1374 Project (JMP) Mailing List: jmp@pwg.org 1376 To learn how to subscribe to the JMP mailing list, 1377 send email to: jmp-request@pwg.org 1379 For further information, access the PWG web page under 'JMP': 1381 Job Monitoring MIB, V0.83 July 14, 1997 1383 http://www.pwg.org/" 1384 DESCRIPTION 1385 "The MIB module for monitoring job in servers, printers, and 1386 other devices. 1388 File: draft-ietf-printmib-job-monitor-02.txt 1389 Version: 0.83" 1390 ::= { temp 105 } 1392 -- Textual conventions for this MIB module 1394 JmTimeStampTC ::= TEXTUAL-CONVENTION 1395 STATUS current 1396 DESCRIPTION 1397 "The simple time at which an event took place. The units SHALL 1398 be in seconds since the system was booted. 1400 NOTE - JmTimeStampTC is defined in units of seconds, rather than 1401 100ths of seconds, so as to be simpler for agents to implement 1402 (even if they have to implement the 100ths of a second to comply 1403 with implementing sysUpTime in MIB-II[mib-II].) 1405 NOTE - JmTimeStampTC is defined as an Integer32 so that it can 1406 be used as a value of an attribute, i.e., as a value of the 1407 jmAttributeValueAsInteger object. The TimeStamp textual- 1408 convention defined in SMNPv2-TC is defined as an APPLICATION 3 1409 IMPLICIT INTEGER tag, not an Integer32, so cannot be used in 1410 this MIB as one of the values of jmAttributeValueAsInteger." 1411 SYNTAX INTEGER(0..2147483647) 1413 JmJobSourcePlatformTypeTC ::= TEXTUAL-CONVENTION 1414 STATUS current 1415 DESCRIPTION 1416 "The source platform type that can submit jobs to servers or 1417 devices in any of the 3 configurations." 1418 REFERENCE 1419 "This is a type 2 enumeration. See Section 3.6.1.2." 1420 SYNTAX INTEGER { 1421 other(1), 1422 unknown(2), 1423 Job Monitoring MIB, V0.83 July 14, 1997 1425 sptUNIX(3), -- UNIX(tm) 1426 sptOS2(4), -- OS/2 1427 sptPCDOS(5), -- DOS 1428 sptNT(6), -- NT 1429 sptMVS(7), -- MVS 1430 sptVM(8), -- VM 1431 sptOS400(9), -- OS/400 1432 sptVMS(10), -- VMS 1433 sptWindows95(11), -- Windows95 1434 sptNetWare(33) -- NetWare 1435 } 1437 JmFinishingTC ::= TEXTUAL-CONVENTION 1438 STATUS current 1439 DESCRIPTION 1440 "The type of finishing operation. 1442 These values are the same as the enum values of the IPP 1443 'finishings' attribute. See Section 3.6.1.2. 1445 other(1), 1446 Some other finishing operation besides one of the specified 1447 or registered values. 1449 unknown(2), 1450 The finishing is unknown. 1452 none(3), 1453 Perform no finishing. 1455 staple(4), 1456 Bind the document(s) with one or more staples. The exact 1457 number and placement of the staples is site-defined. 1459 stapleTopLeft(5), 1460 Place one or more staples on the top left corner of the 1461 document(s). 1463 stapleBottomLeft(6), 1464 Place one or more staples on the bottom left corner of the 1465 document(s). 1467 Job Monitoring MIB, V0.83 July 14, 1997 1469 stapleTopRight(7), 1470 Place one or more staples on the top right corner of the 1471 document(s). 1473 stapleBottomRight(8), 1474 Place one or more staples on the bottom right corner of the 1475 document(s). 1477 saddleStitch(9), 1478 Bind the document(s) with one or more staples (wire 1479 stitches) along the middle fold. The exact number and 1480 placement of the stitches is site-defined. 1482 edgeStitch(10), 1483 Bind the document(s) with one or more staples (wire 1484 stitches) along one edge. The exact number and placement of 1485 the staples is site-defined. 1487 punch(11), 1488 This value indicates that holes are required in the finished 1489 document. The exact number and placement of the holes is 1490 site-defined The punch specification MAY be satisfied (in a 1491 site- and implementation-specific manner) either by 1492 drilling/punching, or by substituting pre-drilled media. 1494 cover(12), 1495 This value is specified when it is desired to select a non- 1496 printed (or pre-printed) cover for the document. This does 1497 not supplant the specification of a printed cover (on cover 1498 stock medium) by the document itself. 1500 bind(13) 1501 This value indicates that a binding is to be applied to the 1502 document; the type and placement of the binding is product- 1503 specific." 1504 REFERENCE 1505 "This is a type 2 enumeration. See Section 3.6.1.2." 1506 SYNTAX INTEGER { 1507 other(1), 1508 unknown(2), 1509 none(3), 1510 staple(4), 1511 stapleTopLeft(5), 1512 stapleBottomLeft(6), 1513 stapleTopRight(7), 1514 stapleBottomRight(8), 1515 saddleStitch(9), 1516 edgeStitch(10), 1517 Job Monitoring MIB, V0.83 July 14, 1997 1519 punch(11), 1520 cover(12), 1521 bind(13) 1522 } 1524 JmPrintQualityTC ::= TEXTUAL-CONVENTION 1525 STATUS current 1526 DESCRIPTION 1527 "Print quality settings. 1529 These values are the same as the enum values of the IPP 'print- 1530 quality' attribute. See Section 3.6.1.2." 1531 REFERENCE 1532 "This is a type 2 enumeration. See Section 3.6.1.2." 1533 SYNTAX INTEGER { 1534 other(1), -- Not one of the specified or registered 1535 -- values. 1536 unknown(2), -- The actual value is unknown. 1537 draft(3), -- Lowest quality available on the printer. 1538 normal(4), -- Normal or intermediate quality on the 1539 -- printer. 1540 high(5) -- Highest quality available on the printer. 1541 } 1543 JmPrinterResolutionTC ::= TEXTUAL-CONVENTION 1544 STATUS current 1545 DESCRIPTION 1546 "Printer resolutions. 1548 The values represent single integer resolutions or pairs of 1549 integer resolutions. The latter are to specify the resolution 1550 when the x and y dimensions differ. When two integers are 1551 specified, the first is in the x direction, i.e., in the 1552 direction of the shortest dimension of the medium, so that the 1553 value is independent of whether the printer feeds long edge or 1554 short edge first. 1556 These values are the same as the enum values of the IPP 1557 'printer-resolution' attribute. See Section 3.6.1.2." 1558 Job Monitoring MIB, V0.83 July 14, 1997 1560 REFERENCE 1561 "This is a type 2 enumeration. See Section 3.6.1.2." 1562 SYNTAX INTEGER { 1563 other(1), -- Not one of the specified or registered 1564 -- values. 1565 unknown(2), -- The actual value is unknown. 1566 normal(3), -- Normal resolution. 1567 res100(4), -- 100 x 100 dpi 1568 res200(5), -- 200 x 200 dpi 1569 res240(6), -- 240 x 240 dpi 1570 res300(7), -- 300 x 300 dpi 1571 res360(8), -- 360 x 360 dpi 1572 res400(9), -- 400 x 400 dpi 1573 res600(10), -- 600 x 600 dpi 1574 res720(11), -- 720 x 720 dpi 1575 res800(12), -- 800 x 800 dpi 1576 res1200(13), -- 1200 x 1200 dpi 1577 res1440(14), -- 1440 x 1440 dpi 1578 res1600(15), -- 1600 x 1600 dpi 1579 res1800(16), -- 1800 x 1800 dpi 1581 -- future equal resolutions will be added 1582 -- here, the enum values will not be re- 1583 -- sorted or re-assigned: 1585 res100x200(100), -- 100 x 200 dpi 1586 res200x100(101), -- 200 x 100 dpi 1587 res300x600(102), -- 300 x 600 dpi 1588 res600x300(103), -- 600 x 300 dpi 1589 res360x720(104), -- 360 x 720 dpi 1590 res720x360(105), -- 720 x 360 dpi 1591 res400x800(106), -- 400 x 800 dpi 1592 res800x400(107), -- 800 x 400 dpi 1593 res600x1200(108), -- 600 x 1200 dpi 1594 res1200x600(109), -- 1200 x 600 dpi 1595 res720x1440(110), -- 720 x 1440 dpi 1596 res1440x720(111), -- 1440 x 720 dpi 1597 res1800x600(112) -- 1800 x 600 dpi 1599 -- future unequal resolutions will be 1600 -- added here, the enum values will not 1601 -- be re-sorted or re-assigned: 1602 } 1603 Job Monitoring MIB, V0.83 July 14, 1997 1605 JmTonerEconomyTC ::= TEXTUAL-CONVENTION 1606 STATUS current 1607 DESCRIPTION 1608 "Toner economy settings." 1609 REFERENCE 1610 "This is a type 2 enumeration. See Section 3.6.1.2." 1611 SYNTAX INTEGER { 1612 unknown(2), -- unknown. 1613 off(3), -- Off. Normal. Use full toner. 1614 on(4) -- On. Use less toner than normal. 1615 } 1617 JmBooleanTC ::= TEXTUAL-CONVENTION 1618 STATUS current 1619 DESCRIPTION 1620 "Boolean true or false value." 1621 REFERENCE 1622 "This is a type 2 enumeration. See Section 3.6.1.2." 1623 SYNTAX INTEGER { 1624 unknown(2), -- unknown. 1625 false(3), -- FALSE. 1626 true(4) -- TRUE. 1627 } 1629 JmMediumTypeTC ::= TEXTUAL-CONVENTION 1630 STATUS current 1631 DESCRIPTION 1632 "Identifies the type of medium. 1634 other(1), 1635 The type is neither one of the values listed in this 1636 specification nor a registered value. 1638 unknown(2), 1639 The type is not known. 1641 Job Monitoring MIB, V0.83 July 14, 1997 1643 stationery(3), 1644 Separately cut sheets of an opaque material. 1646 transparency(4), 1647 Separately cut sheets of a transparent material. 1649 envelope(5), 1650 Envelopes that can be used for conventional mailing 1651 purposes. 1653 envelopePlain(6), 1654 Envelopes that are not preprinted and have no windows. 1656 envelopeWindow(7), 1657 Envelopes that have windows for addressing purposes. 1659 continuousLong(8), 1660 Continuously connected sheets of an opaque material 1661 connected along the long edge. 1663 continuousShort(9), 1664 Continuously connected sheets of an opaque material 1665 connected along the short edge. 1667 tabStock(10), 1668 Media with tabs. 1670 multiPartForm(11), 1671 Form medium composed of multiple layers not pre-attached to 1672 one another; each sheet MAY be drawn separately from an 1673 input source. 1675 labels(12), 1676 Label-stock. 1678 multiLayer(13) 1679 Form medium composed of multiple layers which are pre- 1680 attached to one another, e.g. for use with impact printers." 1681 REFERENCE 1682 "This is a type 2 enumeration. See Section 3.6.1.2." 1683 SYNTAX INTEGER { 1684 other(1), 1685 unknown(2), 1686 stationery(3), 1687 transparency(4), 1688 envelope(5), 1689 envelopePlain(6), 1690 envelopeWindow(7), 1691 Job Monitoring MIB, V0.83 July 14, 1997 1693 continuousLong(8), 1694 continuousShort(9), 1695 tabStock(10), 1696 multiPartForm(11), 1697 labels(12), 1698 multiLayer(13) 1699 } 1701 JmJobSubmissionTypeTC ::= TEXTUAL-CONVENTION 1702 STATUS current 1703 DESCRIPTION 1704 "Identifies the format type of a job submission ID. 1706 The ASCII characters '0-9', 'A-Z', and 'a-z' are assigned in 1707 order giving 62 possible formats. 1709 Each job submission ID is a fixed-length, 48-octet printable 1710 ASCII coded character string, consisting of the following 1711 fields: 1712 octet 1 The format letter. 1713 octets 2-40 A 39-character, ASCII trailing SPACE filled 1714 field specified by the format letter, if the 1715 data is less than 39 ASCII characters. 1716 octets 41-48 A sequential or random number to make the ID 1717 quasi-unique. 1719 If the client does not supply a job submission ID in the job 1720 submission protocol, then the server SHALL assign a job 1721 submission ID using any of the standard formats and adding the 1722 final 8 octets to distinguish the ID from others submitted from 1723 the same client. 1725 The format values registered so far are: 1727 Format 1728 Letter Description 1729 ------ ------------ 1730 '0' octets 2-40: last 39 bytes of the jmJobOwner 1731 object. 1732 octets 41-48: 8-decimal-digit sequential number 1734 '1' octets 2-40: last 39 bytes of the jobName attribute. 1735 octets 41-48: 8-decimal-digit random number 1737 Job Monitoring MIB, V0.83 July 14, 1997 1739 '2' octets 2-40: Client MAC address: in hexadecimal 1740 with each nibble of the 6 octet address being 1741 '0'-'9' or 'A' - 'F' (uppercase only). 1742 Most significant octet first. 1743 octets 41-48: 8-decimal-digit sequential number 1745 '3' octets 2-40: last 39 bytes of the client URL 1746 [URI-spec]. 1747 octets 41-48: 8-decimal-digit sequential number 1749 '4' octets 2-40: last 39 bytes of the URI [URI-spec] 1750 assigned by the server or device to the job when 1751 the job was submitted for processing. 1752 octets 41-48: 8-decimal-digit sequential number 1754 '5' octets 2-40: last 39 bytes of a user number, such 1755 as POSIX user number. 1756 octets 41-48: 8-decimal-digit sequential number 1758 '6' octets 2-40: last 39 bytes of the user account 1759 number. 1760 octets 41-48: 8-decimal-digit sequential number 1762 '7' octets 2-40: last 39 bytes of the DTMF incoming 1763 FAX routing number. 1764 octets 41-48: 8-decimal-digit sequential number 1766 NOTE - the job submission id is only intended to be unique 1767 between a limited set of clients for a limited duration of time, 1768 namely, for the life time of the job in the context of the 1769 server or device that is processing the job. Some of the 1770 formats include something that is unique per client and a random 1771 number so that the same job submitted by the same client will 1772 have a different job submission id. For other formats, where 1773 part of the id is guaranteed to be unique for each client, such 1774 as the MAC address or URL, a sequential number SHOULD suffice 1775 for each client (and may be easier for each client to manage). 1776 Therefore, the length of the job submission id has been selected 1777 to reduce the probability of collision to an extremely low 1778 number, but is not intended to be an absolute guarantee of 1779 uniqueness. None-the-less, collisions are remotely possible, 1780 but without bad consequences, since this MIB is intended to be 1781 used only for monitoring jobs, not for controlling and managing 1782 them." 1783 REFERENCE 1784 "This is like a type 2 enumeration. See section 3.6.3." 1785 SYNTAX OCTET STRING(SIZE(1)) -- ASCII "0"-"9", "A"-"Z", "a"-"z" 1786 Job Monitoring MIB, V0.83 July 14, 1997 1788 JmJobStateTC ::= TEXTUAL-CONVENTION 1789 STATUS current 1790 DESCRIPTION 1791 "The current state of the job (pending, processing, completed, 1792 etc.). 1794 The following figure shows the normal job state transitions: 1796 +----> canceled(7) 1797 / 1798 +---> pending(3) --------> processing(5) ------+------> completed(9) 1799 | ^ ^ \ 1800 --->+ | | +----> aborted(8) 1801 | v v / 1802 +---> pendingHeld(4) processingStopped(6) ---+ 1804 Figure 4 - Normal Job State Transitions 1806 Normally a job progresses from left to right. Other state 1807 transitions are unlikely, but are not forbidden. Not shown are 1808 the transitions to the canceled state from the pending, 1809 pendingHeld, processing, and processingStopped states. 1811 Jobs in the pending, processing, and processingStopped states 1812 are called 'active', while jobs in the pendingHeld, canceled, 1813 aborted, and completed are called 'inactive'. 1815 These values are the same as the enum values of the IPP 'job- 1816 state' job attribute. See Section 3.6.1.2. 1818 other(1), 1819 The job state is not one of the defined states. 1821 unknown(2), 1822 The job state is not known, or its state is indeterminate. 1824 pending(3), 1825 The job is a candidate to start processing, but is not yet 1826 processing. 1828 Job Monitoring MIB, V0.83 July 14, 1997 1830 pendingHeld(4), 1831 The job is not a candidate for processing for any number of 1832 reasons but will return to the pending state as soon as the 1833 reasons are no longer present. The job's jmJobStateReasons1 1834 object and/or jobStateReasonsN (N=2..4) attributes SHALL 1835 indicate why the job is no longer a candidate for 1836 processing. The reasons are represented as bits in the 1837 jmJobStateReasons1 object and/or jobStateReasonsN (N=2..4) 1838 attributes. See the JmJobStateReasonsNTC (N=1..4) textual 1839 convention for the specification of each reason. 1841 processing(5), 1842 Either: 1844 1. The job is using, or is attempting to use, one or more 1845 document transforms which include (1) purely software 1846 processes that are interpreting a PDL, and (2) hardware 1847 devices that are interpreting a PDL, making marks on a 1848 medium, and/or performing finishing, such as stapling, etc. 1850 OR 1852 2. (configuration 2) the server has made the job ready for 1853 printing, but the output device is not yet printing it, 1854 either because the job hasn't reached the output device or 1855 because the job is queued in the output device or some other 1856 spooler, awaiting the output device to print it. 1858 When the job is in the processing state, the entire job 1859 state includes the detailed status represented in the device 1860 MIB indicated by the hrDeviceIndex value of the job's 1861 physicalDevice attribute, if the agent implements such a 1862 device MIB. 1864 Implementations MAY, though they NEED NOT, include 1865 additional values in the job's jmJobStateReasons1 object to 1866 indicate the progress of the job, such as adding the 1867 jobPrinting value to indicate when the device is actually 1868 making marks on a medium. 1870 processingStopped(6), 1871 The job has stopped while processing for any number of 1872 reasons and will return to the processing state as soon as 1873 the reasons are no longer present. 1875 The job's jmJobStateReasons1 object and/or the job's 1876 jobStateReasonsN (N=2..4) attributes MAY indicate why the 1877 job has stopped processing. For example, if the output 1878 Job Monitoring MIB, V0.83 July 14, 1997 1880 device is stopped, the deviceStopped value MAY be included 1881 in the job's jmJobStateReasons1 object. 1883 NOTE - When an output device is stopped, the device usually 1884 indicates its condition in human readable form at the 1885 device. The management application can obtain more complete 1886 device status remotely by querying the appropriate device 1887 MIB using the job's deviceIndex attribute(s), if the agent 1888 implements such a device MIB 1890 canceled(7), 1891 A client has canceled the job and the job is either: (1) in 1892 the process of being terminated by the server or device or 1893 (2) has completed terminating. The job's jmJobStateReasons1 1894 object SHOULD contain either the canceledByUser or 1895 canceledByOperator value. 1897 aborted(8), 1898 The job has been aborted by the system, usually while the 1899 job was in the processing or processingStopped state. 1901 completed(9) 1902 The job has completed successfully or with warnings or 1903 errors after processing and all of the media have been 1904 successfully stacked in the appropriate output bin(s). The 1905 job's jmJobStateReasons1 object SHOULD contain one of: 1906 completedSuccessfully, completedWithWarnings, or 1907 completedWithErrors values." 1908 REFERENCE 1909 "This is a type 2 enumeration. See Section 3.6.1.2." 1910 SYNTAX INTEGER { 1911 other(1), 1912 unknown(2), 1913 pending(3), 1914 pendingHeld(4), 1915 processing(5), 1916 processingStopped(6), 1917 canceled(7), 1918 aborted(8), 1919 completed(9) 1920 } 1922 JmAttributeTypeTC ::= TEXTUAL-CONVENTION 1923 STATUS current 1924 DESCRIPTION 1925 "The type of the attribute which identifies the attribute. 1927 Job Monitoring MIB, V0.83 July 14, 1997 1929 In the following definitions of the enums, each description 1930 indicates whether the useful value of the attribute SHALL be 1931 represented using the jmAttributeValueAsInteger or the 1932 jmAttributeValueAsOctets objects by the initial tag: 'INTEGER:' 1933 or 'OCTETS:', respectively. 1935 Some attributes allow the agent implementer a choice of useful 1936 values of either an integer, an octets representation, or both, 1937 depending on implementation. These attributes are indicated 1938 with 'INTEGER:' AND/OR 'OCTETS:' tags. 1940 A very few attributes require both objects at the same time to 1941 represent a pair of useful values (see mediumConsumed(171)). 1942 These attributes are indicated with 'INTEGER:' AND 'OCTETS:' 1943 tags. See the jmAttributeGroup for the descriptions of these 1944 two MANDATORY objects. 1946 NOTE - The enum assignments are grouped logically with values 1947 assigned in groups of 20, so that additional values may be 1948 registered in the future and assigned a value that is part of 1949 their logical grouping. 1951 NOTE: No attribute name exceeds 31 characters. 1953 In the following descriptions of each attribute, the tags: 1954 'INTEGER:' or 'OCTETS:' specify whether the value SHALL be 1955 represented in the jmAttributeValueAsInteger or the 1956 jmAttributeValueAsOctets object, or both, respectively. 1958 The standard attribute types defined so far are: 1960 jmAttributeTypeIndex Datatype 1961 -------------------- -------- 1963 other(1), Integer32(-2..2147483647) 1964 AND/OR 1965 OCTET STRING(SIZE(0..63)) 1966 INTEGER: and/or OCTETS: An attribute that is not in the 1967 list and/or that has not been approved and registered with 1968 IANA. 1970 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1971 + Job State attributes 1972 + 1973 + The following attributes specify the state of a job. 1974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1975 Job Monitoring MIB, V0.83 July 14, 1997 1977 jobStateReasons2(3), JmJobStateReasons2TC 1978 INTEGER: Additional information about the job's current 1979 state that augments the jmJobState object. See the 1980 description under the JmJobStateReasons1TC textual- 1981 convention. 1983 jobStateReasons3(4), JmJobStateReasons3TC 1984 INTEGER: Additional information about the job's current 1985 state that augments the jmJobState object. See the 1986 description under JmJobStateReasons1TC textual-convention. 1988 jobStateReasons4(5), JmJobStateReasons4TC 1989 INTEGER: Additional information about the job's current 1990 state that augments the jmJobState object. See the 1991 description under JmJobStateReasons1TC textual-convention. 1993 processingMessage(6), OCTET STRING(SIZE(0..63)) 1994 OCTETS: MULTI-ROW: A coded character set message that is 1995 generated during the processing of the job as a simple form 1996 of processing log to show progress and any problems. 1998 There is no restriction for the same message to occur in 1999 multiple rows. 2001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2002 + Job Identification attributes 2003 + 2004 + The following attributes help an end user, a system 2005 + operator, or an accounting program identify a job. 2006 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2008 jobAccountName(21), OCTET STRING(SIZE(0..63)) 2009 OCTETS: Arbitrary binary information which MAY be coded 2010 character set data or encrypted data supplied by the 2011 submitting user for use by accounting services to allocate 2012 or categorize charges for services provided, such as a 2013 customer account name or number. 2015 NOTE: This attribute NEED NOT be printable characters. 2017 serverAssignedJobName(22), OCTET STRING(SIZE(0..63)) 2018 OCTETS: Configuration 3 only: The human readable string 2019 name, number, or ID of the job as assigned by the server 2020 Job Monitoring MIB, V0.83 July 14, 1997 2022 that submitted the job to the device that the agent is 2023 providing access to with this MIB. 2025 NOTE - This attribute is intended for enabling a user to 2026 find his/her job that a server submitted to a device when 2027 either the client does not support the jmJobSubmissionID or 2028 the server does not pass the jmJobSubmissionID through to 2029 the device. 2031 jobName(23), OCTET STRING(SIZE(0..63)) 2032 OCTETS: The human readable string name of the job as 2033 assigned by the submitting user to help the user distinguish 2034 between his/her various jobs. This name does not need to be 2035 unique. 2037 This attribute is intended for enabling a user or the user's 2038 application to convey a job name that MAY be printed on a 2039 start sheet, returned in a query result, or used in 2040 notification or logging messages. 2042 In order to assist users to find their jobs for job 2043 submission protocols that don't supply a jmJobSubmissionID, 2044 the agent SHOULD maintain the jobName attribute for the time 2045 specified by the jmGeneralJobPersistence object, rather than 2046 the (shorter) jmGeneralAttributePersistence object. 2048 If this attribute is not specified when the job is 2049 submitted, no job name is assumed, but implementation 2050 specific defaults are allowed, such as the value of the 2051 documentName attribute of the first document in the job or 2052 the fileName attribute of the first document in the job. 2054 The jobName attribute is distinguished from the jobComment 2055 attribute, in that the jobName attribute is intended to 2056 permit the submitting user to distinguish between different 2057 jobs that he/she has submitted. The jobComment attribute is 2058 intended to be free form additional information that a user 2059 might wish to use to communicate with himself/herself, such 2060 as a reminder of what to do with the results or to indicate 2061 a different set of input parameters were tried in several 2062 different job submissions. 2064 jobServiceTypes(24), JmJobServiceTypesTC 2065 INTEGER: Specifies the type(s) of service to which the job 2066 has been submitted (print, fax, scan, etc.). The service 2067 type is bit encoded with each job service type so that more 2068 general and arbitrary services can be created, such as 2069 services with more than one destination type, or ones with 2070 Job Monitoring MIB, V0.83 July 14, 1997 2072 only a source or only a destination. For example, a job 2073 service might scan, faxOut, and print a single job. In this 2074 case, three bits would be set in the jobServiceTypes 2075 attribute, corresponding to the hexadecimal values: 0x8 + 2076 0x20 + 0x4, respectively, yielding: 0x2C. 2078 Whether this attribute is set from a job attribute supplied 2079 by the job submission client or is set by the recipient job 2080 submission server or device depends on the job submission 2081 protocol. This attribute SHALL be implemented if the server 2082 or device has other types in addition to or instead of 2083 printing. 2085 One of the purposes of this attribute is to permit a 2086 requester to filter out jobs that are not of interest. For 2087 example, a printer operator may only be interested in jobs 2088 that include printing. 2090 jobSourceChannelIndex(25), Integer32(0..2147483647) 2091 INTEGER: The index of the row in the associated Printer 2092 MIB[print-mib] of the channel which is the source of the 2093 print job. 2095 jobSourcePlatformType(26), JmJobSourcePlatformTypeTC 2096 INTEGER: The source platform type of the immediate upstream 2097 submitter that submitted the job to the server 2098 (configuration 2) or device (configuration 1 and 3) to which 2099 the agent is providing access. For configuration 1, this is 2100 the type of the client that submitted the job to the device; 2101 for configuration 2, this is the type of the client that 2102 submitted the job to the server; and for configuration 3, 2103 this is the type of the server that submitted the job to the 2104 device. 2106 submittingServerName(27), OCTET STRING(SIZE(0..63)) 2107 OCTETS: For configuration 3 only: The administrative name 2108 of the server that submitted the job to the device. 2110 submittingApplicationName(28), OCTET STRING(SIZE(0..63)) 2111 OCTETS: The name of the client application (not the server 2112 in configuration 3) that submitted the job to the server or 2113 device. 2115 jobOriginatingHost(29), OCTET STRING(SIZE(0..63)) 2116 OCTETS: The name of the client host (not the server host 2117 name in configuration 3) that submitted the job to the 2118 server or device. 2120 Job Monitoring MIB, V0.83 July 14, 1997 2122 deviceNameRequested(30), OCTET STRING(SIZE(0..63)) 2123 OCTETS: The administratively defined coded character set 2124 name of the target device requested by the submitting user. 2125 For configuration 1, its value corresponds to the Printer 2126 MIB[print-mib]: prtGeneralPrinterName object. For 2127 configuration 2 and 3, its value is the name of the logical 2128 or physical device that the user supplied to indicate to the 2129 server on which device(s) they wanted the job to be 2130 processed. 2132 queueNameRequested(31), OCTET STRING(SIZE(0..63)) 2133 OCTETS: The administratively defined coded character set 2134 name of the target queue requested by the submitting user. 2135 For configuration 1, its value corresponds to the queue in 2136 the device for which the agent is providing access. For 2137 configuration 2 and 3, its value is the name of the queue 2138 that the user supplied to indicate to the server on which 2139 device(s) they wanted the job to be processed. 2141 NOTE - typically an implementation SHOULD support either the 2142 deviceNameRequested or queueNameRequested attribute, but not 2143 both. 2145 physicalDevice(32), hrDeviceIndex (see HR MIB) 2146 AND/OR 2147 OCTET STRING(SIZE(0..63)) 2148 INTEGER: MULTI-ROW: The index of the physical device MIB 2149 instance requested/used, such as the Printer MIB[print-mib]. 2150 This value is an hrDeviceIndex value. See the Host 2151 Resources MIB[hr-mib]. 2153 AND/OR 2155 OCTETS: MULTI-ROW: The name of the physical device to 2156 which the job is assigned. 2158 numberOfDocuments(33), Integer32(-2..2147483647) 2159 INTEGER: The number of documents in this job. 2161 fileName(34), OCTET STRING(SIZE(0..63)) 2162 OCTETS: MULTI-ROW: The coded character set file name or 2163 URI[URI-spec] of the document. 2165 There is no restriction on the same file name in multiple 2166 rows. 2168 Job Monitoring MIB, V0.83 July 14, 1997 2170 documentName(35), OCTET STRING(SIZE(0..63)) 2171 OCTETS: MULTI-ROW: The coded character set name of the 2172 document. 2174 There is no restriction on the same document name in 2175 multiple rows. 2177 jobComment(36), OCTET STRING(SIZE(0..63)) 2178 OCTETS: An arbitrary human-readable coded character text 2179 string supplied by the submitting user or the job submitting 2180 application program for any purpose. For example, a user 2181 might indicate what he/she is going to do with the printed 2182 output or the job submitting application program might 2183 indicate how the document was produced. 2185 The jobComment attribute is not intended to be a name; see 2186 the jobName attribute. 2188 documentFormatIndex(37), Integer32(0..2147483647) 2189 INTEGER: MULTI-ROW: The index in the prtInterpreterTable 2190 in the Printer MIB[print-mib] of the page description 2191 language (PDL) or control language interpreter that this job 2192 requires/uses. A document or a job MAY use more than one 2193 PDL or control language. 2195 NOTE - As with all intensive attributes where multiple rows 2196 are allowed, there SHALL be only one distinct row for each 2197 distinct interpreter; there SHALL be no duplicates. 2199 NOTE - This attribute type is intended to be used with an 2200 agent that implements the Printer MIB and SHALL not be used 2201 if the agent does not implement the Printer MIB. Such an 2202 agent SHALL use the documentFormat attribute instead. 2204 documentFormat(38), PrtInterpreterLangFamilyTC 2205 AND/OR 2206 OCTET STRING(SIZE(0..63)) 2207 INTEGER: MULTI-ROW: The interpreter language family 2208 corresponding to the Printer MIB[print-mib] 2209 prtInterpreterLangFamily object, that this job 2210 requires/uses. A document or a job MAY use more than one 2211 PDL or control language. 2213 AND/OR 2215 OCTETS: MULTI-ROW: The document format registered as a 2216 media type[iana-media-types], i.e., the name of the MIME 2217 Job Monitoring MIB, V0.83 July 14, 1997 2219 content-type/subtype. Examples: 'application/postscript', 2220 'application/vnd.hp-PCL', and 'application/pdf' 2222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2223 + Job Parameter attributes 2224 + 2225 + The following attributes represent input parameters 2226 + supplied by the submitting client in the job submission 2227 + protocol. 2228 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2230 jobPriority(50), Integer32(1..100) 2231 INTEGER: The priority for scheduling the job. It is used by 2232 servers and devices that employ a priority-based scheduling 2233 algorithm. 2235 A higher value specifies a higher priority. The value 1 is 2236 defined to indicate the lowest possible priority (a job 2237 which a priority-based scheduling algorithm SHALL pass over 2238 in favor of higher priority jobs). The value 100 is defined 2239 to indicate the highest possible priority. Priority is 2240 expected to be evenly or 'normally' distributed across this 2241 range. The mapping of vendor-defined priority over this 2242 range is implementation-specific. 2244 jobProcessAfterDateAndTime(51), DateAndTime (SNMPv2-TC) 2245 OCTETS: The calendar date and time of day after which the 2246 job SHALL become a candidate to be scheduled for processing. 2247 If the value of this attribute is in the future, the server 2248 SHALL set the value of the job's jmJobState object to 2249 pendingHeld and add the jobProcessAfterSpecified bit value 2250 to the job's jmJobStateReasons1 object. When the specified 2251 date and time arrives, the server SHALL remove the 2252 jobProcessAfterSpecified bit value from the job's 2253 jmJobStateReasons1 object and, if no other reasons remain, 2254 SHALL change the job's jmJobState object to pending. 2256 jobHold(52), JmBooleanTC 2257 INTEGER: If the value is 'true(4)', a client has explicitly 2258 specified that the job is to be held until explicitly 2259 released. Until the job is explicitly released by a client, 2260 the job SHALL be in the pendingHeld state with the 2261 jobHoldSpecified value in the jmJobStateReasons1 attribute. 2263 jobHoldUntil(53), OCTET STRING(SIZE(0..63)) 2264 OCTETS: The named time period during which the job SHALL 2265 become a candidate for processing, such as 'no-hold', 2266 Job Monitoring MIB, V0.83 July 14, 1997 2268 'evening', 'night', 'weekend', 'second-shift', 'third- 2269 shift', etc., as defined by the system administrator. Until 2270 that time period arrives, the job SHALL be in the 2271 pendingHeld state with the jobHoldUntilSpecified value in 2272 the jmJobStateReasons1 object. 2274 outputBin(54), Integer32(0..2147483647) 2275 AND/OR 2276 OCTET STRING(SIZE(0..63)) 2277 INTEGER: MULTI-ROW: The output subunit index in the 2278 Printer MIB[print-mib] 2280 AND/OR 2282 OCTETS: the name or number (represented as ASCII digits) of 2283 the output bin to which all or part of the job is placed in. 2285 sides(55), Integer32(-2..2) 2286 INTEGER: MULTI-ROW: The number of sides, '1' or '2', that 2287 any document in this job requires/used. 2289 finishing(56), JmFinishingTC 2290 INTEGER: MULTI-ROW: Type of finishing that any document in 2291 this job requires/used. 2293 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2294 + Image Quality attributes (requested and consumed) 2295 + 2296 + For devices that can vary the image quality. 2297 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2299 printQualityRequested(70), JmPrintQualityTC 2300 INTEGER: MULTI-ROW: The print quality selection requested 2301 for a document in the job for printers that allow quality 2302 differentiation. 2304 printQualityUsed(71), JmPrintQualityTC 2305 INTEGER: MULTI-ROW: The print quality selection actually 2306 used by a document in the job for printers that allow 2307 quality differentiation. 2309 printerResolutionRequested(72), JmPrinterResolutionTC 2310 INTEGER: MULTI-ROW: The printer resolution requested for a 2311 document in the job for printers that support resolution 2312 selection. 2314 Job Monitoring MIB, V0.83 July 14, 1997 2316 printerResolutionUsed(73), JmPrinterResolutionTC 2317 INTEGER: MULTI-ROW: The printer resolution actually used 2318 by a document in the job for printers that support 2319 resolution selection. 2321 tonerEcomonyRequested(74), JmTonerEconomyTC 2322 INTEGER: MULTI-ROW: The print quality selection requested 2323 for documents in the job for printers that allow toner 2324 quality differentiation. 2326 tonerEcomonyUsed(75), JmTonerEconomyTC 2327 INTEGER: MULTI-ROW: The print quality selection actually 2328 used by documents in the job for printers that allow toner 2329 quality differentiation. 2331 tonerDensityRequested(76), Integer32(-2..100) 2332 INTEGER: MULTI-ROW: The toner density requested for a 2333 document in this job for devices that can vary toner density 2334 levels. Level 1 is the lowest density and level 100 is the 2335 highest density level. Devices with a smaller range, SHALL 2336 map the 1-100 range evenly onto the implemented range. 2338 tonerDensityUsed(77), Integer32(-2..100) 2339 INTEGER: MULTI-ROW: The toner density used by documents in 2340 this job for devices that can vary toner density levels. 2341 Level 1 is the lowest density and level 100 is the highest 2342 density level. Devices with a smaller range, SHALL map the 2343 1-100 range evenly onto the implemented range. 2345 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2346 + Job Progress attributes (requested and consumed) 2347 + 2348 + Pairs of these attributes can be used by monitoring 2349 + applications to show an indication of relative progress 2350 + to users. 2351 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2353 jobCopiesRequested(90), Integer32(-2..2147483647) 2354 INTEGER: The number of copies of the entire job that are to 2355 be produced. 2357 jobCopiesCompleted(91), Integer32(-2..2147483647) 2358 INTEGER: The number of copies of the entire job that have 2359 been completed so far. 2361 documentCopiesRequested(92), Integer32(-2..2147483647) 2362 INTEGER: The total count of the number of document copies 2363 Job Monitoring MIB, V0.83 July 14, 1997 2365 requested. If there are documents A, B, and C, and document 2366 B is specified to produce 4 copies, the number of document 2367 copies requested is 6 for the job. 2369 This attribute SHALL be used only when a job has multiple 2370 documents. The jobCopiesRequested attribute SHALL be used 2371 when the job has only one document. 2373 documentCopiesCompleted(93), Integer32(-2..2147483647) 2374 INTEGER: The total count of the number of document copies 2375 completed so far for the job as a whole. If there are 2376 documents A, B, and C, and document B is specified to 2377 produce 4 copies, the number of document copies starts a 0 2378 and runs up to 6 for the job as the job processes. 2380 This attribute SHALL be used only when a job has multiple 2381 documents. The jobCopiesCompleted attribute SHALL be used 2382 when the job has only one document. 2384 jobKOctetsTransferred(94), Integer32(-2..2147483647) 2385 INTEGER: The number of K (1024) octets transferred to the 2386 server or device to which the agent is providing access. 2387 This count is independent of the number of copies of the job 2388 or documents that will be produced, but it is only a measure 2389 of the number of bytes transferred to the server or device. 2391 The agent SHALL round the actual number of octets 2392 transferred up to the next higher K. Thus 0 octets SHALL be 2393 represented as '0', 1-1024 octets SHALL BE represented as 2394 '1', 1025-2048 SHALL be '2', etc. When the job completes, 2395 the values of the jmJobKOctetsRequested object and the 2396 jobKOctetsTransferred attribute SHALL be equal. 2398 NOTE - The jobKOctetsTransferred can be used with the 2399 jmJobKOctetsRequested object in order to produce a relative 2400 indication of the progress of the job for agents that do not 2401 implement the jmJobKOctetsProcessed object. 2403 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2404 + Impression attributes 2405 + 2406 + For a print job, an impression is the marking of the 2407 + entire side of a sheet. Two-sided processing involves two 2408 + impressions per sheet. Two-up is the placement of two 2409 + logical pages on one side of a sheet and so is still a 2410 + single impression. See also jmJobImpressionsRequested and 2411 + jmJobImpressionsCompleted objects in the jmJobTable. 2413 Job Monitoring MIB, V0.83 July 14, 1997 2415 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2417 impressionsSpooled(110), Integer32(-2..2147483647) 2418 INTEGER: The number of impressions spooled to the server or 2419 device for the job so far. 2421 impressionsSentToDevice(111), Integer32(-2..2147483647) 2422 INTEGER: The number of impressions sent to the device for 2423 the job so far. 2425 impressionsInterpreted(112), Integer32(-2..2147483647) 2426 INTEGER: The number of impressions interpreted for the job 2427 so far. 2429 impressionsCompletedCurrentCopy(113), Integer32(-2..2147483647) 2430 INTEGER: The number of impressions completed by the device 2431 for the current copy of the current document so far. For 2432 printing, the impressions completed includes interpreting, 2433 marking, and stacking the output. For other types of job 2434 services, the number of impressions completed includes the 2435 number of impressions processed. 2437 This value SHALL be reset to 0 for each document in the job 2438 and for each document copy. 2440 fullColorImpressionsCompleted(114), Integer32(-2..2147483647) 2441 INTEGER: The number of full color impressions completed by 2442 the device for this job so far. For printing, the 2443 impressions completed includes interpreting, marking, and 2444 stacking the output. For other types of job services, the 2445 number of impressions completed includes the number of 2446 impressions processed. Full color impressions are typically 2447 defined as those requiring 3 or more colorants, but this MAY 2448 vary by implementation. 2450 highlightColorImpressionsCompleted(115), Integer32(-2.. 2451 2147483647) 2452 INTEGER: The number of highlight color impressions 2453 completed by the device for this job so far. For printing, 2454 the impressions completed includes interpreting, marking, 2455 and stacking the output. For other types of job services, 2456 the number of impressions completed includes the number of 2457 impressions processed. Highlight color impressions are 2458 typically defined as those requiring black plus one other 2459 colorant, but this MAY vary by implementation. 2461 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2462 Job Monitoring MIB, V0.83 July 14, 1997 2464 + Page attributes 2465 + 2466 + A page is a logical page. Number up can impose more than 2467 + one page on a single side of a sheet. Two-up is the 2468 + placement of two logical pages on one side of a sheet so 2469 + that each side counts as two pages. 2470 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2472 pagesRequested(130), Integer32(-2..2147483647) 2473 INTEGER: The number of logical pages requested by the job 2474 to be processed. 2476 pagesCompleted(131), Integer32(-2..2147483647) 2477 INTEGER: The number of logical pages completed for this job 2478 so far. 2480 pagesCompletedCurrentCopy(132), Integer32(-2..2147483647) 2481 INTEGER: The number of logical pages completed for the 2482 current copy of the document so far. This value SHALL be 2483 reset to 0 for each document in the job and for each 2484 document copy. 2486 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2487 + Sheet attributes 2488 + 2489 + The sheet is a single piece of a medium, whether printing 2490 + on one or both sides. 2491 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2493 sheetsRequested(150), Integer32(-2..2147483647) 2494 INTEGER: The number of medium sheets requested to be 2495 processed for this job. 2497 sheetsCompleted(151), Integer32(-2..2147483647) 2498 INTEGER: The number of medium sheets that have completed 2499 marking and stacking for the entire job so far whether those 2500 sheets have been processed on one side or on both. 2502 sheetsCompletedCurrentCopy(152), Integer32(-2..2147483647) 2503 INTEGER: The number of medium sheets that have completed 2504 marking and stacking for the current copy of a document in 2505 the job so far whether those sheets have been processed on 2506 one side or on both. 2508 The value of this attribute SHALL be reset to 0 as each 2509 document in the job starts being processed and for each 2510 document copy as it starts being processed. 2512 Job Monitoring MIB, V0.83 July 14, 1997 2514 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2515 + Resources attributes (requested and consumed) 2516 + 2517 + Pairs of these attributes can be used by monitoring 2518 + applications to show an indication of relative usage to 2519 + users. 2520 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2522 mediumRequested(170), JmMediumTypeTC 2523 AND/OR 2524 OCTET STRING(SIZE(0..63)) 2525 INTEGER: MULTI-ROW: The type 2526 AND/OR 2527 OCTETS: the name of the medium that is required by the job. 2529 mediumConsumed(171), Integer32(-2..2147483647) 2530 AND 2531 OCTET STRING(SIZE(0..63)) 2532 INTEGER: The number of sheets 2533 AND 2534 OCTETS: MULTI-ROW: the name of the medium that have been 2535 consumed so far whether those sheets have been processed on 2536 one side or on both. 2538 This attribute SHALL have both Integer32 and OCTET STRING 2539 values. 2541 colorantRequested(172), Integer32(-2..2147483647) 2542 AND/OR 2543 OCTET STRING(SIZE(0..63)) 2544 INTEGER: MULTI-ROW: The index (prtMarkerColorantIndex) in 2545 the Printer MIB[print-mib] 2546 AND/OR 2547 OCTETS: the name of the colorant requested. 2549 colorantConsumed(173), Integer32(-2..2147483647) 2550 AND/OR 2551 OCTET STRING(SIZE(0..63)) 2552 INTEGER: MULTI-ROW: The index (prtMarkerColorantIndex) in 2553 the Printer MIB[print-mib] 2554 AND/OR 2555 OCTETS: the name of the colorant consumed. 2557 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2558 + Time attributes (set by server or device) 2559 Job Monitoring MIB, V0.83 July 14, 1997 2561 + 2562 + This section of attributes are ones that are set by the 2563 + server or device that accepts jobs. Two forms of time are 2564 + provided. Each form is represented in a separate attribute. 2565 + See section 3.1.2 and section 3.1.3 for the 2566 + conformance requirements for time attribute for agents and 2567 + monitoring applications, respectively. The two forms are: 2568 + 2569 + 'DateAndTime' is an 8 or 11 octet binary encoded year, 2570 + month, day, hour, minute, second, deci-second with 2571 + optional offset from UTC. See SNMPv2-TC. 2572 + 2573 + NOTE: 'DateAndTime' is not printable characters; it is 2574 + binary. 2575 + 2576 + 'JmTimeStampTC' is the time of day measured in the number of 2577 + seconds since the system was booted. 2578 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2580 jobSubmissionToServerTime(190), JmTimeStampTC 2581 AND/OR 2582 DateAndTime (SNMPv2-TC) 2583 INTEGER: Configuration 3 only: The time 2584 AND/OR 2585 OCTETS: the date and time that the job was submitted to the 2586 server (as distinguished from the device which uses 2587 jobSubmissionTime). 2589 jobSubmissionTime(191), JmTimeStampTC 2590 AND/OR 2591 DateAndTime (SNMPv2-TC) 2592 INTEGER: Configurations 1, 2, and 3: The time 2593 AND/OR 2594 OCTETS: the date and time that the job was submitted to the 2595 server or device to which the agent is providing access. 2597 jobStartedBeingHeldTime(192), JmTimeStampTC 2598 AND/OR 2599 DateAndTime (SNMPv2-TC) 2600 INTEGER: The time 2601 AND/OR 2602 OCTETS: the date and time that the job last entered the 2603 pendingHeld state. If the job has never entered the 2604 pendingHeld state, then the value SHALL be '0' or the 2605 attribute SHALL not be present in the table. 2607 Job Monitoring MIB, V0.83 July 14, 1997 2609 jobStartedProcessingTime(193), JmTimeStampTC 2610 AND/OR 2611 DateAndTime (SNMPv2-TC) 2612 INTEGER: The time 2613 AND/OR 2614 OCTETS: the date and time that the job started processing. 2616 jobCompletedTime(194), JmTimeStampTC 2617 AND/OR 2618 DateAndTime (SNMPv2-TC) 2619 INTEGER: The time 2620 AND/OR 2621 OCTETS: the date and time that the job entered the 2622 completed, canceled, or aborted state. 2624 jobProcessingCPUTime(195) Integer32(-2..2147483647) 2625 UNITS 'seconds' 2626 INTEGER: The amount of CPU time in seconds that the job has 2627 been in the processing state. If the job enters the 2628 processingStopped state, that elapsed time SHALL not be 2629 included. In other words, the jobProcessingCPUTime value 2630 SHOULD be relatively repeatable when the same job is 2631 processed again on the same device." 2633 REFERENCE 2634 "See Section 3.2 entitled 'When the server or device is power- 2635 cycled, the agent SHALL remember the next jmJobIndex value to be 2636 assigned, so that new jobs are not assigned the same jmJobIndex 2637 as recent jobs before the power cycle. 2638 The Attribute Mechanism' for a description of this textual- 2639 convention and its use in the jmAttributeTable. 2641 This is a type 2 enumeration. See Section 3.6.1.2." 2642 SYNTAX INTEGER { 2643 other(1), 2644 unknown(2), 2645 jobStateReasons2(3), 2646 jobStateReasons3(4), 2647 jobStateReasons4(5), 2648 processingMessage(6), 2650 jobAccountName(21), 2651 serverAssignedJobName(22), 2652 jobName(23), 2653 jobServiceTypes(24), 2654 jobSourceChannelIndex(25), 2655 jobSourcePlatformType(26), 2656 submittingServerName(27), 2657 Job Monitoring MIB, V0.83 July 14, 1997 2659 submittingApplicationName(28), 2660 jobOriginatingHost(29), 2661 deviceNameRequested(30), 2662 queueNameRequested(31), 2663 physicalDevice(32), 2664 numberOfDocuments(33), 2665 fileName(34), 2666 documentName(35), 2667 jobComment(36), 2668 documentFormatIndex(37), 2669 documentFormat(38), 2671 jobPriority(50), 2672 jobProcessAfterDateAndTime(51), 2673 jobHold(52), 2674 jobHoldUntil(53), 2675 outputBin(54), 2676 sides(55), 2677 finishing(56), 2679 printQualityRequested(70), 2680 printQualityUsed(71), 2681 printerResolutionRequested(72), 2682 printerResolutionUsed(73), 2683 tonerEcomonyRequested(74), 2684 tonerEcomonyUsed(75), 2685 tonerDensityRequested(76), 2686 tonerDensityUsed(77), 2688 jobCopiesRequested(90), 2689 jobCopiesCompleted(91), 2690 documentCopiesRequested(92), 2691 documentCopiesCompleted(93), 2692 jobKOctetsTransferred(94), 2694 impressionsSpooled(110), 2695 impressionsSentToDevice(111), 2696 impressionsInterpreted(112), 2697 impressionsCompletedCurrentCopy(113), 2698 fullColorImpressionsCompleted(114), 2699 highlightColorImpressionsCompleted(115), 2701 pagesRequested(130), 2702 pagesCompleted(131), 2703 pagesCompletedCurrentCopy(132), 2705 sheetsRequested(150), 2706 sheetsCompleted(151), 2707 Job Monitoring MIB, V0.83 July 14, 1997 2709 sheetsCompletedCurrentCopy(152), 2711 mediumRequested(170), 2712 mediumConsumed(171), 2713 colorantRequested(172), 2714 colorantConsumed(173), 2716 jobSubmissionToServerTime(190), 2717 jobSubmissionTime(191), 2718 jobStartedBeingHeldTime(192), 2719 jobStartedProcessingTime(193), 2720 jobCompletedTime(194), 2721 jobProcessingCPUTime(195) 2722 } 2724 JmJobServiceTypesTC ::= TEXTUAL-CONVENTION 2725 STATUS current 2726 DESCRIPTION 2727 "Specifies the type(s) of service to which the job has been 2728 submitted (print, fax, scan, etc.). The service type is 2729 represented as an enum that is bit encoded with each job service 2730 type so that more general and arbitrary services can be created, 2731 such as services with more than one destination type, or ones 2732 with only a source or only a destination. For example, a job 2733 service might scan, faxOut, and print a single job. In this 2734 case, three bits would be set in the jobServiceTypes attribute, 2735 corresponding to the hexadecimal values: 0x8 + 0x20 + 0x4, 2736 respectively, yielding: 0x2C. 2738 Whether this attribute is set from a job attribute supplied by 2739 the job submission client or is set by the recipient job 2740 submission server or device depends on the job submission 2741 protocol. With either implementation, the agent SHALL return a 2742 non-zero value for this attribute indicating the type of the 2743 job. 2745 One of the purposes of this attribute is to permit a requester 2746 to filter out jobs that are not of interest. For example, a 2747 printer operator MAY only be interested in jobs that include 2748 printing. That is why the attribute is in the job 2749 identification category. 2751 Job Monitoring MIB, V0.83 July 14, 1997 2753 The following service component types are defined (in 2754 hexadecimal) and are assigned a separate bit value for use with 2755 the jobServiceTypes attribute: 2757 other 0x1 2758 The job contains some instructions that are not one of the 2759 identified types. 2761 unknown 0x2 2762 The job contains some instructions whose type is unknown to 2763 the agent. 2765 print 0x4 2766 The job contains some instructions that specify printing 2768 scan 0x8 2769 The job contains some instructions that specify scanning 2771 faxIn 0x10 2772 The job contains some instructions that specify receive fax 2774 faxOut 0x20 2775 The job contains some instructions that specify sending fax 2777 getFile 0x40 2778 The job contains some instructions that specify accessing 2779 files or documents 2781 putFile 0x80 2782 The job contains some instructions that specify storing 2783 files or documents 2785 mailList 0x100 2786 The job contains some instructions that specify distribution 2787 of documents using an electronic mail system." 2788 REFERENCE 2789 "These bit definitions are the equivalent of a type 2 enum 2790 except that combinations of them MAY be used together. See 2791 section 3.6.1.2." 2792 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 2793 Job Monitoring MIB, V0.83 July 14, 1997 2795 JmJobStateReasons1TC ::= TEXTUAL-CONVENTION 2796 STATUS current 2797 DESCRIPTION 2798 "The JmJobStateReasonsNTC (N=1..4) textual-conventions are used 2799 with the jmJobStateReasons1 object and jobStateReasonsN 2800 (N=2..4), respectively, to provides additional information 2801 regarding the current jmJobState object value. These values MAY 2802 be used with any job state or states for which the reason makes 2803 sense. 2805 NOTE - While values cannot be added to the jmJobState object 2806 without impacting deployed clients that take actions upon 2807 receiving jmJobState values, it is the intent that additional 2808 JmJobStateReasonsNTC enums can be defined and registered without 2809 impacting such deployed clients. In other words, the 2810 jmJobStateReasons1 object and jobStateReasonsN attributes are 2811 intended to be extensible. 2813 NOTE - The Job Monitoring MIB contains a superset of the IPP 2814 values[ipp-model] for the IPP 'job-state-reasons' attribute, 2815 since the Job Monitoring MIB is intended to cover other job 2816 submission protocols as well. Also some of the names of the 2817 reasons have been changed from 'printer' to 'device', since the 2818 Job Monitoring MIB is intended to cover additional types of 2819 devices, including input devices, such as scanners. 2821 The following standard values are defined (in hexadecimal) as 2822 powers of two, since multiple values MAY be used at the same 2823 time. For ease of understanding, the JmJobStateReasons1TC 2824 reasons are presented in the order in which the reason is most 2825 likely to occur, not counting the 'other' and 'unknown' reasons. 2827 other 0x1 2828 The job state reason is not one of the standardized or 2829 registered reasons. 2831 unknown 0x2 2832 The job state reason is not known to the agent or is 2833 indeterminent. 2835 jobIncoming 0x4 2836 The job has been accepted by the server or device, but the 2837 server or device is expecting (1) additional operations from 2838 the client to finish creating the job and/or (2) is 2839 accessing/accepting document data. 2841 Job Monitoring MIB, V0.83 July 14, 1997 2843 jobOutgoing 0x8 2844 Configuration 2 only: The server is transmitting the job to 2845 the device. 2847 jobHoldSpecified 0x10 2848 The value of the job's jobHold(52) attribute is TRUE. The 2849 job SHALL NOT be a candidate for processing until this 2850 reason is removed and there are no other reasons to hold the 2851 job. 2853 jobHoldUntilSpecified 0x20 2854 The value of the job's jobHoldUntil(53) attribute specifies 2855 a time period that is still in the future. The job SHALL 2856 NOT be a candidate for processing until this reason is 2857 removed and there are no other reasons to hold the job. 2859 jobProcessAfterSpecified 0x40 2860 The value of the job's jobProcessAfterDateAndTime(51) 2861 attribute specifies a time that is still in the future, 2862 either set when the job was created or subsequently by an 2863 explicit modify job operation. The job SHALL NOT be a 2864 candidate for processing until this reason is removed and 2865 there are no other reasons to hold the job. 2867 resourcesAreNotReady 0x80 2868 At least one of the resources needed by the job, such as 2869 media, fonts, resource objects, etc., is not ready on any of 2870 the physical devices for which the job is a candidate. This 2871 condition MAY be detected when the job is accepted, or 2872 subsequently while the job is pending or processing, 2873 depending on implementation. 2875 deviceStoppedPartly 0x100 2876 One or more, but not all, of the devices to which the job is 2877 assigned are stopped. If all of the devices are stopped (or 2878 the only device is stopped), the deviceStopped reason SHALL 2879 be used. 2881 deviceStopped 0x200 2882 The device(s) to which the job is assigned is (are all) 2883 stopped. 2885 jobPrinting 0x400 2886 The output device is marking media. This attribute is useful 2887 for servers and output devices which spend a great deal of 2888 time processing when no marking is happening and then want 2889 to show that marking is now happening or when the job is in 2890 the canceled or aborted state, but the marking has not yet 2891 Job Monitoring MIB, V0.83 July 14, 1997 2893 stopped so that impression or sheet counts are still 2894 increasing for the job. 2896 jobCanceledByUser 0x800 2897 The job was canceled by the user, i.e., by an unknown user 2898 or by a user whose name is the same as the value of the 2899 job's jmJobOwner object. 2901 jobCanceledByOperator 0x1000 2902 The job was canceled by the operator, i.e., by a user whose 2903 name is different than the value of the job's jmJobOwner 2904 object. 2906 abortedBySystem 0x2000 2907 The job was aborted by the system. 2909 NOTE - this reason is needed only when the system aborts a 2910 job, but does not put the job in the aborted job state. For 2911 example, if the system aborts the job, but places the job in 2912 the pendingHeld state, so that a user or operator can try 2913 the job again. 2915 jobCompletedSuccessfully 0x4000 2916 The job completed successfully. 2918 jobCompletedWithWarnings 0x8000 2919 The job completed with warnings. 2921 jobCompletedWithErrors 0x10000 2922 The job completed with errors (and possibly warnings too). 2924 The following additional job state reasons have been added 2925 to represent job states that are in ISO DPA[iso-dpa] and 2926 other job submission protocols: 2928 jobPaused 0x20000 2929 The job has been indefinitely suspended by a client issuing 2930 an operation to suspend the job so that other jobs may 2931 proceed using the same devices. The client MAY issue an 2932 operation to resume the paused job at any time, in which 2933 case the agent SHALL remove the jobPaused values from the 2934 job's jmJobStateReasons1 object and the job is eventually 2935 resumed at or near the point where the job was paused. 2937 jobInterrupted 0x40000 2938 The job has been interrupted while processing by a client 2939 issuing an operation that specifies another job to be run 2940 instead of the current job. The server or device will 2941 Job Monitoring MIB, V0.83 July 14, 1997 2943 automatically resume the interrupted job when the 2944 interrupting job completes. 2946 jobRetained 0x80000 2947 The job is being retained by the server or device with all 2948 of the job's document data (and submitted resources, such as 2949 fonts, logos, and forms, if any). Thus a client could issue 2950 an operation to the server or device to either (1) re-do the 2951 job (or a copy of the job) on the same server or device or 2952 (2) resubmit the job to another server or device. When a 2953 client could no longer re-do/resubmit the job, such as after 2954 the document data has been discarded, the agent SHALL remove 2955 the jobRetained value from the jmJobStateReasons1 object." 2956 REFERENCE 2957 "These bit definitions are the equivalent of a type 2 enum 2958 except that combinations of bits may be used together. See 2959 section 3.6.1.2. The remaining bits are reserved for future 2960 standardization and/or registration." 2962 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 2964 JmJobStateReasons2TC ::= TEXTUAL-CONVENTION 2965 STATUS current 2966 DESCRIPTION 2967 "This textual-convention is used with the jobStateReasons2 2968 attribute to provides additional information regarding the 2969 jmJobState object. See the description under 2970 JmJobStateReasons1TC for additional information that applies to 2971 all reasons. 2973 The following standard values are defined (in hexadecimal) as 2974 powers of two, since multiple values may be used at the same 2975 time: 2977 cascaded 0x1 2978 An outbound gateway has transmitted all of the job's job and 2979 document attributes and data to another spooling system. 2981 deletedByAdministrator 0x2 2982 The administrator has deleted the job. 2984 discardTimeArrived 0x4 2985 The job has been deleted due to the fact that the time 2986 Job Monitoring MIB, V0.83 July 14, 1997 2988 specified by the job's job-discard-time attribute has 2989 arrived. 2991 postProcessingFailed 0x8 2992 The post-processing agent failed while trying to log 2993 accounting attributes for the job; therefore the job has 2994 been placed into the completed state with the jobRetained 2995 jmJobStateReasons1 object value for a system-defined period 2996 of time, so the administrator can examine it, resubmit it, 2997 etc. 2999 submissionInterrupted 0x10 3000 Indicates that the job was not completely submitted for some 3001 unforeseen reason, such as: (1) the server has crashed 3002 before the job was closed by the client, (2) the server or 3003 the document transfer method has crashed in some non- 3004 recoverable way before the document data was entirely 3005 transferred to the server, (3) the client crashed or failed 3006 to close the job before the time-out period. 3008 maxJobFaultCountExceeded 0x20 3009 The job has faulted several times and has exceeded the 3010 administratively defined fault count limit. 3012 devicesNeedAttentionTimeOut 0x40 3013 One or more document transforms that the job is using needs 3014 human intervention in order for the job to make progress, 3015 but the human intervention did not occur within the site- 3016 settable time-out value. 3018 needsKeyOperatorTimeOut 0x80 3019 One or more devices or document transforms that the job is 3020 using need a specially trained operator (who may need a key 3021 to unlock the device and gain access) in order for the job 3022 to make progress, but the key operator intervention did not 3023 occur within the site-settable time-out value. 3025 jobStartWaitTimeOut 0x100 3026 The server/device has stopped the job at the beginning of 3027 processing to await human action, such as installing a 3028 special cartridge or special non-standard media, but the job 3029 was not resumed within the site-settable time-out value and 3030 the server/device has transitioned the job to the 3031 pendingHeld state. 3033 jobEndWaitTimeOut 0x200 3034 The server/device has stopped the job at the end of 3035 processing to await human action, such as removing a special 3036 Job Monitoring MIB, V0.83 July 14, 1997 3038 cartridge or restoring standard media, but the job was not 3039 resumed within the site-settable time-out value and the 3040 server/device has transitioned the job to the completed 3041 state. 3043 jobPasswordWaitTimeOut 0x400 3044 The server/device has stopped the job at the beginning of 3045 processing to await input of the job's password, but the 3046 password was not received within the site-settable time-out 3047 value. 3049 deviceTimedOut 0x800 3050 A device that the job was using has not responded in a 3051 period specified by the device's site-settable attribute. 3053 connectingToDeviceTimeOut 0x1000 3054 The server is attempting to connect to one or more devices 3055 which may be dial-up, polled, or queued, and so may be busy 3056 with traffic from other systems, but server was unable to 3057 connect to the device within the site-settable time-out 3058 value. 3060 transferring 0x2000 3061 The job is being transferred to a down stream server or 3062 device. 3064 queuedInDevice 0x4000 3065 The job has been queued in a down stream server or device. 3067 jobCleanup 0x8000 3068 The server/device is performing cleanup activity as part of 3069 ending normal processing. 3071 processingToStopPoint 0x10000 3072 The requester has issued an operation to interrupt the job 3073 and the server/device is processing up until the specified 3074 stop point occurs. 3076 jobPasswordWait 0x20000 3077 The server/device has selected the job to be next to 3078 process, but instead of assigning resources and starting the 3079 job processing, the server/device has transitioned the job 3080 to the pendingHeld state to await entry of a password (and 3081 dispatched another job, if there is one). 3083 validating 0x40000 3084 The server/device is validating the job after accepting the 3085 job. 3087 Job Monitoring MIB, V0.83 July 14, 1997 3089 queueHeld 0x80000 3090 The operator has held the entire job set or queue. 3092 jobProofWait 0x100000 3093 The job has produced a single proof copy and is in the 3094 pendingHeld state waiting for the requester to issue an 3095 operation to release the job to print normally, obeying any 3096 job and document copy attributes that were originally 3097 submitted. 3099 heldForDiagnostics 0x200000 3100 The system is running intrusive diagnostics, so that all 3101 jobs are being held. 3103 serviceOffLine 0x400000 3104 The service/document transform is off-line and accepting no 3105 jobs. All pending jobs are put into the pendingHeld state. 3106 This could be true if its input is impaired or broken. 3108 noSpaceOnServer 0x800000 3109 There is no room on the server to store all of the job. 3111 pinRequired 0x1000000 3112 The System Administrator settable device policy is (1) to 3113 require PINs, and (2) to hold jobs that do not have a pin 3114 supplied as an input parameter when the job was created. 3116 exceededAccountLimit 0x2000000 3117 The account for which this job is drawn has exceeded its 3118 limit. This condition SHOULD be detected before the job is 3119 scheduled so that the user does not wait until his/her job 3120 is scheduled only to find that the account is overdrawn. 3121 This condition MAY also occur while the job is processing 3122 either as processing begins or part way through processing. 3124 heldForRetry 0x4000000 3125 The job encountered some errors that the server/device could 3126 not recover from with its normal retry procedures, but the 3127 error might not be encountered if the job is re-tried in the 3128 future, such as phone number busy or remote file system in- 3129 accessible. For such a situation, the server/device SHALL 3130 transition the job from the processing to the pendingHeld, 3131 rather than to the aborted state. 3133 The following values are from the X/Open PSIS draft standard: 3135 Job Monitoring MIB, V0.83 July 14, 1997 3137 canceledByShutdown 0x8000000 3138 The job was canceled because the server or device was 3139 shutdown before completing the job. 3141 deviceUnavailable 0x10000000 3142 This job was aborted by the system because the device is 3143 currently unable to accept jobs. 3145 wrongDevice 0x20000000 3146 This job was aborted by the system because the device is 3147 unable to handle this particular job; the spooler SHOULD try 3148 another device or the user should submit the job to another 3149 device. 3151 badJob 0x40000000 3152 This job was aborted by the system because this job has a 3153 major problem, such as an ill-formed PDL; the spooler SHOULD 3154 not even try another device. " 3155 REFERENCE 3156 "These bit definitions are the equivalent of a type 2 enum 3157 except that combinations of them may be used together. See 3158 section 3.6.1.2. See the description under JmJobStateReasons1TC 3159 and the jobStateReasons2 attribute." 3161 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 3163 JmJobStateReasons3TC ::= TEXTUAL-CONVENTION 3164 STATUS current 3165 DESCRIPTION 3166 "This textual-convention is used with the jobStateReasons3 3167 attribute to provides additional information regarding the 3168 jmJobState object. See the description under 3169 JmJobStateReasons1TC for additional information that applies to 3170 all reasons. 3172 The following standard values are defined (in hexadecimal) as 3173 powers of two, since multiple values may be used at the same 3174 time: 3176 jobInterruptedByDeviceFailure 0x1 3177 A device or the print system software that the job was using 3178 has failed while the job was processing. The server or 3179 Job Monitoring MIB, V0.83 July 14, 1997 3181 device is keeping the job in the pendingHeld state until an 3182 operator can determine what to do with the job." 3183 REFERENCE 3184 "These bit definitions are the equivalent of a type 2 enum 3185 except that combinations of them may be used together. See 3186 section 3.6.1.2. The remaining bits are reserved for future 3187 standardization and/or registration. See the description under 3188 JmJobStateReasons1TC and the jobStateReasons3 attribute." 3189 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 3191 JmJobStateReasons4TC ::= TEXTUAL-CONVENTION 3192 STATUS current 3193 DESCRIPTION 3194 "This textual-convention is used in the jobStateReasons4 3195 attribute to provides additional information regarding the 3196 jmJobState object. See the description under 3197 JmJobStateReasons1TC for additional information that applies to 3198 all reasons. 3200 The following standard values are defined (in hexadecimal) as 3201 powers of two, since multiple values may be used at the same 3202 time: 3204 none yet defined. These bits are reserved for future 3205 standardization and/or registration." 3206 REFERENCE 3207 "These bit definitions are the equivalent of a type 2 enum 3208 except that combinations of them may be used together. See 3209 section 3.6.1.2. See the description under JmJobStateReasons1TC 3210 and the jobStateReasons4 attribute." 3212 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 3213 Job Monitoring MIB, V0.83 July 14, 1997 3215 jobmonMIBObjects OBJECT IDENTIFIER ::= { jobmonMIB 1 } 3217 -- The General Group (MANDATORY) 3219 -- The jmGeneralGroup consists entirely of the jmGeneralTable. 3221 jmGeneral OBJECT IDENTIFIER ::= { jobmonMIBObjects 1 } 3223 jmGeneralTable OBJECT-TYPE 3224 SYNTAX SEQUENCE OF JmGeneralEntry 3225 MAX-ACCESS not-accessible 3226 STATUS current 3227 DESCRIPTION 3228 "The jmGeneralTable consists of information of a general nature 3229 that are per-job-set, but are not per-job. See Section 2 3230 entitled 'Terminology and Job Model' for the definition of a job 3231 set." 3232 REFERENCE 3233 "The MANDATORY-GROUP macro specifies that this group is 3234 MANDATORY." 3235 ::= { jmGeneral 1 } 3237 jmGeneralEntry OBJECT-TYPE 3238 SYNTAX JmGeneralEntry 3239 MAX-ACCESS not-accessible 3240 STATUS current 3241 DESCRIPTION 3242 "Information about a job set (queue). 3244 An entry SHALL exist in this table for each job set." 3245 INDEX { jmGeneralJobSetIndex } 3246 ::= { jmGeneralTable 1 } 3248 JmGeneralEntry ::= SEQUENCE { 3249 jmGeneralJobSetIndex Integer32(1..32767), 3250 jmGeneralNumberOfActiveJobs Integer32(0..2147483647), 3251 jmGeneralOldestActiveJobIndex Integer32(0..2147483647), 3252 jmGeneralNewestActiveJobIndex Integer32(0..2147483647), 3253 jmGeneralJobPersistence Integer32(15..2147483647), 3254 jmGeneralAttributePersistence Integer32(15..2147483647), 3255 jmGeneralJobSetName OCTET STRING(SIZE(0..63)) 3256 } 3258 jmGeneralJobSetIndex OBJECT-TYPE 3259 SYNTAX Integer32(1..32767) 3260 MAX-ACCESS not-accessible 3261 STATUS current 3262 Job Monitoring MIB, V0.83 July 14, 1997 3264 DESCRIPTION 3265 "A unique value for each job set in this MIB. The jmJobTable 3266 and jmAttributeTable tables have this same index as their 3267 primary index. 3269 The value(s) of the jmGeneralJobSetIndex SHALL be persistent 3270 across power cycles, so that clients that have retained 3271 jmGeneralJobSetIndex values will access the same job sets upon 3272 subsequent power-up. 3274 An implementation that has only one job set, such as a printer 3275 with a single queue, SHALL hard code this object with the value 3276 1." 3277 REFERENCE 3278 "See Section 2 entitled 'Terminology and Job Model' for the 3279 definition of a job set. Corresponds to the first index in 3280 jmJobTable and jmAttributeTable." 3281 ::= { jmGeneralEntry 1 } 3283 jmGeneralNumberOfActiveJobs OBJECT-TYPE 3284 SYNTAX Integer32(0..2147483647) 3285 MAX-ACCESS read-only 3286 STATUS current 3287 DESCRIPTION 3288 "The current number of 'active' jobs in the jmJobIDTable, 3289 jmJobTable, and jmAttributeTable, i.e., the total number of jobs 3290 that are in the pending, processing, or processingStopped 3291 states. See the JmJobStateTC textual-convention for the exact 3292 specification of the semantics of the job states." 3293 ::= { jmGeneralEntry 2 } 3295 jmGeneralOldestActiveJobIndex OBJECT-TYPE 3296 SYNTAX Integer32 (0..2147483647) 3297 MAX-ACCESS read-only 3298 STATUS current 3299 DESCRIPTION 3300 "The jmJobIndex of the oldest job that is still in one of the 3301 'active' states (pending, processing, or processingStopped). In 3302 other words, the index of the 'active' job that has been in the 3303 job tables the longest. 3305 If there are no active jobs, the agent SHALL set the value of 3306 this object to 0." 3307 REFERENCE 3308 "See Section 3.2 entitled 'The Job Tables and the Oldest Active 3309 and Newest Active Indexes' for a description of the usage of 3310 this object." 3311 ::= { jmGeneralEntry 3 } 3312 Job Monitoring MIB, V0.83 July 14, 1997 3314 jmGeneralNewestActiveJobIndex OBJECT-TYPE 3315 SYNTAX Integer32 (0..2147483647) 3316 MAX-ACCESS read-only 3317 STATUS current 3318 DESCRIPTION 3319 "The jmJobIndex of the newest job that is in one of the 'active' 3320 states (pending, processing, or processingStopped). In other 3321 words, the index of the 'active' job that has been most recently 3322 added to the job tables. 3324 When all jobs become 'inactive', i.e., enter the pendingHeld, 3325 completed, canceled, or aborted states, the agent SHALL set the 3326 value of this object to 0." 3327 REFERENCE 3328 "See Section 3.2 entitled 'The Job Tables and the Oldest Active 3329 and Newest Active Indexes' for a description of the usage of 3330 this object." 3331 ::= { jmGeneralEntry 4 } 3333 jmGeneralJobPersistence OBJECT-TYPE 3334 SYNTAX Integer32(15..2147483647) 3335 UNITS "seconds" 3336 MAX-ACCESS read-only 3337 STATUS current 3338 DESCRIPTION 3339 "The minimum time in seconds for this instance of the Job Set 3340 that an entry SHALL remain in the jmJobIDTable and jmJobTable 3341 after processing has completed, i.e., the minimum time in 3342 seconds starting when the job enters the completed, canceled, or 3343 aborted state. 3345 Depending on implementation, the value of this object MAY be 3346 either: (1) set by the system administrator by means outside 3347 this specification or (2) fixed by the implementation. 3349 This value SHALL be equal to or greater than the value of 3350 jmGeneralAttributePersistence. This value SHOULD be at least 60 3351 which gives a monitoring application one minute in which to poll 3352 for job data." 3353 DEFVAL { 60 } -- one minute 3354 ::= { jmGeneralEntry 5 } 3356 jmGeneralAttributePersistence OBJECT-TYPE 3357 SYNTAX Integer32(15..2147483647) 3358 UNITS "seconds" 3359 MAX-ACCESS read-only 3360 STATUS current 3361 Job Monitoring MIB, V0.83 July 14, 1997 3363 DESCRIPTION 3364 "The minimum time in seconds for this instance of the Job Set 3365 that an entry SHALL remain in the jmAttributeTable after 3366 processing has completed , i.e., the time in seconds starting 3367 when the job enters the completed, canceled, or aborted state. 3369 Depending on implementation, the value of this object MAY be 3370 either (1) set by the system administrator by means outside this 3371 specification or MAY be (2) fixed by the implementation. 3373 This value SHOULD be at least 60 which gives a monitoring 3374 application one minute in which to poll for job data." 3375 DEFVAL { 60 } -- one minute 3376 ::= { jmGeneralEntry 6 } 3378 jmGeneralJobSetName OBJECT-TYPE 3379 SYNTAX OCTET STRING(SIZE(0..63)) 3380 MAX-ACCESS read-only 3381 STATUS current 3382 DESCRIPTION 3383 "The human readable name of this job set assigned by the system 3384 administrator (by means outside of this MIB). Typically, this 3385 name SHOULD be the name of the job queue. If a server or device 3386 has only a single job set, this object can be the 3387 administratively assigned name of the server or device itself. 3388 This name does not need to be unique, though each job set in a 3389 single Job Monitoring MIB SHOULD have distinct names. 3391 NOTE - The purpose of this object is to help the user of the job 3392 monitoring application distinguish between several job sets in 3393 implementations that support more than one job set." 3394 REFERENCE 3395 "See the OBJECT compliance macro for the minimum maximum length 3396 required for conformance." 3397 ::= { jmGeneralEntry 7 } 3399 -- The Job ID Group (MANDATORY) 3401 -- The jmJobIDGroup consists entirely of the jmJobIDTable. 3403 jmJobID OBJECT IDENTIFIER ::= { jobmonMIBObjects 2 } 3405 jmJobIDTable OBJECT-TYPE 3406 SYNTAX SEQUENCE OF JmJobIDEntry 3407 Job Monitoring MIB, V0.83 July 14, 1997 3409 MAX-ACCESS not-accessible 3410 STATUS current 3411 DESCRIPTION 3412 "The jmJobIDTable provides a correspondence map (1) between the 3413 job submission ID that a client uses to refer to a job and (2) 3414 the jmGeneralJobSetIndex and jmJobIndex that the Job Monitoring 3415 MIB agent assigned to the job and that are used to access the 3416 job in all of the other tables in the MIB. If a monitoring 3417 application already knows the jmGeneralJobSetIndex and the 3418 jmJobIndex of the job it is querying, that application NEED NOT 3419 use the jmJobIDTable." 3420 REFERENCE 3421 "The MANDATORY-GROUP macro specifies that this group is 3422 MANDATORY." 3423 ::= { jmJobID 1 } 3425 jmJobIDEntry OBJECT-TYPE 3426 SYNTAX JmJobIDEntry 3427 MAX-ACCESS not-accessible 3428 STATUS current 3429 DESCRIPTION 3430 "The map from (1) the jmJobSubmissionID to (2) the 3431 jmGeneralJobSetIndex and jmJobIndex. 3433 An entry SHALL exist in this table for each job currently known 3434 to the agent for all job sets and job states. Each job SHALL 3435 appear in one and only one job set." 3436 INDEX { jmJobSubmissionID } 3437 ::= { jmJobIDTable 1 } 3439 JmJobIDEntry ::= SEQUENCE { 3440 jmJobSubmissionID OCTET STRING(SIZE(48)), 3441 jmJobIDJobSetIndex Integer32(1..32767), 3442 jmJobIDJobIndex Integer32(1..2147483647) 3443 } 3445 jmJobSubmissionID OBJECT-TYPE 3446 SYNTAX OCTET STRING(SIZE(48)) 3447 MAX-ACCESS not-accessible 3448 STATUS current 3449 DESCRIPTION 3450 "A quasi-unique 48-octet fixed-length string ID which identifies 3451 the job within a particular client-server environment. There 3452 are multiple formats for the jmJobSubmissionID. See the 3453 JmJobSubmissionIDTypeTC textual convention. Each format SHALL 3454 be registered using the procedures of a type 2 enum. See 3455 section 3.6.3 entitled: 'IANA Registration of Job Submission Id 3456 Formats'. 3458 Job Monitoring MIB, V0.83 July 14, 1997 3460 If the requester (client or server) does not supply a job 3461 submission ID in the job submission protocol, then the recipient 3462 (server or device) SHALL assign a job submission ID using any of 3463 the standard formats and adding the final 8 octets to 3464 distinguish the ID from others submitted from the same 3465 requester. 3467 The monitoring application, whether in the client or running 3468 separately, MAY use the job submission ID to help identify which 3469 jmJobIndex was assigned by the agent, i.e., in which row the job 3470 information is in the other tables. 3472 NOTE - fixed-length is used so that a management application can 3473 use a shortened GetNext varbind (in SNMPv1 and SNMPv2) in order 3474 to get the next submission ID, disregarding the remainder of the 3475 ID in order to access jobs independent of the trailing 3476 identifier part, e.g., to get all jobs submitted by a particular 3477 jmJobOwner or from a particular MAC address." 3478 ::= { jmJobIDEntry 1 } 3480 jmJobIDJobSetIndex OBJECT-TYPE 3481 SYNTAX Integer32(1..32767) 3482 MAX-ACCESS read-only 3483 STATUS current 3484 DESCRIPTION 3485 "This object contains the value of the jmGeneralJobSetIndex for 3486 the job with the jmJobSubmissionID value, i.e., the job set 3487 index of the job set in which the job was placed when that 3488 server or device accepted the job. This 16-bit value in 3489 combination with the jmJobIDJobIndex value permits the 3490 management application to access the other tables to obtain the 3491 job-specific objects for this job." 3492 REFERENCE 3493 "See jmGeneralJobSetIndex in the jmGeneralTable." 3494 ::= { jmJobIDEntry 2 } 3496 jmJobIDJobIndex OBJECT-TYPE 3497 SYNTAX Integer32(1..2147483647) 3498 MAX-ACCESS read-only 3499 STATUS current 3500 DESCRIPTION 3501 "This object contains the value of the jmJobIndex for the job 3502 with the jmJobSubmissionID value, i.e., the job index for the 3503 job when the server or device accepted the job. This value, in 3504 combination with the jmJobIDJobSetIndex value, permits the 3505 management application to access the other tables to obtain the 3506 job-specific objects for this job." 3507 Job Monitoring MIB, V0.83 July 14, 1997 3509 REFERENCE 3510 "See jmJobIndex in the jmJobTable." 3511 ::= { jmJobIDEntry 3 } 3513 -- The Job Group (MANDATORY) 3515 -- The jmJobGroup consists entirely of the jmJobTable. 3517 jmJob OBJECT IDENTIFIER ::= { jobmonMIBObjects 3 } 3519 jmJobTable OBJECT-TYPE 3520 SYNTAX SEQUENCE OF JmJobEntry 3521 MAX-ACCESS not-accessible 3522 STATUS current 3523 DESCRIPTION 3524 "The jmJobTable consists of basic job state and status 3525 information for each job in a job set that (1) monitoring 3526 applications need to be able to access in a single SNMP Get 3527 operation, (2) that have a single value per job, and (3) that 3528 SHALL always be implemented." 3529 REFERENCE 3530 "The MANDATORY-GROUP macro specifies that this group is 3531 MANDATORY." 3532 ::= { jmJob 1 } 3534 jmJobEntry OBJECT-TYPE 3535 SYNTAX JmJobEntry 3536 MAX-ACCESS not-accessible 3537 STATUS current 3538 DESCRIPTION 3539 "Basic per-job state and status information. 3541 An entry SHALL exist in this table for each job, no matter what 3542 the state of the job is. Each job SHALL appear in one and only 3543 one job set." 3544 REFERENCE 3545 "See Section 3.2 entitled 'The Job Tables'." 3546 INDEX { jmGeneralJobSetIndex, jmJobIndex } 3547 ::= { jmJobTable 1 } 3549 JmJobEntry ::= SEQUENCE { 3550 jmJobIndex Integer32(1..2147483647), 3551 jmJobState JmJobStateTC, 3552 jmJobStateReasons1 JmJobStateReasons1TC, 3553 jmNumberOfInterveningJobs Integer32(-2..2147483647), 3554 Job Monitoring MIB, V0.83 July 14, 1997 3556 jmJobKOctetsRequested Integer32(-2..2147483647), 3557 jmJobKOctetsProcessed Integer32(-2..2147483647), 3558 jmJobImpressionsRequested Integer32(-2..2147483647), 3559 jmJobImpressionsCompleted Integer32(-2..2147483647), 3560 jmJobOwner OCTET STRING(SIZE(0..63)) 3561 } 3563 jmJobIndex OBJECT-TYPE 3564 SYNTAX Integer32(1..2147483647) 3565 MAX-ACCESS not-accessible 3566 STATUS current 3567 DESCRIPTION 3568 "The sequential, monatonically increasing identifier index for 3569 the job generated by the server or device when that server or 3570 device accepted the job. This index value permits the 3571 management application to access the other tables to obtain the 3572 job-specific row entries. 3574 Agents providing access to systems that contain jobs with a job 3575 identifier of 0 SHALL map the job identifier value 0 to a 3576 jmJobIndex value that is one higher than the highest job 3577 identifier value that any job can have on that system." 3578 REFERENCE 3579 "See Section 3.2 entitled 'The Job Tables'. See also 3580 jmGeneralNewestActiveJobIndex for the largest value of 3581 jmJobIndex." 3582 ::= { jmJobEntry 1 } 3584 jmJobState OBJECT-TYPE 3585 SYNTAX JmJobStateTC 3586 MAX-ACCESS read-only 3587 STATUS current 3588 DESCRIPTION 3589 "The current state of the job (pending, processing, completed, 3590 etc.). Agents SHALL implement only those states which are 3591 appropriate for the particular implementation. However, 3592 management applications SHALL be prepared to receive all the 3593 standard job states. 3595 The final value for this object SHALL be one of: completed, 3596 canceled, or aborted. The minimum length of time that the agent 3597 SHALL maintain MIB data for a job in the completed, canceled, or 3598 aborted state before removing the job data from the jmJobIDTable 3599 and jmJobTable is specified by the value of the 3600 jmGeneralJobPersistence object." 3601 ::= { jmJobEntry 2 } 3603 jmJobStateReasons1 OBJECT-TYPE 3604 Job Monitoring MIB, V0.83 July 14, 1997 3606 SYNTAX JmJobStateReasons1TC 3607 MAX-ACCESS read-only 3608 STATUS current 3609 DESCRIPTION 3610 "Additional information about the job's current state, i.e., 3611 information that augments the value of the job's jmJobState 3612 object. 3614 Implementation of any reason values is OPTIONAL, but an agent 3615 SHOULD return any reason information available These values MAY 3616 be used with any job state or states for which the reason makes 3617 sense. Furthermore, when implemented as with any MIB data, the 3618 agent SHALL return these values when the reason applies and 3619 SHALL NOT return them when the reason no longer applies whether 3620 the value of the job's jmJobState object changed or not. When 3621 the job does not have any reasons for being in its current 3622 state, the agent SHALL set the value of the jmJobStateReasons1 3623 object and jobStateReasonsN attributes to 0." 3624 REFERENCE 3625 "The jobStateReasonsN (N=2..4) attributes provide further 3626 additional information about the job's current state." 3627 ::= { jmJobEntry 3 } 3629 jmNumberOfInterveningJobs OBJECT-TYPE 3630 SYNTAX Integer32(-2..2147483647) 3631 MAX-ACCESS read-only 3632 STATUS current 3633 DESCRIPTION 3634 "The number of jobs that are expected to be processed before 3635 this job is processed according to the implementation's queuing 3636 algorithm if no other jobs were to be submitted. In other 3637 words, this value is the job's queue position. The agent SHALL 3638 return a value of 0 for this attribute while the job is 3639 processing." 3640 ::= { jmJobEntry 4 } 3642 jmJobKOctetsRequested OBJECT-TYPE 3643 SYNTAX Integer32(-2..2147483647) 3644 MAX-ACCESS read-only 3645 STATUS current 3646 DESCRIPTION 3647 "The total size in K (1024) octets of the document(s) being 3648 requested to be processed in the job. The agent SHALL round the 3649 actual number of octets up to the next highest K. Thus 0 octets 3650 SHALL be represented as '0', 1-1024 octets SHALL be represented 3651 as '1', 1025-2048 SHALL be represented as '2', etc. 3653 Job Monitoring MIB, V0.83 July 14, 1997 3655 In computing this value, the server/device SHALL not include the 3656 multiplicative factors contributed by (1) the number of document 3657 copies, and (2) the number of job copies, independent of whether 3658 the device can process multiple copies of the job or document 3659 without making multiple passes over the job or document data and 3660 independent of whether the output is collated or not. Thus the 3661 server/device computation is independent of the implementation." 3662 ::= { jmJobEntry 5 } 3664 jmJobKOctetsProcessed OBJECT-TYPE 3665 SYNTAX Integer32(-2..2147483647) 3666 MAX-ACCESS read-only 3667 STATUS current 3668 DESCRIPTION 3669 "The current number of octets processed by the server or device 3670 measured in units of K (1024) octets. The agent SHALL round the 3671 actual number of octets processed up to the next higher K. Thus 3672 0 octets SHALL be represented as '0', 1-1024 octets SHALL be 3673 represented as '1', 1025-2048 octets SHALL be '2', etc. For 3674 printing devices, this value is the number interpreted by the 3675 page description language interpreter rather than what has been 3676 marked on media. 3678 For implementations where multiple copies are produced by the 3679 interpreter with only a single pass over the data, the final 3680 value SHALL be equal to the value of the jmJobKOctetsRequested 3681 object. For implementations where multiple copies are produced 3682 by the interpreter by processing the data for each copy, the 3683 final value SHALL be a multiple of the value of the 3684 jmJobKOctetsRequested object. 3686 NOTE - See the impressionsCompletedCurrentCopy and 3687 pagesCompletedCurrentCopy attributes for attributes that are 3688 reset on each document copy. 3690 NOTE - The jmJobKOctetsProcessed object can be used with the 3691 jmJobKOctetsRequested object to provide an indication of the 3692 relative progress of the job, provided that the multiplicative 3693 factor is taken into account for some implementations of 3694 multiple copies." 3695 ::= { jmJobEntry 6 } 3697 jmJobImpressionsRequested OBJECT-TYPE 3698 SYNTAX Integer32(-2..2147483647) 3699 MAX-ACCESS read-only 3700 STATUS current 3701 DESCRIPTION 3702 "The number of impressions requested by this job to produce." 3703 Job Monitoring MIB, V0.83 July 14, 1997 3705 ::= { jmJobEntry 7 } 3707 jmJobImpressionsCompleted OBJECT-TYPE 3708 SYNTAX Integer32(-2..2147483647) 3709 MAX-ACCESS read-only 3710 STATUS current 3711 DESCRIPTION 3712 "The current number of impressions completed for this job so 3713 far. For printing devices, the impressions completed includes 3714 interpreting, marking, and stacking the output. For other types 3715 of job services, the number of impressions completed includes 3716 the number of impressions processed." 3717 ::= { jmJobEntry 8 } 3719 jmJobOwner OBJECT-TYPE 3720 SYNTAX OCTET STRING(SIZE(0..63)) 3721 MAX-ACCESS read-only 3722 STATUS current 3723 DESCRIPTION 3724 "The coded character set name of the user that submitted the 3725 job. The method of assigning this user name will be system 3726 and/or site specific but the method MUST insure that the name is 3727 unique to the network that is visible to the client and target 3728 device. 3730 This value SHOULD be the authenticated name of the user 3731 submitting the job." 3732 REFERENCE 3733 "See the OBJECT compliance macro for the minimum maximum length 3734 required for conformance." 3735 ::= { jmJobEntry 9 } 3737 -- The Attribute Group (MANDATORY) 3739 -- The jmAttributeGroup consists entirely of the jmAttributeTable. 3740 -- 3741 -- Implementation of the two objects in this group is MANDATORY. 3742 -- See Section 3.1 entitled 'Conformance Considerations'. 3743 -- An agent SHALL implement any attribute if (1) the server or device 3744 -- supports the functionality represented by the attribute and (2) the 3745 -- information is available to the agent.( 3747 jmAttribute OBJECT IDENTIFIER ::= { jobmonMIBObjects 4 } 3749 jmAttributeTable OBJECT-TYPE 3750 Job Monitoring MIB, V0.83 July 14, 1997 3752 SYNTAX SEQUENCE OF JmAttributeEntry 3753 MAX-ACCESS not-accessible 3754 STATUS current 3755 DESCRIPTION 3756 "The jmAttributeTable SHALL contain attributes of the job and 3757 document(s) for each job in a job set. Instead of allocating 3758 distinct objects for each attribute, each attribute is 3759 represented as a separate row in the jmAttributeTable." 3760 REFERENCE 3761 "The MANDATORY-GROUP macro specifies that this group is 3762 MANDATORY. An agent SHALL implement any attribute if (1) the 3763 server or device supports the functionality represented by the 3764 attribute and (2) the information is available to the agent. " 3765 ::= { jmAttribute 1 } 3767 jmAttributeEntry OBJECT-TYPE 3768 SYNTAX JmAttributeEntry 3769 MAX-ACCESS not-accessible 3770 STATUS current 3771 DESCRIPTION 3772 "Attributes representing information about the job and 3773 document(s) or resources required and/or consumed. 3775 Each entry in the jmAttributeTable is a per-job entry with an 3776 extra index for each type of attribute (jmAttributeTypeIndex) 3777 that a job can have and an additional index 3778 (jmAttributeInstanceIndex) for those attributes that can have 3779 multiple instances per job. The jmAttributeTypeIndex object 3780 SHALL contain an enum type that indicates the type of attribute 3781 (see the JmAttributeTypeTC textual-convention). The value of 3782 the attribute SHALL be represented in either the 3783 jmAttributeValueAsInteger or jmAttributeValueAsOctets objects, 3784 and/or both, as specified in the JmAttributeTypeTC textual- 3785 convention. 3787 The agent SHALL create rows in the jmAttributeTable as the 3788 server or device is able to discover the attributes either from 3789 the job submission protocol itself or from the document PDL. As 3790 the documents are interpreted, the interpreter MAY discover 3791 additional attributes and so the agent adds additional rows to 3792 this table. As the attributes that represent resources are 3793 actually consumed, the usage counter contained in the 3794 jmAttributeValueAsInteger object is incremented according to the 3795 units indicated in the description of the JmAttributeTypeTC 3796 enum. 3798 Job Monitoring MIB, V0.83 July 14, 1997 3800 The agent SHALL maintain each row in the jmJobTable for at least 3801 the minimum time after a job completes as specified by the 3802 jmGeneralAttributePersistence object. 3804 Zero or more entries SHALL exist in this table for each job in a 3805 job set." 3806 REFERENCE 3807 "See Section 3.3 entitled 'The Attribute Mechanism' for a 3808 description of the jmAttributeTable." 3809 INDEX { jmGeneralJobSetIndex, jmJobIndex, jmAttributeTypeIndex, 3810 jmAttributeInstanceIndex } 3811 ::= { jmAttributeTable 1 } 3813 JmAttributeEntry ::= SEQUENCE { 3814 jmAttributeTypeIndex JmAttributeTypeTC, 3815 jmAttributeInstanceIndex Integer32(1..32767), 3816 jmAttributeValueAsInteger Integer32(-2..2147483647), 3817 jmAttributeValueAsOctets OCTET STRING(SIZE(0..63)) 3818 } 3820 jmAttributeTypeIndex OBJECT-TYPE 3821 SYNTAX JmAttributeTypeTC 3822 MAX-ACCESS not-accessible 3823 STATUS current 3824 DESCRIPTION 3825 "The type of attribute that this row entry represents. 3827 The type MAY identify information about the job or document(s) 3828 or MAY identify a resource required to process the job before 3829 the job start processing and/or consumed by the job as the job 3830 is processed. 3832 Examples of job and document attributes include: 3833 jobCopiesRequested, documentCopiesRequested, jobCopiesCompleted, 3834 documentCopiesCompleted, fileName, and documentName. 3836 Examples of required and consumed resource attributes include: 3837 pagesRequested, pagesCompleted, mediumRequested, and 3838 mediumConsumed, respectively." 3839 ::= { jmAttributeEntry 1 } 3841 jmAttributeInstanceIndex OBJECT-TYPE 3842 SYNTAX Integer32(1..32767) 3843 MAX-ACCESS not-accessible 3844 STATUS current 3845 DESCRIPTION 3846 "A running 16-bit index of the attributes of the same type for 3847 each job. For those attributes with only a single instance per 3848 Job Monitoring MIB, V0.83 July 14, 1997 3850 job, this index value SHALL be 1. For those attributes that are 3851 a single value per document, the index value SHALL be the 3852 document number, starting with 1 for the first document in the 3853 job. Jobs with only a single document SHALL use the index value 3854 of 1. For those attributes that can have multiple values per 3855 job or per document, such as documentFormatIndex(37) or 3856 documentFormat(38), the index SHALL be a running index for the 3857 job as a whole, starting at 1." 3858 ::= { jmAttributeEntry 2 } 3860 jmAttributeValueAsInteger OBJECT-TYPE 3861 SYNTAX Integer32(-2..2147483647) 3862 MAX-ACCESS read-only 3863 STATUS current 3864 DESCRIPTION 3865 "The integer value of the attribute. The value of the attribute 3866 SHALL be represented as an integer if the enum description in 3867 the JmAttributeTypeTC textual-convention definition has the tag: 3868 'INTEGER:'. 3870 Depending on the enum definition, this object value MAY be an 3871 integer, a counter, an index, or an enum, depending on the 3872 jmAttributeTypeIndex value. The units of this value are 3873 specified in the enum description. 3875 For those attributes that are accumulating job consumption as 3876 the job is processed as specified in the JmAttributeTypeTC 3877 textual-convention, SHALL contain the final value after the job 3878 completes processing, i.e., this value SHALL indicate the total 3879 usage of this resource made by the job. 3881 A monitoring application is able to copy this value to a 3882 suitable longer term storage for later processing as part of an 3883 accounting system. 3885 Since the agent MAY add attributes representing resources to 3886 this table while the job is waiting to be processed or being 3887 processed, which can be a long time before any of the resources 3888 are actually used, the agent SHALL set the value of the 3889 jmAttributeValueAsInteger object to 0 for resources that the job 3890 has not yet consumed. 3892 Attributes for which the concept of an integer value is 3893 meaningless, such as fileName, interpreter, and physicalDevice, 3894 do not have the 'INTEGER:' tag in the JmAttributeTypeTC 3895 definition and so an agent SHALL always return a value of '-1' 3896 to indicate 'other' for jmAttributeValueAsInteger. 3898 Job Monitoring MIB, V0.83 July 14, 1997 3900 For attributes which do have the 'INTEGER:' tag in the 3901 JmAttributeTypeTC definition, if the integer value is not (yet) 3902 known, the agent either SHALL not materialize the row in the 3903 jmAttributeTable until the value is known or SHALL return a '-2' 3904 to represent an 'unknown' counting integer value, a '0' to 3905 represent an 'unknown' index value, and a '2' to represent an 3906 'unknown(2)' enum value." 3907 ::= { jmAttributeEntry 3 } 3909 jmAttributeValueAsOctets OBJECT-TYPE 3910 SYNTAX OCTET STRING(SIZE(0..63)) 3911 MAX-ACCESS read-only 3912 STATUS current 3913 DESCRIPTION 3914 "The octet string value of the attribute. The value of the 3915 attribute SHALL be represented as an OCTET STRING if the enum 3916 description in the JmAttributeTypeTC textual-convention 3917 definition has the tag: 'OCTETS:'. 3919 Depending on the enum definition, this object value MAY be a 3920 coded character set string (text) or a binary octet string, such 3921 as DateAndTime. 3923 Attributes for which the concept of an octet string value is 3924 meaningless, such as pagesCompleted, do not have the tag 3925 'OCTETS:' in the JmAttributeTypeTC definition and so the agent 3926 SHALL always return a zero length string for the value of the 3927 jmAttributeValueAsOctets object. 3929 For attributes which do have the 'OCTETS:' tag in the 3930 JmAttributeTypeTC definition, if the OCTET STRING value is not 3931 (yet) known, the agent either SHALL not materialize the row in 3932 the jmAttributeTable until the value is known or SHALL return a 3933 zero-length string." 3934 ::= { jmAttributeEntry 4 } 3935 Job Monitoring MIB, V0.83 July 14, 1997 3937 -- Notifications and Trapping 3938 -- Reserved for the future 3940 jobmonMIBNotifications OBJECT IDENTIFIER ::= { jobmonMIB 2} 3942 -- Conformance Information 3944 jmMIBConformance OBJECT IDENTIFIER ::= { jobmonMIB 3 } 3946 -- compliance statements 3947 jmMIBCompliance MODULE-COMPLIANCE 3948 STATUS current 3949 DESCRIPTION 3950 "The compliance statement for agents that implement the 3951 job monitoring MIB." 3952 MODULE -- this module 3953 MANDATORY-GROUPS { 3954 jmGeneralGroup, jmJobIDGroup, jmJobGroup, jmAttributeGroup } 3956 OBJECT jmGeneralJobSetName 3957 SYNTAX OCTET STRING (SIZE(0..8)) 3958 DESCRIPTION 3959 "Only 8 octets maximum string length NEED be supported by the 3960 agent." 3962 OBJECT jmJobOwner 3963 SYNTAX OCTET STRING (SIZE(0..16)) 3964 DESCRIPTION 3965 "Only 16 octets maximum string length NEED be supported by the 3966 agent." 3968 -- There are no CONDITIONALLY MANDATORY or OPTIONAL groups. 3970 ::= { jmMIBConformance 1 } 3972 jmMIBGroups OBJECT IDENTIFIER ::= { jmMIBConformance 2 } 3974 jmGeneralGroup OBJECT-GROUP 3975 OBJECTS { 3976 jmGeneralNumberOfActiveJobs, jmGeneralOldestActiveJobIndex, 3977 jmGeneralNewestActiveJobIndex, jmGeneralJobPersistence, 3978 jmGeneralAttributePersistence, jmGeneralJobSetName} 3979 STATUS current 3980 DESCRIPTION 3981 "The general group." 3982 Job Monitoring MIB, V0.83 July 14, 1997 3984 ::= { jmMIBGroups 1 } 3986 jmJobIDGroup OBJECT-GROUP 3987 OBJECTS { 3988 jmJobIDJobSetIndex, jmJobIDJobIndex } 3989 STATUS current 3990 DESCRIPTION 3991 "The job ID group." 3992 ::= { jmMIBGroups 2 } 3994 jmJobGroup OBJECT-GROUP 3995 OBJECTS { 3996 jmJobState, jmJobStateReasons1, jmNumberOfInterveningJobs, 3997 jmJobKOctetsRequested, jmJobKOctetsProcessed, 3998 jmJobImpressionsRequested, jmJobImpressionsCompleted, jmJobOwner 3999 } 4000 STATUS current 4001 DESCRIPTION 4002 "The job group." 4003 ::= { jmMIBGroups 3 } 4005 jmAttributeGroup OBJECT-GROUP 4006 OBJECTS { 4007 jmAttributeValueAsInteger, jmAttributeValueAsOctets } 4008 STATUS current 4009 DESCRIPTION 4010 "The attribute group." 4011 ::= { jmMIBGroups 4 } 4013 END 4014 Job Monitoring MIB, V0.83 July 14, 1997 4016 5. Appendix A - Implementing the Job Life Cycle 4018 The job object has well-defined states and client operations that affect 4019 the transition between the job states. Internal server and device 4020 actions also affect the transitions of the job between the job states. 4021 These states and transitions are referred to as the job's life cycle. 4023 Not all implementations of job submission protocols have all of the 4024 states of the job model specified here. The job model specified here is 4025 intended to be a superset of most implementations. It is the purpose of 4026 the agent to map the particular implementation's job life cycle onto the 4027 one specified here. The agent MAY omit any states not implemented. 4028 Only the processing and completed states are required to be implemented 4029 by an agent. However, a conforming management application SHALL be 4030 prepared to accept any of the states in the job life cycle specified 4031 here, so that the management application can interoperate with any 4032 conforming agent. 4034 The job states are intended to be user visible. The agent SHALL make 4035 these states visible in the MIB, but only for the subset of job states 4036 that the implementation has. Some implementations MAY need to have sub- 4037 states of these user-visible states. The jmJobStateReasons1 object and 4038 the jobStateReasonsN (N=2..4) attributes can be used to represent the 4039 sub-states of the jobs. 4041 Job states are intended to last a user-visible length of time in most 4042 implementations. However, some jobs may pass through some states in 4043 zero time in some situations and/or in some implementations. 4045 The job model does not specify how accounting and auditing is 4046 implemented, except to assume that accounting and auditing logs are 4047 separate from the job life cycle and last longer than job entries in the 4048 MIB. Jobs in the completed, aborted, or canceled states are not logs, 4049 since jobs in these states are accessible via SNMP protocol operations 4050 and SHALL be removed from the Job Monitoring MIB tables after a site- 4051 settable or implementation-defined period of time. An accounting 4052 application MAY copy accounting information incrementally to an 4053 accounting log as a job processes, or MAY be copied while the job is in 4054 the canceled, aborted, or completed states, depending on implementation. 4055 The same is true for auditing logs. 4057 The jmJobState object specifies the standard job states. The normal job 4058 state transitions are shown in the state transition diagram presented in 4059 Table 1. 4061 Job Monitoring MIB, V0.83 July 14, 1997 4063 6. APPENDIX B - Support of the Job Submission ID in Job Submission 4064 Protocols 4066 This appendix lists the job submission protocols that support the 4067 concept of a job submission ID and indicates the attribute used in that 4068 job submission protocol. 4070 6.1 Hewlett-Packard's Printer Job Language (PJL) 4072 Hewlett-Packard's Printer Job Language provides job-level printer 4073 control and printer status information to applications. The PJL JOB 4074 command is used at the beginning of a print job and can include options 4075 applying only to that job. A PJL JOB command option has been defined to 4076 facilitate passing the JobSubmissionID with the print job, as required 4077 by the Job Monitoring MIB. The option is of the form: 4079 SUBMISSIONID = "id string" 4081 Where the "id string" is a string and SHALL be enclosed in double 4082 quotes. The format is as described for the jmJobSubmissionID object. 4084 The entire PJL JOB command with the optional parameter would be of the 4085 form: 4087 @PJL JOB SUBMISSIONID = "id string" 4089 See "Printer Job Language Technical Reference Manual", part number 5021- 4090 0328, from Hewlett-Packard for complete information on the PJL JOB 4091 command and the Printer Job Language. 4093 6.2 ISO DPA 4095 The ISO 10175 Document Printing Application (DPA) protocol specifies the 4096 "job-client-id" attribute that allows the client to supply a text string 4097 ID for each job. 4099 7. References 4101 [print-mib] The Printer MIB - RFC 1759, proposed IETF standard. Also an 4102 Internet-Draft on the standards track as a draft standard: draft-ietf- 4103 printmib-mib-info-01.txt 4105 [iso-dpa] ISO/IEC 10175 Document Printing Application (DPA). See 4106 ftp://ftp.pwg.org/pub/pwg/dpa/ 4107 Job Monitoring MIB, V0.83 July 14, 1997 4109 [ipp-model] Internet Printing Protocol (IPP), in progress on the IETF 4110 standards track. See draft-ietf-ipp-model-01.txt. See also 4111 http://www.pwg.org/ipp/index.html 4113 [tipsi] IEEE 1284.1, Transport-independent Printer System Interface 4114 (TIPSI). 4116 [mib-II] MIB-II, RFC 1213. 4118 [hr-mib] P. Grillo, S. Waldbusser, "Host Resources MIB", RFC 1514, 4119 September 1993 4121 [SMIv2] SNMPv2-TC, RFC 1903, 4123 [req-words] S. Bradner, "Keywords for use in RFCs to Indicate 4124 Requirement Levels", RFC 2119, March 1997. 4126 [URI-spec] Berners-Lee, T., Masinter, L., McCahill, M. , "Uniform 4127 Resource Locators (URL)", RFC 1738, December, 1994. 4129 [iana-media-types] IANA Registration of MIME media types (MIME content 4130 types/subtypes). See ftp://ftp.isi.edu/in-notes/iana/assignments/ 4132 8. Author's Addresses 4133 Ron Bergman 4134 Dataproducts Corp. 4135 1757 Tapo Canyon Road 4136 Simi Valley, CA 93063-3394 4138 Phone: 805-578-4421 4139 Fax: 805-578-4001 4140 Email: rbergman@dpc.com 4142 Tom Hastings 4143 Xerox Corporation, ESAE-231 4144 701 S. Aviation Blvd. 4145 El Segundo, CA 90245 4147 Phone: 310-333-6413 4148 Fax: 310-333-5514 4149 EMail: hastings@cp10.es.xerox.com 4151 Scott A. Isaacson 4152 Novell, Inc. 4153 122 E 1700 S 4154 Provo, UT 84606 4155 Job Monitoring MIB, V0.83 July 14, 1997 4157 Phone: 801-861-7366 4158 Fax: 801-861-4025 4159 EMail: scott_isaacson@novell.com 4161 Harry Lewis 4162 IBM Corporation 4163 6300 Diagonal Hwy 4164 Boulder, CO 80301 4166 Phone: (303) 924-5337 4167 Fax: 4168 Email: harryl@us.ibm.com 4170 Send comments to the printmib WG using the Job Monitoring Project 4171 (JMP) Mailing List: jmp@pwg.org 4173 To learn how to subscribe, send email to: jmp-request@pwg.org 4175 For further information, access the PWG web page under "JMP": 4176 http://www.pwg.org/ 4178 Other Participants: 4179 Chuck Adams - Tektronix 4180 Jeff Barnett - IBM 4181 Keith Carter, IBM Corporation 4182 Jeff Copeland - QMS 4183 Andy Davidson - Tektronix 4184 Roger deBry - IBM 4185 Mabry Dozier - QMS 4186 Lee Ferrel - Canon 4187 Steve Gebert - IBM 4188 Robert Herriot - Sun Microsystems Inc. 4189 Shige Kanemitsu - Kyocera 4190 David Kellerman - Northlake Software 4191 Rick Landau - Digital 4192 Harry Lewis - IBM 4193 Pete Loya - HP 4194 Ray Lutz - Cognisys 4195 Jay Martin - Underscore 4196 Mike MacKay, Novell, Inc. 4197 Stan McConnell - Xerox 4198 Carl-Uno Manros, Xerox, Corp. 4199 Pat Nogay - IBM 4200 Job Monitoring MIB, V0.83 July 14, 1997 4202 Bob Pentecost - HP 4203 Rob Rhoads - Intel 4204 David Roach - Unisys 4205 Hiroyuki Sato - Canon 4206 Bob Setterbo - Adobe 4207 Gail Songer, EFI 4208 Mike Timperman - Lexmark 4209 Randy Turner - Sharp 4210 William Wagner - Digital Products 4211 Jim Walker - Dazel 4212 Chris Wellens - Interworking Labs 4213 Rob Whittle - Novell 4214 Don Wright - Lexmark 4215 Lloyd Young - Lexmark 4216 Atsushi Yuki - Kyocera 4217 Peter Zehler, Xerox, Corp. 4219 Job Monitoring MIB, V0.83 July 14, 1997 4221 9. INDEX 4223 This index includes the textual conventions, the objects, and the 4224 attributes. Textual conventions all start with the prefix: "JM" and 4225 end with the suffix: "TC". Objects all starts with the prefix: "jm" 4226 followed by the group name. Attributes are identified with enums, and 4227 so start with any lower case letter and have no special prefix. 4229 ------ 4231 colorantConsumed, 51 4232 colorantRequested, 50 4234 --D--- 4236 deviceNameRequested, 42 4237 documentCopiesCompleted, 47 4238 documentCopiesRequested, 47 4239 documentFormat, 44 4240 documentFormatIndex, 44 4241 documentName, 43 4243 --F--- 4245 fileName, 43 4246 finishing, 46 4247 fullColorImpressionsCompleted, 49 4249 --H--- 4251 highlightColorImpressionsCompleted, 49 4253 --I--- 4255 impressionsCompletedCurrentCopy, 48 4256 impressionsInterpreted, 48 4257 impressionsSentToDevice, 48 4258 impressionsSpooled, 48 4260 --J--- 4262 jmAttributeInstanceIndex, 77 4263 jmAttributeTypeIndex, 76 4264 JmAttributeTypeTC, 39 4265 jmAttributeValueAsInteger, 77 4266 jmAttributeValueAsOctets, 78 4267 JmBooleanTC, 32 4268 Job Monitoring MIB, V0.83 July 14, 1997 4270 JmFinishingTC, 29 4271 jmGeneralAttributePersistence, 67 4272 jmGeneralJobPersistence, 67 4273 jmGeneralJobSetIndex, 65 4274 jmGeneralJobSetName, 68 4275 jmGeneralNewestActiveJobIndex, 66 4276 jmGeneralNumberOfActiveJobs, 66 4277 jmGeneralOldestActiveJobIndex, 66 4278 jmJobIDJobIndex, 70 4279 jmJobIDJobSetIndex, 70 4280 jmJobImpressionsCompleted, 74 4281 jmJobImpressionsRequested, 74 4282 jmJobIndex, 71 4283 jmJobKOctetsProcessed, 73 4284 jmJobKOctetsRequested, 73 4285 jmJobOwner, 74 4286 JmJobServiceTypesTC, 54 4287 JmJobSourcePlatformTypeTC, 28 4288 jmJobState, 72 4289 jmJobStateReasons1, 72 4290 JmJobStateReasons1TC, 55 4291 JmJobStateReasons2TC, 59 4292 JmJobStateReasons3TC, 63 4293 JmJobStateReasons4TC, 63 4294 JmJobStateTC, 36 4295 jmJobSubmissionID, 69 4296 JmJobSubmissionTypeTC, 34 4297 JmMediumTypeTC, 33 4298 jmNumberOfInterveningJobs, 73 4299 JmPrinterResolutionTC, 31 4300 JmPrintQualityTC, 30 4301 JmTimeStampTC, 28 4302 JmTonerEconomyTC, 32 4303 jobAccountName, 40 4304 jobComment, 43 4305 jobCompletedTime, 52 4306 jobCopiesCompleted, 47 4307 jobCopiesRequested, 47 4308 jobHold, 45 4309 jobHoldUntil, 45 4310 jobKOctetsTransferred, 47 4311 jobName, 41 4312 jobOriginatingHost, 42 4313 jobPriority, 44 4314 jobProcessAfterDateAndTime, 45 4315 jobProcessingCPUTime, 52 4316 jobServiceTypes, 41 4317 jobSourceChannelIndex, 42 4318 Job Monitoring MIB, V0.83 July 14, 1997 4320 jobSourcePlatformType, 42 4321 jobStartedBeingHeldTime, 52 4322 jobStartedProcessingTime, 52 4323 jobStateReasons2, 40 4324 jobStateReasons3, 40 4325 jobStateReasons4, 40 4326 jobSubmissionTime, 51 4327 jobSubmissionToServerTime, 51 4329 --M--- 4331 mediumConsumed, 50 4332 mediumRequested, 50 4334 --N--- 4336 numberOfDocuments, 43 4338 --O--- 4340 other, 39 4341 outputBin, 45 4343 --P--- 4345 pagesCompleted, 49 4346 pagesCompletedCurrentCopy, 49 4347 pagesRequested, 49 4348 physicalDevice, 43 4349 printerResolutionRequested, 46 4350 printerResolutionUsed, 46 4351 printQualityRequested, 46 4352 printQualityUsed, 46 4353 processingMessage, 40 4355 --Q--- 4357 queueNameRequested, 43 4359 --S--- 4361 serverAssignedJobName, 40 4362 sheetsCompleted, 50 4363 sheetsCompletedCurrentCopy, 50 4364 sheetsRequested, 50 4365 sides, 46 4366 submittingApplicationName, 42 4367 submittingServerName, 42 4368 Job Monitoring MIB, V0.83 July 14, 1997 4370 ------ 4372 tonerDensityRequested, 46 4373 tonerDensityUsed, 47 4374 tonerEcomonyRequested, 46 4375 tonerEcomonyUsed, 46