idnits 2.17.1 draft-ietf-printmib-job-monitor-08.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. 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 Shadow Directories -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document is more than 15 pages and seems to lack a Table of Contents. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 25 longer pages, the longest (page 17) being 64 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. == There are 10 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. ** 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 240: '...an agent SHALL return if the server or...' RFC 2119 keyword, line 342: '... application SHOULD query each job...' RFC 2119 keyword, line 392: '...agent MAY represent an attribute as an...' RFC 2119 keyword, line 412: '...ent instructions MAY be passed in the ...' RFC 2119 keyword, line 413: '...l document data, or MAY be embedded in...' (275 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 2147 has weird spacing: '...ounters have ...' == Line 2644 has weird spacing: '...obOwner objec...' == Line 3020 has weird spacing: '...and the objec...' == Line 4801 has weird spacing: '...code structur...' == Line 4808 has weird spacing: '...single byte c...' == (2 more instances...) == 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 the PWG 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.7 entitled "IANA and PWG Registration 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 (though the agent SHALL assign the next incremental jmJobIndex value to the job). == 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 objects and 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 consumption attribute specification and a DEFVAL of 0 is implied, even though the DEFVAL for jmAttributeValueAsInteger is -2. == 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 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. == 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: If the client does not supply a job submission ID in the job submission protocol, then the agent SHALL assign a job submission ID using any of the standard formats that are reserved for the agent. Clients SHALL not use formats that are reserved for agents and agents SHALL NOT use formats that are reserved for clients, in order to reduce conflicts in ID generation. See the description for which formats are reserved for clients or for agents. == 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 (1) SHALL not materialize the row in the jmAttributeTable until the value is known or (2) 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." DEFVAL { -2 } -- default value is unknown(-2) ::= { jmAttributeEntry 3 } -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (February 19, 1999) is 9191 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFC2026' is mentioned on line 4849, but not defined == Missing Reference: 'PWG' is mentioned on line 208, but not defined == Missing Reference: 'RFC2119' is mentioned on line 4852, but not defined == Missing Reference: 'IANA' is mentioned on line 2876, but not defined == Missing Reference: 'RFC1738' is mentioned on line 4843, but not defined ** Obsolete undefined reference: RFC 1738 (Obsoleted by RFC 4248, RFC 4266) == Missing Reference: 'URI-spec' is mentioned on line 4871, but not defined == Missing Reference: 'SMIv2-TC' is mentioned on line 4865, but not defined == Missing Reference: 'US-ASCII' is mentioned on line 4874, but not defined == Missing Reference: 'RFC1179' is mentioned on line 4841, but not defined == Missing Reference: 'RFC2277' is mentioned on line 4855, but not defined == Missing Reference: 'RFC1766' is mentioned on line 4846, but not defined ** Obsolete undefined reference: RFC 1766 (Obsoleted by RFC 3066, RFC 3282) == Missing Reference: 'IPP-model' is mentioned on line 2845, but not defined == Missing Reference: 'UTF-8' is mentioned on line 4877, but not defined == Missing Reference: 'RFC2278' is mentioned on line 4858, but not defined ** Obsolete undefined reference: RFC 2278 (Obsoleted by RFC 2978) == Missing Reference: 'SMIv2-SMI' is mentioned on line 4861, but not defined == Unused Reference: 'BCP-11' is defined on line 4770, but no explicit reference was found in the text == Unused Reference: 'ISO-646' is defined on line 4797, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2028 (ref. 'BCP-11') (Obsoleted by RFC 9281) -- Possible downref: Non-RFC (?) normative reference: ref. 'GB2312' -- Possible downref: Non-RFC (?) normative reference: ref. 'IANA-charsets' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO-639' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO-646' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO-2022' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO-3166' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO-8859-1' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO-10646' -- Possible downref: Non-RFC (?) normative reference: ref. 'JIS X0208' Summary: 12 errors (**), 0 flaws (~~), 36 warnings (==), 12 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 INTERNET-DRAFT R. Bergman 3 Dataproducts Corp. 4 T. Hastings (editor) 5 Xerox Corporation 6 S. Isaacson 7 Novell, Inc. 8 H. Lewis 9 IBM Corp. 10 February 19, 1999 11 Job Monitoring MIB - V1.0 12 14 Status of this Memo 16 This document is an Internet-Draft and is in full conformance with 17 all provisions of Section 10 of [RFC2026]. Internet-Drafts are 18 working documents of the Internet Engineering Task Force (IETF), 19 its areas, and its working groups. Note that other groups may 20 also distribute working documents as Internet-Drafts. 22 Internet-Drafts are draft documents valid for a maximum of six 23 months and may be updated, replaced, or obsoleted by other 24 documents at any time. It is inappropriate to use Internet-Drafts 25 as reference material or to cite them other than as "work in 26 progress." 28 The list of current Internet-Drafts can be accessed at 29 http://www.ietf.org/ietf/1id-abstracts.txt 31 The list of Internet-Draft Shadow Directories can be accessed as 32 http://www.ietf.org/shadow.html. 34 This Internet-Draft expires on August 19, 1999. 36 Copyright Notice 37 @ 39 Copyright (C) The Internet Society (1998). All Rights Reserved. 40 @ 42 Abstract 44 This document has been developed and approved by the Printer 45 Working Group (PWG) as a PWG standard. It is intended to be 46 distributed as an Informational RFC. This document provides a 47 printer industry standard SNMP MIB for (1) monitoring the status 48 and progress of print jobs (2) obtaining resource requirements 49 before a job is processed, (3) monitoring resource consumption 50 while a job is being processed and (4) collecting resource 51 accounting data after the completion of a job. This MIB is 52 intended to be implemented (1) in a printer or (2) in a server 53 that supports one or more printers. Use of the object set is not 54 limited to printing. However, support for services other than 55 printing is outside the scope of this Job Monitoring MIB. Future 56 extensions to this MIB may include, but are not limited to, fax 57 machines and scanners. 59 TABLE OF CONTENTS 61 1 INTRODUCTION 6 63 1.1 Types of Information in the MIB 6 65 1.2 Types of Job Monitoring Applications 8 67 2 TERMINOLOGY AND JOB MODEL 9 69 2.1 System Configurations for the Job Monitoring MIB 12 70 2.1.1 Configuration 1 - client-printer 12 71 2.1.2 Configuration 2 - client-server-printer - agent in the 72 server 13 73 2.1.3 Configuration 3 - client-server-printer - client monitors 74 printer agent and server 14 76 3 MANAGED OBJECT USAGE 16 78 3.1 Conformance Considerations 16 79 3.1.1 Conformance Terminology 16 80 3.1.2 Agent Conformance Requirements 16 81 3.1.2.1 MIB II System Group objects 17 82 3.1.2.2 MIB II Interface Group objects 17 83 3.1.2.3 Printer MIB objects 17 84 3.1.3 Job Monitoring Application Conformance Requirements 17 86 3.2 The Job Tables and the Oldest Active and Newest Active Indexes 18 88 3.3 The Attribute Mechanism and the Attribute Table(s) 20 89 3.3.1 Conformance of Attribute Implementation 20 90 3.3.2 Useful, 'Unknown', and 'Other' Values for Objects and 91 Attributes 21 92 3.3.3 Index Value Attributes 21 93 3.3.4 Data Sub-types and Attribute Naming Conventions 22 94 3.3.5 Single-Value (Row) Versus Multi-Value (MULTI-ROW) 95 Attributes 23 96 3.3.6 Requested Objects and Attributes 23 97 3.3.7 Consumption Attributes 23 98 3.3.8 Attribute Specifications 24 99 3.3.9 Job State Reason bit definitions 44 100 3.3.9.1 JmJobStateReasons1TC specification 45 101 3.3.9.2 JmJobStateReasons2TC specification 49 102 3.3.9.3 JmJobStateReasons3TC specification 52 103 3.3.9.4 JmJobStateReasons4TC specification 53 105 3.4 Monitoring Job Progress 53 107 3.5 Job Identification 57 108 3.5.1 The Job Submission ID specifications 58 110 3.6 Internationalization Considerations 63 111 3.6.1 Text generated by the server or device 63 112 3.6.2 Text supplied by the job submitter 64 113 3.6.3 'DateAndTime' for representing the date and time 65 115 3.7 IANA and PWG Registration Considerations 65 116 3.7.1 PWG Registration of enums 65 117 3.7.1.1 Type 1 enumerations 66 118 3.7.1.2 Type 2 enumerations 66 119 3.7.1.3 Type 3 enumeration 66 120 3.7.2 PWG Registration of type 2 bit values 67 121 3.7.3 PWG Registration of Job Submission Id Formats 67 122 3.7.4 PWG Registration of MIME types/sub-types for document- 123 formats 67 125 3.8 Security Considerations 67 126 3.8.1 Read-Write objects 67 127 3.8.2 Read-Only Objects In Other User's Jobs 68 129 3.9 Notifications 68 131 4 MIB SPECIFICATION 68 133 Textual conventions for this MIB module 70 134 JmUTF8StringTC 70 135 JmJobStringTC 70 136 JmNaturalLanguageTagTC 70 137 JmTimeStampTC 71 138 JmJobSourcePlatformTypeTC 71 139 JmFinishingTC 72 140 JmPrintQualityTC 73 141 JmPrinterResolutionTC 73 142 JmTonerEconomyTC 74 143 JmBooleanTC 74 144 JmMediumTypeTC 74 145 JmJobCollationTypeTC 76 146 JmJobSubmissionIDTypeTC 76 147 JmJobStateTC 77 148 JmAttributeTypeTC 80 149 JmJobServiceTypesTC 84 150 JmJobStateReasons1TC 85 151 JmJobStateReasons2TC 85 152 JmJobStateReasons3TC 86 153 JmJobStateReasons4TC 86 155 The General Group (MANDATORY) 87 156 jmGeneralJobSetIndex (Int32(1..32767)) 88 157 jmGeneralNumberOfActiveJobs (Int32(0..)) 88 158 jmGeneralOldestActiveJobIndex (Int32(0..)) 89 159 jmGeneralNewestActiveJobIndex (Int32(0..)) 89 160 jmGeneralJobPersistence (Int32(15..)) 90 161 jmGeneralAttributePersistence (Int32(15..)) 90 162 jmGeneralJobSetName (UTF8String63) 91 164 The Job ID Group (MANDATORY) 92 165 jmJobSubmissionID (OCTET STRING(SIZE(48))) 93 166 jmJobIDJobSetIndex (Int32(0..32767)) 94 167 jmJobIDJobIndex (Int32(0..)) 94 169 The Job Group (MANDATORY) 95 170 jmJobIndex (Int32(1..)) 96 171 jmJobState (JmJobStateTC) 96 172 jmJobStateReasons1 (JmJobStateReasons1TC) 97 173 jmNumberOfInterveningJobs (Int32(-2..)) 97 174 jmJobKOctetsPerCopyRequested (Int32(-2..)) 98 175 jmJobKOctetsProcessed (Int32(-2..)) 98 176 jmJobImpressionsPerCopyRequested (Int32(-2..)) 99 177 jmJobImpressionsCompleted (Int32(-2..)) 99 178 jmJobOwner (JobString63) 100 180 The Attribute Group (MANDATORY) 101 181 jmAttributeTypeIndex (JmAttributeTypeTC) 103 182 jmAttributeInstanceIndex (Int32(1..32767)) 103 183 jmAttributeValueAsInteger (Int32(-2..)) 104 184 jmAttributeValueAsOctets (Octets63) 105 186 5 APPENDIX A - IMPLEMENTING THE JOB LIFE CYCLE 108 188 6 APPENDIX B - SUPPORT OF JOB SUBMISSION PROTOCOLS 109 190 7 REFERENCES 109 192 8 AUTHOR'S ADDRESSES 111 194 9 CHANGE HISTORY 114 196 9.1 Changes to produce version 1.0, dated February 19, 1999 114 198 9.2 Changes to produce version 1.2, dated October 2, 1998 114 200 9.3 Changes to produce version 1.1, dated October 1, 1998 115 202 10 INDEX 116 203 Job Monitoring MIB 205 1 Introduction 207 This specification defines an official Printer Working Group (PWG) 208 [PWG] standard SNMP MIB for the monitoring of jobs on network printers. 209 This specification is being published as an IETF Information Document 210 for the convenience of the Internet community. In consultation with 211 the IETF Application Area Directors, it was concluded that this MIB 212 specification properly belongs as an Information document, because this 213 MIB monitors a service node on the network, rather than a network node 214 proper. 216 The Job Monitoring MIB is intended to be implemented by an agent within 217 a printer or the first server closest to the printer, where the printer 218 is either directly connected to the server only or the printer does not 219 contain the job monitoring MIB agent. It is recommended that 220 implementations place the SNMP agent as close as possible to the 221 processing of the print job. This MIB applies to printers with and 222 without spooling capabilities. This MIB is designed to be compatible 223 with most current commonly-used job submission protocols. In most 224 environments that support high function job submission/job control 225 protocols, like ISO DPA[iso-dpa], those protocols would be used to 226 monitor and manage print jobs rather than using the Job Monitoring MIB. 228 The Job Monitoring MIB consists of a General Group, a Job Submission ID 229 Group, a Job Group, and an Attribute Group. Each group is a table. 230 All accessible objects are read-only. The General Group contains 231 general information that applies to all jobs in a job set. The Job 232 Submission ID table maps the job submission ID that the client uses to 233 identify a job to the jmJobIndex that the Job Monitoring Agent uses to 234 identify jobs in the Job and Attribute tables. The Job table contains 235 the MANDATORY integer job state and status objects. The Attribute 236 table consists of multiple entries per job that specify (1) job and 237 document identification and parameters, (2) requested resources, and 238 (3) consumed resources during and after job processing/printing. A 239 larger number of job attributes are defined as textual conventions that 240 an agent SHALL return if the server or device implements the 241 functionality so represented and the agent has access to the 242 information. 244 1.1 Types of Information in the MIB 246 The job MIB is intended to provide the following information for the 247 indicated Role Models in the Printer MIB[print-mib] (Appendix D - Roles 248 of Users). 250 User: 252 Provide the ability to identify the least busy printer. The user 253 will be able to determine the number and size of jobs waiting for 254 each printer. No attempt is made to actually predict the length 255 of time that jobs will take. 257 Provide the ability to identify the current status of the user's 258 job (user queries). 260 Provide a timely indication that the job has completed and where 261 it can be found. 263 Provide error and diagnostic information for jobs that did not 264 successfully complete. 266 Operator: 268 Provide a presentation of the state of all the jobs in the print 269 system. 271 Provide the ability to identify the user that submitted the print 272 job. 274 Provide the ability to identify the resources required by each 275 job. 277 Provide the ability to define which physical printers are 278 candidates for the print job. 280 Provide some idea of how long each job will take. However, exact 281 estimates of time to process a job is not being attempted. 282 Instead, objects are included that allow the operator to be able 283 to make gross estimates. 285 Capacity Planner: 287 Provide the ability to determine printer utilization as a 288 function of time. 290 Provide the ability to determine how long jobs wait before 291 starting to print. 293 Accountant: 295 Provide information to allow the creation of a record of 296 resources consumed and printer usage data for charging users or 297 groups for resources consumed. 299 Provide information to allow the prediction of consumable usage 300 and resource need. 302 The MIB supports printers that can contain more than one job at a time, 303 but still be usable for low end printers that only contain a single job 304 at a time. In particular, the MIB supports the needs of Windows and 305 other PC environments for managing low-end direct-connect (serial or 306 parallel) and networked devices without unnecessary overhead or 307 complexity, while also providing for higher end systems and devices. 309 1.2 Types of Job Monitoring Applications 311 The Job Monitoring MIB is designed for the following types of 312 monitoring applications: 314 1. Monitor a single job starting when the job is submitted and 315 ending a defined period after the job completes. The Job 316 Submission ID table provides the map to find the specific job 317 to be monitored. 319 2. Monitor all 'active' jobs in a queue, which this specification 320 generalizes to a "job set". End users may use such a program 321 when selecting a least busy printer, so the MIB is designed for 322 such a program to start up quickly and find the information 323 needed quickly without having to read all (completed) jobs in 324 order to find the active jobs. System operators may also use 325 such a program, in which case it would be running for a long 326 period of time and may also be interested in the jobs that have 327 completed. Finally such a program may be used to provide an 328 enhanced console and logging capability. 330 3. Collect resource usage for accounting or system utilization 331 purposes that copy the completed job statistics to an 332 accounting system. It is recognized that depending on 333 accounting programs to copy MIB data during the job-retention 334 period is somewhat unreliable, since the accounting program may 335 not be running (or may have crashed). Such a program is also 336 expected to keep a shadow copy of the entire Job Attribute 337 table including completed, canceled, and aborted jobs which the 338 program updates on each polling cycle. Such a program polls at 339 the rate of the persistence of the Attribute table. The design 340 is not optimized to help such an application determine which 341 jobs are completed, canceled, or aborted. Instead, the 342 application SHOULD query each job that the application's shadow 343 copy shows was not complete, canceled, or aborted at the 344 previous poll cycle to see if it is now complete or canceled, 345 plus any new jobs that have been submitted. 347 The MIB provides a set of objects that represent a compatible subset of 348 job and document attributes of the ISO DPA standard[iso-dpa] and the 349 Internet Printing Protocol (IPP)[ipp-model], so that coherence is 350 maintained between these two protocols and the information presented to 351 end users and system operators by monitoring applications. However, 352 the job monitoring MIB is intended to be used with printers that 353 implement other job submitting and management protocols, such as IEEE 354 1284.1 (TIPSI)[tipsi], as well as with ones that do implement ISO DPA. 356 Thus the job monitoring MIB does not require implementation of either 357 the ISO DPA or IPP protocols. 359 The MIB is designed so that an additional MIB(s) can be specified in 360 the future for monitoring multi-function (scan, FAX, copy) jobs as an 361 augmentation to this MIB. 363 2 Terminology and Job Model 365 This section defines the terms that are used in this specification and 366 the general model for jobs in alphabetical order. 368 NOTE - Existing systems use conflicting terms, so these terms are 369 drawn from the ISO 10175 Document Printing Application (DPA) 370 standard[iso-dpa]. For example, PostScript systems use the term 371 session for what is called a job in this specification and the term 372 job to mean what is called a document in this specification. 374 Accounting Application: The SNMP management application that copies 375 job information to some more permanent medium so that another 376 application can perform accounting on the data for Accountants, Asset 377 Managers, and Capacity Planners use. 379 Agent: The network entity that accepts SNMP requests from a monitor or 380 accounting application and provides access to the instrumentation for 381 managing jobs modeled by the management objects defined in the Job 382 Monitoring MIB module for a server or a device. 384 Attribute: A name, value-pair that specifies a job or document 385 instruction, a status, or a condition of a job or a document that has 386 been submitted to a server or device. A particular attribute NEED NOT 387 be present in each job instance. In other words, attributes are 388 present in a job instance only when there is a need to express the 389 value, either because (1) the client supplied a value in the job 390 submission protocol, (2) the document data contained an embedded 391 attribute, or (3) the server or device supplied a default value. An 392 agent MAY represent an attribute as an entry (row) in the Attribute 393 table in this MIB in which entries are present only when necessary. 394 Attributes are identified in this MIB by an enum. 396 Client: The network entity that end users use to submit jobs to 397 spoolers, servers, or printers and other devices, depending on the 398 configuration, using any job submission protocol over a serial or 399 parallel port to a directly-connected device or over the network to a 400 networked-connected device. 402 Device: A hardware entity that (1) interfaces to humans, such as a 403 device that produces marks on paper or scans marks on paper to produce 404 an electronic representation, (2) accesses digital media, such as CD- 405 ROMs, or (3) interfaces electronically to another device, such as sends 406 FAX data to another FAX device. 408 Document: A sub-section within a job that contains print data and 409 document instructions that apply to just the document. 411 Document Instruction: An instruction specifying how to process the 412 document. Document instructions MAY be passed in the job submission 413 protocol separate from the actual document data, or MAY be embedded in 414 the document data or a combination, depending on the job submission 415 protocol and implementation. 417 End User: A user that uses a client to submit a print job. See 418 "user". 420 Impression: For a print job, an impression is the passage of the 421 entire side of a sheet by the marker, whether or not any marks are made 422 and independent of the number of passes that the side makes past the 423 marker. Thus a four pass color process counts as a single impression, 424 as does highlight color. Impression counters count all kinds: 425 monochrome, highlight color, and full process color, while full color 426 counters only count full color impressions, and high light color 427 counters only count high light color impressions. 429 One-sided processing involves one impression per sheet. Two-sided 430 processing involves two impressions per sheet. If a two-sided document 431 has an odd number of pages, the last sheet still counts as two 432 impressions, if that sheet makes two passes through the marker or the 433 marker marks on both sides of a sheet in a single pass. Two-up 434 printing is the placement of two logical pages on one side of a sheet 435 and so is still a single impression. See "page" and "sheet". 437 NOTE - Since impressions include blank sides, it is suggested that 438 accounting application implementers consider charging for sheets, 439 rather than impressions, possibly using the value of the sides 440 attribute to select different charges for one-sided versus two-sided 441 printing, since some users may think that impressions don't include 442 blank sides. 444 Internal Collation: The production of the sheets for each document copy 445 performed within the printing device by making multiple passes over 446 either the source or an intermediate representation of the document. 448 Job: A unit of work whose results are expected together without 449 interjection of unrelated results. A job contains one or more 450 documents. 452 Job Accounting: The activity of a management application of accessing 453 the MIB and recording what happens to the job during and after the 454 processing of the job. 456 Job Instruction: An instruction specifying how, when, or where the job 457 is to be processed. Job instructions MAY be passed in the job 458 submission protocol or MAY be embedded in the document data or a 459 combination depending on the job submission protocol and 460 implementation. 462 Job Monitoring (using SNMP): The activity of a management application 463 of accessing the MIB and (1) identifying jobs in the job tables being 464 processed by the server, printer or other devices, and (2) displaying 465 information to the user about the processing of the job. 467 Job Monitoring Application: The SNMP management application that End 468 Users, and System Operators use to monitor jobs using SNMP. A monitor 469 MAY be either a separate application or MAY be part of the client that 470 also submits jobs. See "monitor". 472 Job Set: A group of jobs that are queued and scheduled together 473 according to a specified scheduling algorithm for a specified device or 474 set of devices. For implementations that embed the SNMP agent in the 475 device, the MIB job set normally represents all the jobs known to the 476 device, so that the implementation only implements a single job set. 477 If the SNMP agent is implemented in a server that controls one or more 478 devices, each MIB job set represents a job queue for (1) a specific 479 device or (2) set of devices, if the server uses a single queue to load 480 balance between several devices. Each job set is disjoint; no job 481 SHALL be represented in more than one MIB job set. 483 Monitor: Short for Job Monitoring Application. 485 Page: A page is a logical division of the original source document. 486 Number up is the imposition of more than one page on a single side of a 487 sheet. See "impression" and "sheet" and "two-up". 489 Proxy: An agent that acts as a concentrator for one or more other 490 agents by accepting SNMP operations on the behalf of one or more other 491 agents, forwarding them on to those other agents, gathering responses 492 from those other agents and returning them to the original requesting 493 monitor. 495 Queuing: The act of a device or server of ordering (queuing) the jobs 496 for the purposes of scheduling the jobs to be processed. 498 Printer: A device that puts marks on media. 500 Server: A network entity that accepts jobs from clients and in turn 501 submits the jobs to printers and other devices that may be directly 502 connected to the server via a serial or parallel port or may be on the 503 network. A server MAY be a printer supervisor control program, or a 504 print spooler. 506 Sheet: A sheet is a single instance of a medium, whether printing on 507 one or both sides of the medium. See "impression" and "page". 509 SNMP Information Object: A name, value-pair that specifies an action, 510 a status, or a condition in an SNMP MIB. Objects are identified in 511 SNMP by an OBJECT IDENTIFIER. 513 Spooler: A server that accepts jobs, spools the data, and decides when 514 and on which printer to print the job. A spooler is a client to a 515 printer or a printer supervisor, depending on implementation. 517 Spooling: The act of a device or server of (1) accepting jobs and (2) 518 writing the job's attributes and document data on to secondary storage. 520 Stacked: When a media sheet is placed in an output bin of a device. 522 Supervisor: A server that contains a control program that controls a 523 printer or other device. A supervisor is a client to the printer or 524 other device. 526 System Operator: A user that uses a monitor to monitor the system and 527 carries out tasks to keep the system running. 529 System Administrator: A user that specifies policy for the system. 531 Two-up: The placement of two pages on one side of a sheet so that each 532 side or impressions counts as two pages. See "page" and "sheet". 534 User: A person that uses a client or a monitor. See "end user". 536 2.1 System Configurations for the Job Monitoring MIB 538 This section enumerates the three configurations in which the Job 539 Monitoring MIB is intended to be used. To simplify the pictures, the 540 devices are shown as printers. See section 1.1 entitled "Types of 541 Information in the MIB". 543 The diagram in the Printer MIB[print-mib] entitled: "One Printer's View 544 of the Network" is assumed for this MIB as well. Please refer to that 545 diagram to aid in understanding the following system configurations. 547 2.1.1 Configuration 1 - client-printer 549 In the client-printer configuration 1, the client(s) submit jobs 550 directly to the printer, either by some direct connect, or by network 551 connection. 553 The job submitting client and/or monitoring application monitor jobs by 554 communicating directly with an agent that is part of the printer. The 555 agent in the printer SHALL keep the job in the Job Monitoring MIB as 556 long as the job is in the printer, plus a defined time period after the 557 job enters the completed state in which accounting programs can copy 558 out the accounting data from the Job Monitoring MIB. 560 all end-user ######## SNMP query 561 +-------+ +--------+ ---- job submission 562 |monitor| | client | 563 +---#---+ +--#--+--+ 564 # # | 565 # ############ | 566 # # | 567 +==+===#=#=+==+ | 568 | | agent | | | 569 | +-------+ | | 570 | PRINTER <--------+ 571 | | Print Job Delivery Channel 572 | | 573 +=============+ 575 Figure 2-1 - Configuration 1 - client-printer - agent in the printer 577 The Job Monitoring MIB is designed to support the following 578 relationships (not shown in Figure 2-1): 579 1. Multiple clients MAY submit jobs to a printer. 580 2. Multiple clients MAY monitor a printer. 581 3. Multiple monitors MAY monitor a printer. 582 4. A client MAY submit jobs to multiple printers. 583 5. A monitor MAY monitor multiple printers. 585 2.1.2 Configuration 2 - client-server-printer - agent in the server 587 In the client-server-printer configuration 2, the client(s) submit jobs 588 to an intermediate server by some network connection, not directly to 589 the printer. While configuration 2 is included, the design center for 590 this MIB is configurations 1 and 3. 592 The job submitting client and/or monitoring application monitor jobs by 593 communicating directly with: 595 A Job Monitoring MIB agent that is part of the server (or a front 596 for the server) 598 There is no SNMP Job Monitoring MIB agent in the printer in 599 configuration 2, at least that the client or monitor are aware. In 600 this configuration, the agent SHALL return the current values of the 601 objects in the Job Monitoring MIB both for jobs the server keeps and 602 jobs that the server has submitted to the printer. The Job Monitoring 603 MIB agent obtains the required information from the printer by a method 604 that is beyond the scope of this document. The agent in the server 605 SHALL keep the job in the Job Monitoring MIB in the server as long as 606 the job is in the printer, plus a defined time period after the job 607 enters the completed state in which accounting programs can copy out 608 the accounting data from the Job Monitoring MIB. 610 all end-user 611 +-------+ +----------+ 612 |monitor| | client | ######## SNMP query 613 +---+---# +---#----+-+ **** non-SNMP cntrl 614 # # | ---- job submission 615 # # | 616 # # | 617 #=====#=+==v==+ 618 | agent | | 619 +-------+ | 620 | server | 621 +----+-----+--+ 622 control * | 623 ********** | 624 * | 625 +========v====+ | 626 | | | 627 | | | 628 | PRINTER <---------+ 629 | | Print Job Delivery Channel 630 | | 631 +=============+ 633 Figure 2-2 - Configuration 2 - client-server-printer - agent in the 634 server 636 The Job Monitoring MIB is designed to support the following 637 relationships (not shown in Figure 2-2): 638 1. Multiple clients MAY submit jobs to a server. 639 2. Multiple clients MAY monitor a server. 640 3. Multiple monitors MAY monitor a server. 641 4. A client MAY submit jobs to multiple servers. 642 5. A monitor MAY monitor multiple servers. 643 6. Multiple servers MAY submit jobs to a printer. 644 7. Multiple servers MAY control a printer. 646 2.1.3 Configuration 3 - client-server-printer - client monitors printer 647 agent and server 649 In the client-server-printer configuration 3, the client(s) submit jobs 650 to an intermediate server by some network connection, not directly to 651 the printer. That server does not contain a Job Monitoring MIB agent. 653 The job submitting client and/or monitoring application monitor jobs by 654 communicating directly with: 656 1. The server using some undefined protocol to monitor jobs in the 657 server (that does not contain the Job Monitoring MIB) AND 659 2. A Job Monitoring MIB agent that is part of the printer to 660 monitor jobs after the server passes the jobs to the printer. 662 In such configurations, the server deletes its copy of the job 663 from the server after submitting the job to the printer usually 664 almost immediately (before the job does much processing, if 665 any). 667 In configuration 3, the agent (in the printer) SHALL keep the values of 668 the objects in the Job Monitoring MIB that the agent implements updated 669 for a job that the server has submitted to the printer. The agent 670 SHALL obtain information about the jobs submitted to the printer from 671 the server (either in the job submission protocol, in the document 672 data, or by direct query of the server), in order to populate some of 673 the objects the Job Monitoring MIB in the printer. The agent in the 674 printer SHALL keep the job in the Job Monitoring MIB as long as the job 675 is in the Printer, and longer in order to implement the completed state 676 in which monitoring programs can copy out the accounting data from the 677 Job Monitoring MIB. 679 all end-user 680 +-------+ +----------+ 681 |monitor| | client | ######## SNMP query 682 +---+---* +---*----+-+ **** non-SNMP query 683 # * * | ---- job submission 684 # * * | 685 # * * | 686 # *=====v====v==+ 687 # | | 688 # | server | 689 # | | 690 # +----#-----+--+ 691 # optional# | 692 # ########## | 693 # # | 694 +==+=v===v=+==+ | 695 | | agent | | | 696 | +-------+ | | 697 | PRINTER <---------+ 698 | | Print Job Delivery Channel 699 | | 700 +=============+ 702 Figure 2-3 - Configuration 3 - client-server-printer - client monitors 703 printer agent and server 705 The Job Monitoring MIB is designed to support the following 706 relationships (not shown in Figure 2-3): 707 1. Multiple clients MAY submit jobs to a server. 708 2. Multiple clients MAY monitor a server. 709 3. Multiple monitors MAY monitor a server. 710 4. A client MAY submit jobs to multiple servers. 711 5. A monitor MAY monitor multiple servers. 712 6. Multiple servers MAY submit jobs to a printer. 713 7. Multiple servers MAY control a printer. 715 3 Managed Object Usage 717 This section describes the usage of the objects in the MIB. 719 3.1 Conformance Considerations 721 In order to achieve interoperability between job monitoring 722 applications and job monitoring agents, this specification includes the 723 conformance requirements for both monitoring applications and agents. 725 3.1.1 Conformance Terminology 727 This specification uses the verbs: "SHALL", "SHOULD", "MAY", and "NEED 728 NOT" to specify conformance requirements according to RFC 2119 729 [RFC2119] as follows: 731 "SHALL": indicates an action that the subject of the sentence must 732 implement in order to claim conformance to this specification 734 "MAY": indicates an action that the subject of the sentence does not 735 have to implement in order to claim conformance to this 736 specification, in other words that action is an implementation option 738 "NEED NOT": indicates an action that the subject of the sentence 739 does not have to implement in order to claim conformance to this 740 specification. The verb "NEED NOT" is used instead of "may not", 741 since "may not" sounds like a prohibition. 743 "SHOULD": indicates an action that is recommended for the subject of 744 the sentence to implement, but is not required, in order to claim 745 conformance to this specification. 747 3.1.2 Agent Conformance Requirements 749 A conforming agent: 751 1. SHALL implement all MANDATORY groups in this specification. 753 2. SHALL implement any attributes if (1) the server or device 754 supports the functionality represented by the attribute and (2) 755 the information is available to the agent. 757 3. SHOULD implement both forms of an attribute if it implements an 758 attribute that permits a choice of INTEGER and OCTET STRING 759 forms, since implementing both forms may help management 760 applications by giving them a choice of representations, since 761 the representation are equivalent. See the JmAttributeTypeTC 762 textual-convention. 764 NOTE - This MIB, like the Printer MIB, is written following the subset 765 of SMIv2 that can be supported by SMIv1 and SNMPv1 implementations. 767 3.1.2.1 MIB II System Group objects 769 The Job Monitoring MIB agent SHALL implement all objects in the System 770 Group of MIB-II[mib-II], whether the Printer MIB[print-mib] is 771 implemented or not. 773 3.1.2.2 MIB II Interface Group objects 775 The Job Monitoring MIB agent SHALL implement all objects in the 776 Interfaces Group of MIB-II[mib-II], whether the Printer MIB[print-mib] 777 is implemented or not. 779 3.1.2.3 Printer MIB objects 781 If the agent is providing access to a device that is a printer, the 782 agent SHALL implement all of the MANDATORY objects in the Printer 783 MIB[print-mib] and all the objects in other MIBs that conformance to 784 the Printer MIB requires, such as the Host Resources MIB[hr-mib]. If 785 the agent is providing access to a server that controls one or more 786 direct-connect or networked printers, the agent NEED NOT implement the 787 Printer MIB and NEED NOT implement the Host Resources MIB. 789 3.1.3 Job Monitoring Application Conformance Requirements 791 A conforming job monitoring application: 793 1. SHALL accept the full syntactic range for all objects in all 794 MANDATORY groups and all MANDATORY attributes that are required 795 to be implemented by an agent according to Section 3.1.2 and 796 SHALL either present them to the user or ignore them. 798 2. SHALL accept the full syntactic range for all attributes, 799 including enum and bit values specified in this specification 800 and additional ones that may be registered with the PWG and 801 SHALL either present them to the user or ignore them. In 802 particular, a conforming job monitoring application SHALL not 803 malfunction when receiving any standard or registered enum or 804 bit values. See Section 3.7 entitled "IANA and PWG 805 Registration Considerations". 807 3. SHALL NOT fail when operating with agents that materialize 808 attributes after the job has been submitted, as opposed to when 809 the job is submitted. 811 4. SHALL, if it supports a time attribute, accept either form of 812 the time attribute, since agents are free to implement either 813 time form. 815 3.2 The Job Tables and the Oldest Active and Newest Active Indexes 817 The jmJobTable and jmAttributeTable contain objects and attributes, 818 respectively, for each job in a job set. These first two indexes are: 819 1. jmGeneralJobSetIndex - which job set 820 2. jmJobIndex - which job in the job set 822 In order for a monitoring application to quickly find that active jobs 823 (jobs in the pending, processing, or processingStopped states), the MIB 824 contains two indexes: 826 1. jmGeneralOldestActiveJobIndex - the index of the active job 827 that has been in the tables the longest. 829 2. jmGeneralNewestActiveJobIndex - the index of the active job 830 that has been most recently added to the tables. 832 The agent SHALL assign the next incremental value of jmJobIndex to the 833 job, when a new job is accepted by the server or device to which the 834 agent is providing access. If the incremented value of jmJobIndex 835 would exceed the implementation-defined maximum value for jmJobIndex, 836 the agent SHALL 'wrap' back to 1. An agent uses the resulting value of 837 jmJobIndex for storing information in the jmJobTable and the 838 jmAttributeTable about the job. 840 It is recommended that the largest value for jmJobIndex be much larger 841 than the maximum number of jobs that the implementation can contain at 842 a single time, so as to minimize the premature re-use of a jmJobIndex 843 value for a newer job while clients retain the same 'stale' value for 844 an older job. 846 It is recommended that agents that are providing access to 847 servers/devices that already allocate job-identifiers for jobs as 848 integers use the same integer value for the jmJobIndex. Then 849 management applications using this MIB and applications using other 850 protocols will see the same job identifiers for the same jobs. Agents 851 providing access to systems that contain jobs with a job identifier of 852 0 SHALL map the job identifier value 0 to a jmJobIndex value that is 853 one higher than the highest job identifier value that any job can have 854 on that system. Then only job 0 will have a different job-identifier 855 value than the job's jmJobIndex value. 857 NOTE - If a server or device accepts jobs using multiple job submission 858 protocols, it may be difficult for the agent to meet the recommendation 859 to use the job-identifier values that the server or device assigns as 860 the jmJobIndex value, unless the server/device assigns job-identifiers 861 for each of its job submission protocols from the same job-identifier 862 number space. 864 Each time a new job is accepted by the server or device that the agent 865 is providing access to AND that job is to be 'active' (pending, 866 processing, or processingStopped, but not pendingHeld), the agent SHALL 867 copy the value of the job's jmJobIndex to the 868 jmGeneralNewestActiveJobIndex object. If the new job is to be 869 'inactive' (pendingHeld state), the agent SHALL not change the value of 870 jmGeneralNewestActiveJobIndex object (though the agent SHALL assign the 871 next incremental jmJobIndex value to the job). 873 When a job transitions from one of the 'active' job states (pending, 874 processing, processingStopped) to one of the 'inactive' job states 875 (pendingHeld, completed, canceled, or aborted), with a jmJobIndex value 876 that matches the jmGeneralOldestActiveJobIndex object, the agent SHALL 877 advance (or wrap) the value to the next oldest 'active' job, if any. 878 See the JmJobStateTC textual-convention for a definition of the job 879 states. 881 Whenever a job transitions from one of the 'inactive' job states to one 882 of the 'active' job states (from pendingHeld to pending or processing), 883 the agent SHALL update the value of either the 884 jmGeneralOldestActiveJobIndex or the jmGeneralNewestActiveJobIndex 885 objects, or both, if the job's jmJobIndex value is outside the range 886 between jmGeneralOldestActiveJobIndex and 887 jmGeneralNewestActiveJobIndex. 889 When all jobs become 'inactive', i.e., enter the pendingHeld, 890 completed, canceled, or aborted states, the agent SHALL set the value 891 of both the jmGeneralOldestActiveJobIndex and 892 jmGeneralNewestActiveJobIndex objects to 0. 894 NOTE - Applications that wish to efficiently access all of the active 895 jobs MAY use jmGeneralOldestActiveJobIndex value to start with the 896 oldest active job and continue until they reach the index value equal 897 to jmGeneralNewestActiveJobIndex, skipping over any pendingHeld, 898 completed, canceled, or aborted jobs that might intervene. 900 If an application detects that the jmGeneralNewestActiveJobIndex is 901 smaller than jmGeneralOldestActiveJobIndex, the job index has wrapped. 902 In this case, the application SHALL reset the index to 1 when the end 903 of the table is reached and continue the GetNext operations to find the 904 rest of the active jobs. 906 NOTE - Applications detect the end of the jmAttributeTable table when 907 the OID returned by the GetNext operation is an OID in a different MIB. 908 There is no object in this MIB that specifies the maximum value for the 909 jmJobIndex supported by the implementation. 911 When the server or device is power-cycled, the agent SHALL remember the 912 next jmJobIndex value to be assigned, so that new jobs are not assigned 913 the same jmJobIndex as recent jobs before the power cycle. 915 3.3 The Attribute Mechanism and the Attribute Table(s) 917 Attributes are similar to information objects, except that attributes 918 are identified by an enum, instead of an OID, so that attributes may be 919 registered without requiring a new MIB. Also an implementation that 920 does not have the functionality represented by the attribute can omit 921 the attribute entirely, rather than having to return a distinguished 922 value. The agent is free to materialize an attribute in the 923 jmAttributeTable as soon as the agent is aware of the value of the 924 attribute. 926 The agent materializes job attributes in a four-indexed 927 jmAttributeTable: 929 1. jmGeneralJobSetIndex - which job set 931 2. jmJobIndex - which job in the job set 933 3. jmAttributeTypeIndex - which attribute 935 4. jmAttributeInstanceIndex - which attribute instance for those 936 attributes that can have multiple values per job. 938 Some attributes represent information about a job, such as a file-name, 939 a document-name, a submission-time or a completion time. Other 940 attributes represent resources required, e.g., a medium or a colorant, 941 etc. to process the job before the job starts processing OR to indicate 942 the amount of the resource consumed during and after processing, e.g., 943 pages completed or impressions completed. If both a required and a 944 consumed value of a resource is needed, this specification assigns two 945 separate attribute enums in the textual convention. 947 NOTE - The table of contents lists all the attributes in order. This 948 order is the order of enum assignments which is the order that the SNMP 949 GetNext operation returns attributes. Most attributes apply to all 950 three configurations covered by this MIB specification (see section 2.1 951 entitled "System Configurations for the Job Monitoring MIB"). Those 952 attributes that apply to a particular configuration are indicated as 953 'Configuration n:' and SHALL NOT be used with other configurations. 955 3.3.1 Conformance of Attribute Implementation 957 An agent SHALL implement any attribute if (1) the server or device 958 supports the functionality represented by the attribute and (2) the 959 information is available to the agent. The agent MAY create the 960 attribute row in the jmAttributeTable when the information is available 961 or MAY create the row earlier with the designated 'unknown' value 962 appropriate for that attribute. See next section. 964 If the server or device does not implement or does not provide access 965 to the information about an attribute, the agent SHOULD NOT create the 966 corresponding row in the jmAttributeTable. 968 3.3.2 Useful, 'Unknown', and 'Other' Values for Objects and Attributes 970 Some attributes have a 'useful' Integer32 value, some have a 'useful' 971 OCTET STRING value, some MAY have either or both depending on 972 implementation, and some MUST have both. See the JmAttributeTypeTC 973 textual convention for the specification of each attribute. 975 SNMP requires that if an object cannot be implemented because its 976 values cannot be accessed, then a compliant agent SHALL return an SNMP 977 error in SNMPv1 or an exception value in SNMPv2. However, this MIB has 978 been designed so that 'all' objects can and SHALL be implemented by an 979 agent, so that neither the SNMPv1 error nor the SNMPv2 exception value 980 SHALL be generated by the agent. This MIB has also been designed so 981 that when an agent materializes an attribute, the agent SHALL 982 materialize a row consisting of both the jmAttributeValueAsInteger and 983 jmAttributeValueAsOctets objects. 985 In general, values for objects and attributes have been chosen so that 986 a management application will be able to determine whether a 'useful', 987 'unknown', or 'other' value is available. When a useful value is not 988 available for an object, that agent SHALL return a zero-length string 989 for octet strings, the value 'unknown(2)' for enums, a '0' value for an 990 object that represents an index in another table, and a value '-2' for 991 counting integers. 993 Since each attribute is represented by a row consisting of both the 994 jmAttributeValueAsInteger and jmAttributeValueAsOctets MANDATORY 995 objects, SNMP requires that the agent SHALL always create an attribute 996 row with both objects specified. However, for most attributes the 997 agent SHALL return a "useful" value for one of the objects and SHALL 998 return the 'other' value for the other object. For integer only 999 attributes, the agent SHALL always return a zero-length string value 1000 for the jmAttributeValueAsOctets object. For octet string only 1001 attributes, the agent SHALL always return a '-1' value for the 1002 jmAttributeValueAsInteger object. 1004 3.3.3 Index Value Attributes 1006 A number of attributes are indexes in other tables. Such attribute 1007 names end with the word 'Index'. If the agent has not (yet) assigned 1008 an index value for a particular index attribute for a job, the agent 1009 SHALL either: (1) return the value 0 or (2) not add this attribute to 1010 the jmAttributeTable until the index value is assigned. In the 1011 interests of brevity, the semantics for 0 is specified once here and is 1012 not repeated for each index attribute specification and a DEFVAL of 0 1013 is implied, even though the DEFVAL for jmAttributeValueAsInteger is -2. 1015 3.3.4 Data Sub-types and Attribute Naming Conventions 1017 Many attributes are sub-typed to give a more specific data type than 1018 Integer32 or OCTET STRING. The data sub-type of each attribute is 1019 indicated on the first line(s) of the description. Some attributes 1020 have several different data sub-type representations. When an 1021 attribute has both an Integer32 data sub-type and an OCTET STRING data 1022 sub-type, the attribute can be represented in a single row in the 1023 jmAttributeTable. In this case, the data sub-type name is not included 1024 as the last part of the name of the attribute, e.g., documentFormat(38) 1025 which is both an enum and/or a name. When the data sub-types cannot be 1026 represented by a single row in the jmAttributeTable, each such 1027 representation is considered a separate attribute and is assigned a 1028 separate name and enum value. For these attributes, the name of the 1029 data sub-type is the last part of the name of the attribute: Name, 1030 Index, DateAndTime, TimeStamp, etc. For example, 1031 documentFormatIndex(37) is an index. 1033 NOTE: The Table of Contents also lists the data sub-type and/or data 1034 sub-types of each attribute, using the textual-convention name when 1035 such is defined. The following abbreviations are used in the Table of 1036 Contents as shown: 1038 'Int32(-2..)' Integer32 (-2..2147483647) 1039 'Int32(0..)' Integer32 (0..2147483647) 1040 'Int32(1..)' Integer32 (1..2147483647) 1041 'Int32(m..n)' For all other Integer ranges, the lower 1042 and upper bound of the range is 1043 indicated. 1044 'UTF8String63' JmUTF8StringTC (SIZE(0..63)) 1045 'JobString63' JmJobStringTC (SIZE(0..63)) 1046 'Octets63' OCTET STRING (SIZE(0..63)) 1047 'Octets(m..n)' For all other OCTET STRING ranges, the 1048 exact range is indicated. 1050 3.3.5 Single-Value (Row) Versus Multi-Value (MULTI-ROW) Attributes 1052 Most attributes have only one row per job. However, a few attributes 1053 can have multiple values per job or even per document, where each value 1054 is a separate row in the jmAttributeTable. Unless indicated with 1055 'MULTI-ROW:' in the JmAttributeTypeTC description, an agent SHALL 1056 ensure that each attribute occurs only once in the jmAttributeTable for 1057 a job. Most of the 'MULTI-ROW' attributes do not allow duplicate 1058 values, i.e., the agent SHALL ensure that each value occurs only once 1059 for a job. Only if the specification of the 'MULTI-ROW' attribute also 1060 says "There is no restriction on the same xxx occurring in multiple 1061 rows" can the agent allow duplicate values to occur for the job. 1063 NOTE - Duplicates are allowed for 'extensive' 'MULTI-ROW' attributes, 1064 such as fileName(34) or documentName(35) which are specified to be 1065 'per-document' attributes, but are not allowed for 'intensive' 'MULTI- 1066 ROW' attributes, such as mediumConsumed(171) and documentFormat(38) 1067 which are specified to be 'per-job' attributes. 1069 3.3.6 Requested Objects and Attributes 1071 A number of objects and attributes record requirements for the job. 1072 Such object and attribute names end with the word 'Requested'. In the 1073 interests of brevity, the phrase 'requested' means: (1) requested by 1074 the client (or intervening server) in the job submission protocol and 1075 may also mean (2) embedded in the submitted document data, and/or (3) 1076 defaulted by the recipient device or server with the same semantics as 1077 if the requester had supplied, depending on implementation. Also if a 1078 value is supplied by the job submission client, and the server/device 1079 determines a better value, through processing or other means, the agent 1080 MAY return that better value for such object and attribute. 1082 3.3.7 Consumption Attributes 1084 A number of objects and attributes record consumption. Such attribute 1085 names end with the word 'Completed' or 'Consumed'. If the job has not 1086 yet consumed what that resource is metering, the agent either: (1) 1087 SHALL return the value 0 or (2) SHALL not add this attribute to the 1088 jmAttributeTable until the consumption begins. In the interests of 1089 brevity, the semantics for 0 is specified once here and is not repeated 1090 for each consumption attribute specification and a DEFVAL of 0 is 1091 implied, even though the DEFVAL for jmAttributeValueAsInteger is -2. 1093 3.3.8 Attribute Specifications 1095 This section specifies the job attributes. 1097 In the following definitions of the attributes, each description 1098 indicates whether the useful value of the attribute SHALL be 1099 represented using the jmAttributeValueAsInteger or the 1100 jmAttributeValueAsOctets objects by the initial tag: 'INTEGER:' or 1101 'OCTETS:', respectively. 1103 Some attributes allow the agent implementer a choice of useful values 1104 of either an integer, an octet string representation, or both, 1105 depending on implementation. These attributes are indicated with 1106 'INTEGER:' AND/OR 'OCTETS:' tags. 1108 A very few attributes require both objects at the same time to 1109 represent a pair of useful values (see mediumConsumed(171)). These 1110 attributes are indicated with 'INTEGER:' AND 'OCTETS:' tags. See the 1111 jmAttributeGroup for the descriptions of these two MANDATORY objects. 1113 NOTE - The enum assignments are grouped logically with values assigned 1114 in groups of 20, so that additional values may be registered in the 1115 future and assigned a value that is part of their logical grouping. 1117 Values in the range 2**30 to 2**31-1 are reserved for private or 1118 experimental usage. This range corresponds to the same range reserved 1119 in IPP. Implementers are warned that use of such values may conflict 1120 with other implementations. Implementers are encouraged to request 1121 registration of enum values following the procedures in Section 3.7.1. 1123 NOTE: No attribute name exceeds 31 characters. 1125 The standard attribute types are: 1127 jmAttributeTypeIndex Datatype 1128 -------------------- -------- 1130 other(1), Integer32 (-2..2147483647) 1131 AND/OR 1132 OCTET STRING(SIZE(0..63)) 1133 INTEGER: and/or OCTETS: An attribute that is not in the 1134 list and/or that has not been approved and registered with 1135 the PWG. 1137 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1138 + Job State attributes (3 - 19 decimal) 1139 + 1140 + The following attributes specify the state of a job. 1141 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1143 jobStateReasons2(3), JmJobStateReasons2TC 1144 INTEGER: Additional information about the job's current 1145 state that augments the jmJobState object. See the 1146 description under the JmJobStateReasons1TC textual- 1147 convention. 1149 jobStateReasons3(4), JmJobStateReasons3TC 1150 INTEGER: Additional information about the job's current 1151 state that augments the jmJobState object. See the 1152 description under JmJobStateReasons1TC textual-convention. 1154 jobStateReasons4(5), JmJobStateReasons4TC 1155 INTEGER: Additional information about the job's current 1156 state that augments the jmJobState object. See the 1157 description under JmJobStateReasons1TC textual-convention. 1159 processingMessage(6), JmUTF8StringTC (SIZE(0..63)) 1160 OCTETS: MULTI-ROW: A coded character set message that is 1161 generated by the server or device during the processing of 1162 the job as a simple form of processing log to show progress 1163 and any problems. The natural language of each value is 1164 specified by the corresponding 1165 processingMessageNaturalLangTag(7) value. 1167 NOTE - This attribute is intended for such conditions as 1168 interpreter messages, rather than being the printable form 1169 of the jmJobState and jmJobStateReasons1 objects and 1170 jobStateReasons2, jobStateReasons3, and jobStateReasons4 1171 attributes. In order to produce a localized printable form 1172 of these job state objects/attribute, a management 1173 application SHOULD produce a message from their enum and 1174 bit values. 1176 NOTE - There is no job description attribute in IPP/1.0 1177 that corresponds to this attribute and this attribute does 1178 not correspond to the IPP/1.0 'job-state-message' job 1179 description attribute, which is just a printable form of 1180 the IPP 'job-state' and 'job-state-reasons' job attributes. 1182 There is no restriction for the same message occurring in 1183 multiple rows. 1185 processingMessageNaturalLangTag(7), OCTET STRING(SIZE(0..63)) 1186 OCTETS: MULTI-ROW: The natural language of the 1187 corresponding processingMessage(6) attribute value. See 1188 section 3.6.1, entitled 'Text generated by the server or 1189 device'. 1191 If the agent does not know the natural language of the job 1192 processing message, the agent SHALL either (1) return a 1193 zero length string value for the 1194 processingMessageNaturalLangTag(7) attribute or (2) not 1195 return the processingMessageNaturalLangTag(7) attribute for 1196 the job. 1198 There is no restriction for the same tag occurring in 1199 multiple rows, since when this attribute is implemented, it 1200 SHOULD have a value row for each corresponding 1201 processingMessage(6) attribute value row. 1203 jobCodedCharSet(8), CodedCharSet 1204 INTEGER: The MIBenum identifier of the coded character set 1205 that the agent is using to represent coded character set 1206 objects and attributes of type 'JmJobStringTC'. These 1207 coded character set objects and attributes are either: (1) 1208 supplied by the job submitting client or (2) defaulted by 1209 the server or device when omitted by the job submitting 1210 client. The agent SHALL represent these objects and 1211 attributes in the MIB either (1) in the coded character set 1212 as they were submitted or (2) MAY convert the coded 1213 character set to another coded character set or encoding 1214 scheme as identified by the jobCodedCharSet(8) attribute. 1215 See section 3.6.2, entitled 'Text supplied by the job 1216 submitter'. 1218 These MIBenum values are assigned by IANA [IANA-charsets] 1219 when the coded character sets are registered. The coded 1220 character set SHALL be one of the ones registered with IANA 1221 [IANA] and the enum value uses the CodedCharSet textual- 1222 convention from the Printer MIB. See the JmJobStringTC 1223 textual-convention. 1225 If the agent does not know what coded character set was 1226 used by the job submitting client, the agent SHALL either 1227 (1) return the 'unknown(2)' value for the 1228 jobCodedCharSet(8) attribute or (2) not return the 1229 jobCodedCharSet(8) attribute for the job. 1231 jobNaturalLanguageTag(9), OCTET STRING(SIZE(0..63)) 1232 OCTETS: The natural language of the job attributes supplied 1233 by the job submitter or defaulted by the server or device 1234 for the job, i.e., all objects and attributes represented 1235 by the 'JmJobStringTC' textual-convention, such as jobName, 1236 mediumRequested, etc. See Section 3.6.2, entitled 'Text 1237 supplied by the job submitter'. 1239 If the agent does not know what natural language was used 1240 by the job submitting client, the agent SHALL either (1) 1241 return a zero length string value for the 1242 jobNaturalLanguageTag(9) attribute or (2) not return 1243 jobNaturalLanguageTag(9) attribute for the job. 1245 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1246 + Job Identification attributes (20 - 49 decimal) 1247 + 1248 + The following attributes help an end user, a system 1249 + operator, or an accounting program identify a job. 1250 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1252 jobURI(20), OCTET STRING(SIZE(0..63)) 1253 OCTETS: MULTI-ROW: The job's Universal Resource 1254 Identifier (URI) [RFC1738]. See IPP [ipp-model] for 1255 example usage. 1257 NOTE - The agent may be able to generate this value on each 1258 SNMP Get operation from smaller values, rather than having 1259 to store the entire URI. 1261 If the URI exceeds 63 octets, the agent SHALL use multiple 1262 values, with the next 63 octets coming in the second value, 1263 etc. 1265 NOTE - IPP [ipp-model] has a 1023-octet maximum length for 1266 a URI, though the URI standard itself and HTTP/1.1 specify 1267 no maximum length. 1269 jobAccountName(21), OCTET STRING(SIZE(0..63)) 1270 OCTETS: Arbitrary binary information which MAY be coded 1271 character set data or encrypted data supplied by the 1272 submitting user for use by accounting services to allocate 1273 or categorize charges for services provided, such as a 1274 customer account name or number. 1276 NOTE: This attribute NEED NOT be printable characters. 1278 serverAssignedJobName(22), JmJobStringTC (SIZE(0..63)) 1279 OCTETS: Configuration 3 only: The human readable string 1280 name, number, or ID of the job as assigned by the server 1281 that submitted the job to the device that the agent is 1282 providing access to with this MIB. 1284 NOTE - This attribute is intended for enabling a user to 1285 find his/her job that a server submitted to a device when 1286 either the client does not support the jmJobSubmissionID or 1287 the server does not pass the jmJobSubmissionID through to 1288 the device. 1290 jobName(23), JmJobStringTC (SIZE(0..63)) 1291 OCTETS: The human readable string name of the job as 1292 assigned by the submitting user to help the user 1293 distinguish between his/her various jobs. This name does 1294 not need to be unique. 1296 This attribute is intended for enabling a user or the 1297 user's application to convey a job name that MAY be printed 1298 on a start sheet, returned in a query result, or used in 1299 notification or logging messages. 1301 In order to assist users to find their jobs for job 1302 submission protocols that don't supply a jmJobSubmissionID, 1303 the agent SHOULD maintain the jobName attribute for the 1304 time specified by the jmGeneralJobPersistence object, 1305 rather than the (shorter) jmGeneralAttributePersistence 1306 object. 1308 If this attribute is not specified when the job is 1309 submitted, no job name is assumed, but implementation 1310 specific defaults are allowed, such as the value of the 1311 documentName attribute of the first document in the job or 1312 the fileName attribute of the first document in the job. 1314 The jobName attribute is distinguished from the jobComment 1315 attribute, in that the jobName attribute is intended to 1316 permit the submitting user to distinguish between different 1317 jobs that he/she has submitted. The jobComment attribute 1318 is intended to be free form additional information that a 1319 user might wish to use to communicate with himself/herself, 1320 such as a reminder of what to do with the results or to 1321 indicate a different set of input parameters were tried in 1322 several different job submissions. 1324 jobServiceTypes(24), JmJobServiceTypesTC 1325 INTEGER: Specifies the type(s) of service to which the job 1326 has been submitted (print, fax, scan, etc.). The service 1327 type is bit encoded with each job service type so that more 1328 general and arbitrary services can be created, such as 1329 services with more than one destination type, or ones with 1330 only a source or only a destination. For example, a job 1331 service might scan, faxOut, and print a single job. In 1332 this case, three bits would be set in the jobServiceTypes 1333 attribute, corresponding to the hexadecimal values: 0x8 + 1334 0x20 + 0x4, respectively, yielding: 0x2C. 1336 Whether this attribute is set from a job attribute supplied 1337 by the job submission client or is set by the recipient job 1338 submission server or device depends on the job submission 1339 protocol. This attribute SHALL be implemented if the 1340 server or device has other types in addition to or instead 1341 of printing. 1343 One of the purposes of this attribute is to permit a 1344 requester to filter out jobs that are not of interest. For 1345 example, a printer operator may only be interested in jobs 1346 that include printing. 1348 jobSourceChannelIndex(25), Integer32 (0..2147483647) 1349 INTEGER: The index of the row in the associated Printer 1350 MIB[print-mib] of the channel which is the source of the 1351 print job. 1353 jobSourcePlatformType(26), JmJobSourcePlatformTypeTC 1354 INTEGER: The source platform type of the immediate 1355 upstream submitter that submitted the job to the server 1356 (configuration 2) or device (configuration 1 and 3) to 1357 which the agent is providing access. For configuration 1, 1358 this is the type of the client that submitted the job to 1359 the device; for configuration 2, this is the type of the 1360 client that submitted the job to the server; and for 1361 configuration 3, this is the type of the server that 1362 submitted the job to the device. 1364 submittingServerName(27), JmJobStringTC (SIZE(0..63)) 1365 OCTETS: For configuration 3 only: The administrative name 1366 of the server that submitted the job to the device. 1368 submittingApplicationName(28), JmJobStringTC (SIZE(0..63)) 1369 OCTETS: The name of the client application (not the server 1370 in configuration 3) that submitted the job to the server or 1371 device. 1373 jobOriginatingHost(29), JmJobStringTC (SIZE(0..63)) 1374 OCTETS: The name of the client host (not the server host 1375 name in configuration 3) that submitted the job to the 1376 server or device. 1378 deviceNameRequested(30), JmJobStringTC (SIZE(0..63)) 1379 OCTETS: The administratively defined coded character set 1380 name of the target device requested by the submitting user. 1381 For configuration 1, its value corresponds to the Printer 1382 MIB[print-mib]: prtGeneralPrinterName object. For 1383 configuration 2 and 3, its value is the name of the logical 1384 or physical device that the user supplied to indicate to 1385 the server on which device(s) they wanted the job to be 1386 processed. 1388 queueNameRequested(31), JmJobStringTC (SIZE(0..63)) 1389 OCTETS: The administratively defined coded character set 1390 name of the target queue requested by the submitting user. 1391 For configuration 1, its value corresponds to the queue in 1392 the device for which the agent is providing access. For 1393 configuration 2 and 3, its value is the name of the queue 1394 that the user supplied to indicate to the server on which 1395 device(s) they wanted the job to be processed. 1397 NOTE - typically an implementation SHOULD support either 1398 the deviceNameRequested or queueNameRequested attribute, 1399 but not both. 1401 physicalDevice(32), hrDeviceIndex 1402 AND/OR 1403 JmUTF8StringTC (SIZE(0..63)) 1404 INTEGER: MULTI-ROW: The index of the physical device MIB 1405 instance requested/used, such as the Printer MIB[print- 1406 mib]. This value is an hrDeviceIndex value. See the Host 1407 Resources MIB[hr-mib]. 1409 AND/OR 1411 OCTETS: MULTI-ROW: The name of the physical device to 1412 which the job is assigned. 1414 numberOfDocuments(33), Integer32 (-2..2147483647) 1415 INTEGER: The number of documents in this job. 1417 The agent SHOULD return this attribute if the job has more 1418 than one document. 1420 fileName(34), JmJobStringTC (SIZE(0..63)) 1421 OCTETS: MULTI-ROW: The coded character set file name or 1422 URI[URI-spec] of the document. 1424 There is no restriction on the same file name occurring in 1425 multiple rows. 1427 documentName(35), JmJobStringTC (SIZE(0..63)) 1428 OCTETS: MULTI-ROW: The coded character set name of the 1429 document. 1431 There is no restriction on the same document name occurring 1432 in multiple rows. 1434 jobComment(36), JmJobStringTC (SIZE(0..63)) 1435 OCTETS: An arbitrary human-readable coded character text 1436 string supplied by the submitting user or the job 1437 submitting application program for any purpose. For 1438 example, a user might indicate what he/she is going to do 1439 with the printed output or the job submitting application 1440 program might indicate how the document was produced. 1442 The jobComment attribute is not intended to be a name; see 1443 the jobName attribute. 1445 documentFormatIndex(37), Integer32 (0..2147483647) 1446 INTEGER: MULTI-ROW: The index in the prtInterpreterTable 1447 in the Printer MIB[print-mib] of the page description 1448 language (PDL) or control language interpreter that this 1449 job requires/uses. A document or a job MAY use more than 1450 one PDL or control language. 1452 NOTE - As with all intensive attributes where multiple rows 1453 are allowed, there SHALL be only one distinct row for each 1454 distinct interpreter; there SHALL be no duplicates. 1456 NOTE - This attribute type is intended to be used with an 1457 agent that implements the Printer MIB and SHALL not be used 1458 if the agent does not implement the Printer MIB. Such an 1459 agent SHALL use the documentFormat attribute instead. 1461 documentFormat(38), PrtInterpreterLangFamilyTC 1462 AND/OR 1463 OCTET STRING(SIZE(0..63)) 1464 INTEGER: MULTI-ROW: The interpreter language family 1465 corresponding to the Printer MIB[print-mib] 1466 prtInterpreterLangFamily object, that this job 1467 requires/uses. A document or a job MAY use more than one 1468 PDL or control language. 1470 AND/OR 1472 OCTETS: MULTI-ROW: The document format registered as a 1473 media type[iana-media-types], i.e., the name of the MIME 1474 content-type/subtype. Examples: 'application/postscript', 1475 'application/vnd.hp-PCL', 'application/pdf', 'text/plain' 1476 (US-ASCII SHALL be assumed), 'text/plain; charset=iso-8859- 1477 1', and 'application/octet-stream'. The IPP 'document- 1478 format' job attribute uses these same values with the same 1479 semantics. See the IPP [ipp-model] 'mimeMediaType' 1480 attribute syntax and the document-format attribute for 1481 further examples and explanation. 1483 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1484 + Job Parameter attributes (50 - 67 decimal) 1485 + 1486 + The following attributes represent input parameters 1487 + supplied by the submitting client in the job submission 1488 + protocol. 1489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1491 jobPriority(50), Integer32 (-2..100) 1492 INTEGER: The priority for scheduling the job. It is used 1493 by servers and devices that employ a priority-based 1494 scheduling algorithm. 1496 A higher value specifies a higher priority. The value 1 is 1497 defined to indicate the lowest possible priority (a job 1498 which a priority-based scheduling algorithm SHALL pass over 1499 in favor of higher priority jobs). The value 100 is 1500 defined to indicate the highest possible priority. 1501 Priority is expected to be evenly or 'normally' distributed 1502 across this range. The mapping of vendor-defined priority 1503 over this range is implementation-specific. -2 indicates 1504 unknown. 1506 jobProcessAfterDateAndTime(51), DateAndTime (SNMPv2-TC) 1507 OCTETS: The calendar date and time of day after which the 1508 job SHALL become a candidate to be scheduled for 1509 processing. If the value of this attribute is in the 1510 future, the server SHALL set the value of the job's 1511 jmJobState object to pendingHeld and add the 1512 jobProcessAfterSpecified bit value to the job's 1513 jmJobStateReasons1 object. When the specified date and 1514 time arrives, the server SHALL remove the 1515 jobProcessAfterSpecified bit value from the job's 1516 jmJobStateReasons1 object and, if no other reasons remain, 1517 SHALL change the job's jmJobState object to pending. 1519 jobHold(52), JmBooleanTC 1520 INTEGER: If the value is 'true(4)', a client has 1521 explicitly specified that the job is to be held until 1522 explicitly released. Until the job is explicitly released 1523 by a client, the job SHALL be in the pendingHeld state with 1524 the jobHoldSpecified value in the jmJobStateReasons1 1525 attribute. 1527 jobHoldUntil(53), JmJobStringTC (SIZE(0..63)) 1528 OCTETS: The named time period during which the job SHALL 1529 become a candidate for processing, such as 'evening', 1530 'night', 'weekend', 'second-shift', 'third-shift', etc., 1531 (supported values configured by the system administrator). 1532 See IPP [ipp-model] for the standard keyword values. Until 1533 that time period arrives, the job SHALL be in the 1534 pendingHeld state with the jobHoldUntilSpecified value in 1535 the jmJobStateReasons1 object. The value 'no-hold' SHALL 1536 indicate explicitly that no time period has been specified; 1537 the absence of this attribute SHALL indicate implicitly 1538 that no time period has been specified. 1540 outputBin(54), Integer32 (0..2147483647) 1541 AND/OR 1542 JmJobStringTC (SIZE(0..63)) 1543 INTEGER: MULTI-ROW: The output subunit index in the 1544 Printer MIB[print-mib] 1546 AND/OR 1548 OCTETS: MULTI-ROW: the name or number (represented as 1549 ASCII digits) of the output bin to which all or part of the 1550 job is placed in. 1552 sides(55), Integer32 (-2..2) 1553 INTEGER: MULTI-ROW: The number of sides, '1' or '2', that 1554 any document in this job requires/used. 1556 finishing(56), JmFinishingTC 1557 INTEGER: MULTI-ROW: Type of finishing that any document 1558 in this job requires/used. 1560 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1561 + Image Quality attributes (requested and consumed) (70 - 87) 1562 + 1563 + For devices that can vary the image quality. 1564 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1566 printQualityRequested(70), JmPrintQualityTC 1567 INTEGER: MULTI-ROW: The print quality selection requested 1568 for a document in the job for printers that allow quality 1569 differentiation. 1571 printQualityUsed(71), JmPrintQualityTC 1572 INTEGER: MULTI-ROW: The print quality selection actually 1573 used by a document in the job for printers that allow 1574 quality differentiation. 1576 printerResolutionRequested(72), JmPrinterResolutionTC 1577 OCTETS: MULTI-ROW: The printer resolution requested for a 1578 document in the job for printers that support resolution 1579 selection. 1581 printerResolutionUsed(73), JmPrinterResolutionTC 1582 OCTETS: MULTI-ROW: The printer resolution actually used 1583 by a document in the job for printers that support 1584 resolution selection. 1586 tonerEcomonyRequested(74), JmTonerEconomyTC 1587 INTEGER: MULTI-ROW: The toner economy selection requested 1588 for documents in the job for printers that allow toner 1589 economy differentiation. 1591 tonerEcomonyUsed(75), JmTonerEconomyTC 1592 INTEGER: MULTI-ROW: The toner economy selection actually 1593 used by documents in the job for printers that allow toner 1594 economy differentiation. 1596 tonerDensityRequested(76) Integer32 (-2..100) 1597 INTEGER: MULTI-ROW: The toner density requested for a 1598 document in this job for devices that can vary toner 1599 density levels. Level 1 is the lowest density and level 1600 100 is the highest density level. Devices with a smaller 1601 range, SHALL map the 1-100 range evenly onto the 1602 implemented range. 1604 tonerDensityUsed(77), Integer32 (-2..100) 1605 INTEGER: MULTI-ROW: The toner density used by documents 1606 in this job for devices that can vary toner density levels. 1607 Level 1 is the lowest density and level 100 is the highest 1608 density level. Devices with a smaller range, SHALL map the 1609 1-100 range evenly onto the implemented range. 1611 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1612 + Job Progress attributes (requested and consumed) (90-109) 1613 + 1614 + Pairs of these attributes can be used by monitoring 1615 + applications to show an indication of relative progress 1616 + to users. See section 3.4, entitled: 1617 + 'Monitoring Job Progress'. 1618 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1620 jobCopiesRequested(90), Integer32 (-2..2147483647) 1621 INTEGER: The number of copies of the entire job that are 1622 to be produced. 1624 jobCopiesCompleted(91), Integer32 (-2..2147483647) 1625 INTEGER: The number of copies of the entire job that have 1626 been completed so far. 1628 documentCopiesRequested(92), Integer32 (-2..2147483647) 1629 INTEGER: The total count of the number of document copies 1630 requested for the job as a whole. If there are documents 1631 A, B, and C, and document B is specified to produce 4 1632 copies, the number of document copies requested is 6 for 1633 the job. 1635 This attribute SHALL be used only when a job has multiple 1636 documents. The jobCopiesRequested attribute SHALL be used 1637 when the job has only one document. 1639 documentCopiesCompleted(93), Integer32 (-2..2147483647) 1640 INTEGER: The total count of the number of document copies 1641 completed so far for the job as a whole. If there are 1642 documents A, B, and C, and document B is specified to 1643 produce 4 copies, the number of document copies starts a 0 1644 and runs up to 6 for the job as the job processes. 1646 This attribute SHALL be used only when a job has multiple 1647 documents. The jobCopiesCompleted attribute SHALL be used 1648 when the job has only one document. 1650 jobKOctetsTransferred(94), Integer32 (-2..2147483647) 1651 INTEGER: The number of K (1024) octets transferred to the 1652 server or device to which the agent is providing access. 1653 This count is independent of the number of copies of the 1654 job or documents that will be produced, but it is only a 1655 measure of the number of bytes transferred to the server or 1656 device. 1658 The agent SHALL round the actual number of octets 1659 transferred up to the next higher K. Thus 0 octets SHALL 1660 be represented as '0', 1-1024 octets SHALL BE represented 1661 as '1', 1025-2048 SHALL be '2', etc. When the job 1662 completes, the values of the jmJobKOctetsPerCopyRequested 1663 object and the jobKOctetsTransferred attribute SHALL be 1664 equal. 1666 NOTE - The jobKOctetsTransferred can be used with the 1667 jmJobKOctetsPerCopyRequested object in order to produce a 1668 relative indication of the progress of the job for agents 1669 that do not implement the jmJobKOctetsProcessed object. 1671 sheetCompletedCopyNumber(95), Integer32 (-2..2147483647) 1672 INTEGER: The number of the copy being stacked for the 1673 current document. This number starts at 0, is set to 1 1674 when the first sheet of the first copy for each document is 1675 being stacked and is equal to n where n is the nth sheet 1676 stacked in the current document copy. See section 3.4 , 1677 entitled 'Monitoring Job Progress'. 1679 sheetCompletedDocumentNumber(96), Integer32 (-2..2147483647) 1680 INTEGER: The ordinal number of the document in the job 1681 that is currently being stacked. This number starts at 0, 1682 increments to 1 when the first sheet of the first document 1683 in the job is being stacked, and is equal to n where n is 1684 the nth document in the job, starting with 1. 1686 Implementations that only support one document jobs SHOULD 1687 NOT implement this attribute. 1689 jobCollationType(97), JmJobCollationTypeTC 1690 INTEGER: The type of job collation. See also Section 3.4, 1691 entitled 'Monitoring Job Progress'. 1693 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1694 + Impression attributes (110 - 129 decimal) 1695 + 1696 + See the definition of the terms 'impression', 'sheet', 1697 + and 'page' in Section 2. 1698 + 1699 + See also jmJobImpressionsPerCopyRequested and 1700 + jmJobImpressionsCompleted objects in the jmJobTable. 1701 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1703 impressionsSpooled(110), Integer32 (-2..2147483647) 1704 INTEGER: The number of impressions spooled to the server 1705 or device for the job so far. 1707 impressionsSentToDevice(111), Integer32 (-2..2147483647) 1708 INTEGER: The number of impressions sent to the device for 1709 the job so far. 1711 impressionsInterpreted(112), Integer32 (-2..2147483647) 1712 INTEGER: The number of impressions interpreted for the job 1713 so far. 1715 impressionsCompletedCurrentCopy(113), 1716 Integer32 (-2..2147483647) 1717 INTEGER: The number of impressions completed by the device 1718 for the current copy of the current document so far. For 1719 printing, the impressions completed includes interpreting, 1720 marking, and stacking the output. For other types of job 1721 services, the number of impressions completed includes the 1722 number of impressions processed. 1724 This value SHALL be reset to 0 for each document in the job 1725 and for each document copy. 1727 fullColorImpressionsCompleted(114), Integer32 (-2..2147483647) 1728 INTEGER: The number of full color impressions completed by 1729 the device for this job so far. For printing, the 1730 impressions completed includes interpreting, marking, and 1731 stacking the output. For other types of job services, the 1732 number of impressions completed includes the number of 1733 impressions processed. Full color impressions are typically 1734 defined as those requiring 3 or more colorants, but this 1735 MAY vary by implementation. In any case, the value of this 1736 attribute counts by 1 for each side that has full color, 1737 not by the number of colors per side (and the other 1738 impression counters are incremented, except 1739 highlightColorImpressionsCompleted(115)). 1741 highlightColorImpressionsCompleted(115), 1742 Integer32 (-2..2147483647) 1743 INTEGER: The number of highlight color impressions 1744 completed by the device for this job so far. For printing, 1745 the impressions completed includes interpreting, marking, 1746 and stacking the output. For other types of job services, 1747 the number of impressions completed includes the number of 1748 impressions processed. Highlight color impressions are 1749 typically defined as those requiring black plus one other 1750 colorant, but this MAY vary by implementation. In any 1751 case, the value of this attribute counts by 1 for each side 1752 that has highlight color (and the other impression counters 1753 are incremented, except 1754 fullColorImpressionsCompleted(114)). 1756 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1757 + Page attributes (130 - 149 decimal) 1758 + 1759 + See the definition of 'impression', 'sheet', and 'page' 1760 + in Section 2. 1761 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1763 pagesRequested(130), Integer32 (-2..2147483647) 1764 INTEGER: The number of logical pages requested by the job 1765 to be processed. 1767 pagesCompleted(131), Integer32 (-2..2147483647) 1768 INTEGER: The number of logical pages completed for this 1769 job so far. 1771 For implementations where multiple copies are produced by 1772 the interpreter with only a single pass over the data, the 1773 final value SHALL be equal to the value of the 1774 pagesRequested object. For implementations where multiple 1775 copies are produced by the interpreter by processing the 1776 data for each copy, the final value SHALL be a multiple of 1777 the value of the pagesRequested object. 1779 NOTE - See the impressionsCompletedCurrentCopy and 1780 pagesCompletedCurrentCopy attributes for attributes that 1781 are reset on each document copy. 1783 NOTE - The pagesCompleted object can be used with the 1784 pagesRequested object to provide an indication of the 1785 relative progress of the job, provided that the 1786 multiplicative factor is taken into account for some 1787 implementations of multiple copies. 1789 pagesCompletedCurrentCopy(132), Integer32 (-2..2147483647) 1790 INTEGER: The number of logical pages completed for the 1791 current copy of the document so far. This value SHALL be 1792 reset to 0 for each document in the job and for each 1793 document copy. 1795 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1796 + Sheet attributes (150 - 169 decimal) 1797 + 1798 + See the definition of 'impression', 'sheet', and 'page' 1799 + in Section 2. 1800 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1802 sheetsRequested(150), Integer32 (-2..2147483647) 1803 INTEGER: The total number of medium sheets requested to be 1804 produced for this job. 1806 Unlike the jmJobKOctetsPerCopyRequested and 1807 jmJobImpressionsPerCopyRequested attributes, the 1808 sheetsRequested(150) attribute SHALL include the 1809 multiplicative factor contributed by the number of copies 1810 and so is the total number of sheets to be produced by the 1811 job, as opposed to the size of the document(s) submitted. 1813 sheetsCompleted(151), Integer32 (-2..2147483647) 1814 INTEGER: The total number of medium sheets that have 1815 completed marking and stacking for the entire job so far 1816 whether those sheets have been processed on one side or on 1817 both. 1819 sheetsCompletedCurrentCopy(152), Integer32 (-2..2147483647) 1820 INTEGER: The number of medium sheets that have completed 1821 marking and stacking for the current copy of a document in 1822 the job so far whether those sheets have been processed on 1823 one side or on both. 1825 The value of this attribute SHALL be 0 before the job 1826 starts processing and SHALL be reset to 1 after the first 1827 sheet of each document and document copy in the job is 1828 processed and stacked. 1830 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1831 + Resources attributes (requested and consumed) (170 - 189) 1832 + 1833 + Pairs of these attributes can be used by monitoring 1834 + applications to show an indication of relative usage to 1835 + users, i.e., a 'thermometer'. 1836 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1838 mediumRequested(170), JmMediumTypeTC 1839 AND/OR 1840 JmJobStringTC (SIZE(0..63)) 1841 INTEGER: MULTI-ROW: The type 1842 AND/OR 1843 OCTETS: MULTI-ROW: the name of the medium that is 1844 required by the job. 1846 NOTE - The name (JmJobStringTC) values correspond to the 1847 name values of the prtInputMediaName object in the Printer 1848 MIB [print-mib] and the name, size, and input tray values 1849 of the IPP 'media' attribute [ipp-model]. 1851 mediumConsumed(171), Integer32 (-2..2147483647) 1852 AND 1853 JmJobStringTC (SIZE(0..63)) 1854 INTEGER: MULTI-ROW: The number of sheets 1855 AND 1856 OCTETS: MULTI-ROW: the name of the medium that has been 1857 consumed so far whether those sheets have been processed on 1858 one side or on both. 1860 This attribute SHALL have both Integer32 and OCTET STRING 1861 (represented as JmJobStringTC) values. 1863 NOTE - The name (JmJobStringTC) values correspond to the 1864 name values of the prtInputMediaName object in the Printer 1865 MIB [print-mib] and the name, size, and input tray values 1866 of the IPP 'media' attribute [ipp-model]. 1868 colorantRequested(172), Integer32 (-2..2147483647) 1869 AND/OR 1870 JmJobStringTC (SIZE(0..63)) 1871 INTEGER: MULTI-ROW: The index (prtMarkerColorantIndex) in 1872 the Printer MIB[print-mib] 1873 AND/OR 1874 OCTETS: MULTI-ROW: the name of the colorant requested. 1876 NOTE - The name (JmJobStringTC) values correspond to the 1877 name values of the prtMarkerColorantValue object in the 1878 Printer MIB. Examples are: red, blue. 1880 colorantConsumed(173), Integer32 (-2..2147483647) 1881 AND/OR 1882 JmJobStringTC (SIZE(0..63)) 1883 INTEGER: MULTI-ROW: The index (prtMarkerColorantIndex) in 1884 the Printer MIB[print-mib] 1885 AND/OR 1886 OCTETS: MULTI-ROW: the name of the colorant consumed. 1888 NOTE - The name (JmJobStringTC) values correspond to the 1889 name values of the prtMarkerColorantValue object in the 1890 Printer MIB. Examples are: red, blue 1892 mediumTypeConsumed(174), Integer32 (-2..2147483647) 1893 AND 1894 JmJobStringTC (SIZE(0..63)) 1895 INTEGER: MULTI-ROW: The number of sheets of the indicated 1896 medium type that has been consumed so far whether those 1897 sheets have been processed on one side or on both 1898 AND 1899 OCTETS: MULTI-ROW: the name of that medium type. 1901 This attribute SHALL have both Integer32 and OCTET STRING 1902 (represented as JmJobStringTC) values. 1904 NOTE - The type name (JmJobStringTC) values correspond to 1905 the type name values of the prtInputMediaType object in the 1906 Printer MIB [print-mib]. Values are: 'stationery', 1907 'transparency', 'envelope', etc. These medium type names 1908 correspond to the enum values of JmMediumTypeTC used in the 1909 mediumRequested attribute. 1911 mediumSizeConsumed(175), Integer32 (-2..2147483647) 1912 AND 1913 JmJobStringTC (SIZE(0..63)) 1914 INTEGER: MULTI-ROW: The number of sheets of the indicated 1915 medium size that has been consumed so far whether those 1916 sheets have been processed on one side or on both 1917 AND 1918 OCTETS: MULTI-ROW: the name of that medium size. 1920 This attribute SHALL have both Integer32 and OCTET STRING 1921 (represented as JmJobStringTC) values. 1923 NOTE - The size name (JmJobStringTC) values correspond to 1924 the size name values in the Printer MIB [print-mib] 1925 Appendix B. These size name values are also a subset of 1926 the keyword values defined by [ipp-model] for the 'media' 1927 Job Template attribute. Values are: 'letter', 'a', 'iso- 1928 a4', 'jis-b4', etc. 1930 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1931 + Time attributes (set by server or device) (190 - 209 decimal) 1932 + 1933 + This section of attributes are ones that are set by the 1934 + server or device that accepts jobs. Two forms of time are 1935 + provided. Each form is represented in a separate attribute. 1936 + See section 3.1.2 and section 3.1.3 for the 1937 + conformance requirements for time attribute for agents and 1938 + monitoring applications, respectively. The two forms are: 1939 + 1940 + 'DateAndTime' is an 8 or 11 octet binary encoded year, 1941 + month, day, hour, minute, second, deci-second with 1942 + optional offset from UTC. See SNMPv2-TC [SMIv2-TC]. 1943 + 1944 + NOTE: 'DateAndTime' is not printable characters; it is 1945 + binary. 1946 + 1947 + 'JmTimeStampTC' is the time of day measured in the number of 1948 + seconds since the system was booted. 1949 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1951 jobSubmissionToServerTime(190), JmTimeStampTC 1952 AND/OR 1953 DateAndTime 1954 INTEGER: Configuration 3 only: The time 1955 AND/OR 1956 OCTETS: the date and time that the job was submitted to 1957 the server (as distinguished from the device which uses 1958 jobSubmissionTime). 1960 jobSubmissionTime(191), JmTimeStampTC 1961 AND/OR 1962 DateAndTime 1963 INTEGER: Configurations 1, 2, and 3: The time 1964 AND/OR 1965 OCTETS: the date and time that the job was submitted to 1966 the server or device to which the agent is providing 1967 access. 1969 jobStartedBeingHeldTime(192), JmTimeStampTC 1970 AND/OR 1971 DateAndTime 1972 INTEGER: The time 1973 AND/OR 1974 OCTETS: the date and time that the job last entered the 1975 pendingHeld state. If the job has never entered the 1976 pendingHeld state, then the value SHALL be '0' or the 1977 attribute SHALL not be present in the table. 1979 jobStartedProcessingTime(193), JmTimeStampTC 1980 AND/OR 1981 DateAndTime 1982 INTEGER: The time 1983 AND/OR 1984 OCTETS: the date and time that the job started processing. 1986 jobCompletionTime(194), JmTimeStampTC 1987 AND/OR 1988 DateAndTime 1989 INTEGER: The time 1990 AND/OR 1991 OCTETS: the date and time that the job entered the 1992 completed, canceled, or aborted state. 1994 jobProcessingCPUTime(195) Integer32 (-2..2147483647) 1995 UNITS 'seconds' 1996 INTEGER: The amount of CPU time in seconds that the job 1997 has been in the processing state. If the job enters the 1998 processingStopped state, that elapsed time SHALL not be 1999 included. In other words, the jobProcessingCPUTime value 2000 SHOULD be relatively repeatable when the same job is 2001 processed again on the same device. 2003 3.3.9 Job State Reason bit definitions 2005 The JmJobStateReasonsNTC (N=1..4) textual-conventions are used with the 2006 jmJobStateReasons1 object and jobStateReasonsN (N=2..4), respectively, 2007 to provide additional information regarding the current jmJobState 2008 object value. These values MAY be used with any job state or states 2009 for which the reason makes sense. 2011 NOTE - While values cannot be added to the jmJobState object without 2012 impacting deployed clients that take actions upon receiving jmJobState 2013 values, it is the intent that additional JmJobStateReasonsNTC enums can 2014 be defined and registered without impacting such deployed clients. In 2015 other words, the jmJobStateReasons1 object and jobStateReasonsN 2016 attributes are intended to be extensible. 2018 NOTE - The Job Monitoring MIB contains a superset of the IPP 2019 values[ipp-model] for the IPP 'job-state-reasons' attribute, since the 2020 Job Monitoring MIB is intended to cover other job submission protocols 2021 as well. Also some of the names of the reasons have been changed from 2022 'printer' to 'device', since the Job Monitoring MIB is intended to 2023 cover additional types of devices, including input devices, such as 2024 scanners. 2026 3.3.9.1 JmJobStateReasons1TC specification 2028 The following standard values are defined (in hexadecimal) as powers of 2029 two, since multiple values MAY be used at the same time. For ease of 2030 understanding, the JmJobStateReasons1TC reasons are presented in the 2031 order in which the reasons are likely to occur (if implemented), 2032 starting with the 'jobIncoming' value and ending with the 2033 'jobCompletedWithErrors' value. 2035 other 0x1 2036 The job state reason is not one of the standardized or 2037 registered reasons. 2039 unknown 0x2 2040 The job state reason is not known to the agent or is 2041 indeterminent. 2043 jobIncoming 0x4 2044 The job has been accepted by the server or device, but the 2045 server or device is expecting (1) additional operations 2046 from the client to finish creating the job and/or (2) is 2047 accessing/accepting document data. 2049 submissionInterrupted 0x8 2050 The job was not completely submitted for some unforeseen 2051 reason, such as: (1) the server has crashed before the job 2052 was closed by the client, (2) the server or the document 2053 transfer method has crashed in some non-recoverable way 2054 before the document data was entirely transferred to the 2055 server, (3) the client crashed or failed to close the job 2056 before the time-out period. 2058 jobOutgoing 0x10 2059 Configuration 2 only: The server is transmitting the job 2060 to the device. 2062 jobHoldSpecified 0x20 2063 The value of the job's jobHold(52) attribute is TRUE. The 2064 job SHALL NOT be a candidate for processing until this 2065 reason is removed and there are no other reasons to hold 2066 the job. 2068 jobHoldUntilSpecified 0x40 2069 The value of the job's jobHoldUntil(53) attribute specifies 2070 a time period that is still in the future. The job SHALL 2071 NOT be a candidate for processing until this reason is 2072 removed and there are no other reasons to hold the job. 2074 jobProcessAfterSpecified 0x80 2075 The value of the job's jobProcessAfterDateAndTime(51) 2076 attribute specifies a time that is still in the future. 2077 The job SHALL NOT be a candidate for processing until this 2078 reason is removed and there are no other reasons to hold 2079 the job. 2081 resourcesAreNotReady 0x100 2082 At least one of the resources needed by the job, such as 2083 media, fonts, resource objects, etc., is not ready on any 2084 of the physical devices for which the job is a candidate. 2085 This condition MAY be detected when the job is accepted, or 2086 subsequently while the job is pending or processing, 2087 depending on implementation. 2089 deviceStoppedPartly 0x200 2090 One or more, but not all, of the devices to which the job 2091 is assigned are stopped. If all of the devices are stopped 2092 (or the only device is stopped), the deviceStopped reason 2093 SHALL be used. 2095 deviceStopped 0x400 2096 The device(s) to which the job is assigned is (are all) 2097 stopped. 2099 jobInterpreting 0x800 2100 The device to which the job is assigned is interpreting the 2101 document data. 2103 jobPrinting 0x1000 2104 The output device to which the job is assigned is marking 2105 media. This value is useful for servers and output devices 2106 which spend a great deal of time processing (1) when no 2107 marking is happening and then want to show that marking is 2108 now happening or (2) when the job is in the process of 2109 being canceled or aborted while the job remains in the 2110 processing state, but the marking has not yet stopped so 2111 that impression or sheet counts are still increasing for 2112 the job. 2114 jobCanceledByUser 0x2000 2115 The job was canceled by the owner of the job, i.e., by a 2116 user whose name is the same as the value of the job's 2117 jmJobOwner object, or by some other authorized end-user, 2118 such as a member of the job owner's security group. 2120 jobCanceledByOperator 0x4000 2121 The job was canceled by the operator, i.e., by a user who 2122 has been authenticated as having operator privileges 2123 (whether local or remote). 2125 jobCanceledAtDevice 0x8000 2126 The job was canceled by an unidentified local user, i.e., a 2127 user at a console at the device. 2129 abortedBySystem 0x10000 2130 The job (1) is in the process of being aborted, (2) has 2131 been aborted by the system and placed in the 'aborted' 2132 state, or (3) has been aborted by the system and placed in 2133 the 'pendingHeld' state, so that a user or operator can 2134 manually try the job again. 2136 processingToStopPoint 0x20000 2137 The requester has issued an operation to cancel or 2138 interrupt the job or the server/device has aborted the job, 2139 but the server/device is still performing some actions on 2140 the job until a specified stop point occurs or job 2141 termination/cleanup is completed. 2143 This reason is recommended to be used in conjunction with 2144 the processing job state to indicate that the server/device 2145 is still performing some actions on the job while the job 2146 remains in the processing state. After all the job's 2147 resources consumed counters have stopped incrementing, the 2148 server/device moves the job from the processing state to 2149 the canceled or aborted job states. 2151 serviceOffLine 0x40000 2152 The service or document transform is off-line and accepting 2153 no jobs. All pending jobs are put into the pendingHeld 2154 state. This situation could be true if the service's or 2155 document transform's input is impaired or broken. 2157 jobCompletedSuccessfully 0x80000 2158 The job completed successfully. 2160 jobCompletedWithWarnings 0x100000 2161 The job completed with warnings. 2163 jobCompletedWithErrors 0x200000 2164 The job completed with errors (and possibly warnings too). 2166 The following additional job state reasons have been added to represent 2167 job states that are in ISO DPA[iso-dpa] and other job submission 2168 protocols: 2170 jobPaused 0x400000 2171 The job has been indefinitely suspended by a client issuing 2172 an operation to suspend the job so that other jobs may 2173 proceed using the same devices. The client MAY issue an 2174 operation to resume the paused job at any time, in which 2175 case the agent SHALL remove the jobPaused values from the 2176 job's jmJobStateReasons1 object and the job is eventually 2177 resumed at or near the point where the job was paused. 2179 jobInterrupted 0x800000 2180 The job has been interrupted while processing by a client 2181 issuing an operation that specifies another job to be run 2182 instead of the current job. The server or device will 2183 automatically resume the interrupted job when the 2184 interrupting job completes. 2186 jobRetained 0x1000000 2187 The job is being retained by the server or device with all 2188 of the job's document data (and submitted resources, such 2189 as fonts, logos, and forms, if any). Thus a client could 2190 issue an operation to the server or device to either (1) 2191 re-do the job (or a copy of the job) on the same server or 2192 device or (2) resubmit the job to another server or device. 2193 When a client could no longer re-do/resubmit the job, such 2194 as after the document data has been discarded, the agent 2195 SHALL remove the jobRetained value from the 2196 jmJobStateReasons1 object. 2198 These bit definitions are the equivalent of a type 2 enum except that 2199 combinations of bits may be used together. See section 3.7.1.2. The 2200 remaining bits are reserved for future standardization and/or 2201 registration. 2203 3.3.9.2 JmJobStateReasons2TC specification 2205 The following standard values are defined (in hexadecimal) as powers of 2206 two, since multiple values MAY be used at the same time. 2208 cascaded 0x1 2209 An outbound gateway has transmitted all of the job's job 2210 and document attributes and data to another spooling 2211 system. 2213 deletedByAdministrator 0x2 2214 The administrator has deleted the job. 2216 discardTimeArrived 0x4 2217 The job has been deleted due to the fact that the time 2218 specified by the job's job-discard-time attribute has 2219 arrived. 2221 postProcessingFailed 0x8 2222 The post-processing agent failed while trying to log 2223 accounting attributes for the job; therefore the job has 2224 been placed into the completed state with the jobRetained 2225 jmJobStateReasons1 object value for a system-defined period 2226 of time, so the administrator can examine it, resubmit it, 2227 etc. 2229 jobTransforming 0x10 2230 The server/device is interpreting document data and 2231 producing another electronic representation. 2233 maxJobFaultCountExceeded 0x20 2234 The job has faulted several times and has exceeded the 2235 administratively defined fault count limit. 2237 devicesNeedAttentionTimeOut 0x40 2238 One or more document transforms that the job is using needs 2239 human intervention in order for the job to make progress, 2240 but the human intervention did not occur within the site- 2241 settable time-out value. 2243 needsKeyOperatorTimeOut 0x80 2244 One or more devices or document transforms that the job is 2245 using need a specially trained operator (who may need a key 2246 to unlock the device and gain access) in order for the job 2247 to make progress, but the key operator intervention did not 2248 occur within the site-settable time-out value. 2250 jobStartWaitTimeOut 0x100 2251 The server/device has stopped the job at the beginning of 2252 processing to await human action, such as installing a 2253 special cartridge or special non-standard media, but the 2254 job was not resumed within the site-settable time-out value 2255 and the server/device has transitioned the job to the 2256 pendingHeld state. 2258 jobEndWaitTimeOut 0x200 2259 The server/device has stopped the job at the end of 2260 processing to await human action, such as removing a 2261 special cartridge or restoring standard media, but the job 2262 was not resumed within the site-settable time-out value and 2263 the server/device has transitioned the job to the completed 2264 state. 2266 jobPasswordWaitTimeOut 0x400 2267 The server/device has stopped the job at the beginning of 2268 processing to await input of the job's password, but the 2269 password was not received within the site-settable time-out 2270 value. 2272 deviceTimedOut 0x800 2273 A device that the job was using has not responded in a 2274 period specified by the device's site-settable attribute. 2276 connectingToDeviceTimeOut 0x1000 2277 The server is attempting to connect to one or more devices 2278 which may be dial-up, polled, or queued, and so may be busy 2279 with traffic from other systems, but server was unable to 2280 connect to the device within the site-settable time-out 2281 value. 2283 transferring 0x2000 2284 The job is being transferred to a down stream server or 2285 downstream device. 2287 queuedInDevice 0x4000 2288 The server/device has queued the job in a down stream 2289 server or downstream device. 2291 jobQueued 0x8000 2292 The server/device has queued the document data. 2294 jobCleanup 0x10000 2295 The server/device is performing cleanup activity as part of 2296 ending normal processing. 2298 jobPasswordWait 0x20000 2299 The server/device has selected the job to be next to 2300 process, but instead of assigning resources and starting 2301 the job processing, the server/device has transitioned the 2302 job to the pendingHeld state to await entry of a password 2303 (and dispatched another job, if there is one). 2305 validating 0x40000 2306 The server/device is validating the job after accepting the 2307 job. 2309 queueHeld 0x80000 2310 The operator has held the entire job set or queue. 2312 jobProofWait 0x100000 2313 The job has produced a single proof copy and is in the 2314 pendingHeld state waiting for the requester to issue an 2315 operation to release the job to print normally, obeying any 2316 job and document copy attributes that were originally 2317 submitted. 2319 heldForDiagnostics 0x200000 2320 The system is running intrusive diagnostics, so that all 2321 jobs are being held. 2323 noSpaceOnServer 0x800000 2324 There is no room on the server to store all of the job. 2326 pinRequired 0x1000000 2327 The System Administrator settable device policy is (1) to 2328 require PINs, and (2) to hold jobs that do not have a pin 2329 supplied as an input parameter when the job was created. 2331 exceededAccountLimit 0x2000000 2332 The account for which this job is drawn has exceeded its 2333 limit. This condition SHOULD be detected before the job is 2334 scheduled so that the user does not wait until his/her job 2335 is scheduled only to find that the account is overdrawn. 2336 This condition MAY also occur while the job is processing 2337 either as processing begins or part way through processing. 2339 heldForRetry 0x4000000 2340 The job encountered some errors that the server/device 2341 could not recover from with its normal retry procedures, 2342 but the error might not be encountered if the job is 2343 processed again in the future. Example cases are phone 2344 number busy or remote file system in-accessible. For such 2345 a situation, the server/device SHALL transition the job 2346 from the processing to the pendingHeld, rather than to the 2347 aborted state. 2349 The following values are from the X/Open PSIS draft standard: 2351 canceledByShutdown 0x8000000 2352 The job was canceled because the server or device was 2353 shutdown before completing the job. 2355 deviceUnavailable 0x10000000 2356 This job was aborted by the system because the device is 2357 currently unable to accept jobs. 2359 wrongDevice 0x20000000 2360 This job was aborted by the system because the device is 2361 unable to handle this particular job; the spooler SHOULD 2362 try another device or the user should submit the job to 2363 another device. 2365 badJob 0x40000000 2366 This job was aborted by the system because this job has a 2367 major problem, such as an ill-formed PDL; the spooler 2368 SHOULD not even try another device. 2370 These bit definitions are the equivalent of a type 2 enum except that 2371 combinations of them may be used together. See section 3.7.1.2. 2373 3.3.9.3 JmJobStateReasons3TC specification 2375 This textual-convention is used with the jobStateReasons3 attribute to 2376 provides additional information regarding the jmJobState object. The 2377 following standard values are defined (in hexadecimal) as powers of 2378 two, since multiple values may be used at the same time: 2380 jobInterruptedByDeviceFailure 0x1 2381 A device or the print system software that the job was 2382 using has failed while the job was processing. The server 2383 or device is keeping the job in the pendingHeld state until 2384 an operator can determine what to do with the job. 2386 These bit definitions are the equivalent of a type 2 enum except that 2387 combinations of them may be used together. See section 3.7.1.2. The 2388 remaining bits are reserved for future standardization and/or 2389 registration. 2391 3.3.9.4 JmJobStateReasons4TC specification 2393 This textual-convention is used with the jobStateReasons4 attribute to 2394 provides additional information regarding the jmJobState object. The 2395 following standard values are defined (in hexadecimal) as powers of 2396 two, since multiple values MAY be used at the same time. 2398 None defined at this time. 2400 These bit definitions are the equivalent of a type 2 enum except that 2401 combinations of them may be used together. See section 3.7.1.2. The 2402 remaining bits are reserved for future standardization and/or 2403 registration. 2405 3.4 Monitoring Job Progress 2407 There are a number of objects and attributes for monitoring the 2408 progress of a job. These objects and attributes count the number of K 2409 octets, impressions, sheets, and pages requested or completed. For 2410 impressions and sheets, "completed" means stacked, unless the 2411 implementation is unable to detect when each sheet is stacked, in which 2412 case stacked is approximated when processing of each sheet completes. 2413 There are objects and attributes for the overall job and for the 2414 current copy of the document currently being stacked. For the latter, 2415 the rate at which the various objects and attributes count depends on 2416 the sheet and document collation of the job. 2418 Job Collation included sheet collation and document collation. Sheet 2419 collation is defined to be the ordering of sheets within a document 2420 copy. Document collation is defined to be ordering of document copies 2421 within a multi-document job. There are three types of job collation 2422 (see terminology definitions in Section 2): 2424 1.uncollatedSheets(3) - No collation of the sheets within each 2425 document copy, i.e., each sheet of a document that is to 2426 produce multiple copies is replicated before the next sheet in 2427 the document is processed and stacked. If the device has an 2428 output bin collator, the uncollatedSheets(3) value may actually 2429 produce collated sheets as far as the user is concerned (in the 2430 output bins). However, when the job collation is the 2431 'uncollatedSheets(3)' value, job progress is indistinguishable 2432 to a monitoring application between a device that has an output 2433 bin collator and one that does not. 2435 2.collatedDocuments(4) - Collation of the sheets within each 2436 document copy is performed within the printing device by making 2437 multiple passes over either the source or an intermediate 2438 representation of the document. In addition, when there are 2439 multiple documents per job, the i'th copy of each document is 2440 stacked before the j'th copy of each document, i.e., the 2441 documents are collated within each job copy. For example, if a 2442 job is submitted with documents, A and B, the job is made 2443 available to the end user as: A, B, A, B, .... The 2444 'collatedDocuments(4)' value corresponds to the IPP [ipp-model] 2445 'separate-documents-collated-copies' value of the "multiple- 2446 document-handling" attribute. 2448 If jobCopiesRequested or documentCopiesRequested = 1, then 2449 jobCollationType is defined as 4. 2451 3.uncollatedDocuments(5) - Collation of the sheets within each 2452 document copy is performed within the printing device by making 2453 multiple passes over either the source or an intermediate 2454 representation of the document. In addition, when there are 2455 multiple documents per job, all copies of the first document in 2456 the job are stacked before the any copied of the next document 2457 in the job, i.e., the documents are uncollated within the job. 2458 For example, if a job is submitted with documents, A and B, the 2459 job is mad available to the end user as: A, A, ..., B, B, .... 2460 The 'uncollatedDocuments(5)' value corresponds to the IPP [ipp- 2461 model] 'separate-documents-uncollated-copies' value of the 2462 "multiple-document-handling" attribute. 2464 Consider the following four variables that are used to monitor the 2465 progress of a job's impressions: 2467 1.jmJobImpressionsCompleted - counts the total number of 2468 impressions stacked for the job 2470 2.impressionsCompletedCurrentCopy - counts the number of 2471 impressions stacked for the current document copy 2473 3.sheetCompletedCopyNumber - identifies the number of the copy 2474 for the current document being stacked where the first copy is 2475 1. 2477 4.sheetCompletedDocumentNumber - identifies the current document 2478 within the job that is being stacked where the first document 2479 in a job is 1. NOTE: this attribute SHOULD NOT be implemented 2480 for implementations that only support one document per job. 2482 For each of the three types of job collation, a job with three copies 2483 of two documents (1, 2), where each document consists of 3 impressions, 2484 the four variables have the following values as each sheet is stacked 2485 for one-sided printing: 2487 Job Collation Type = uncollatedSheets(3) 2489 jmJobImpressions Impressions sheetCompleted sheetCompleted 2490 Completed CompletedCurrent CopyNumber DocumentNumber 2491 Copy 2493 0 0 0 0 2494 1 1 1 1 2495 2 1 2 1 2496 3 1 3 1 2497 4 2 1 1 2498 5 2 2 1 2499 6 2 3 1 2500 7 3 1 1 2501 8 3 2 1 2502 9 3 3 1 2503 10 1 1 2 2504 11 1 2 2 2505 12 1 3 2 2506 13 2 1 2 2507 14 2 2 2 2508 15 2 3 2 2509 16 3 1 2 2510 17 3 2 2 2511 18 3 3 2 2512 Job Collation Type = collatedDocuments(4) 2514 JmJobImpressions Impressions sheetCompleted sheetCompleted 2515 Completed CompletedCurrent CopyNumber DocumentNumber 2516 Copy 2518 0 0 0 0 2519 1 1 1 1 2520 2 2 1 1 2521 3 3 1 1 2522 4 1 1 2 2523 5 2 1 2 2524 6 3 1 2 2525 7 1 2 1 2526 8 2 2 1 2527 9 3 2 1 2528 10 1 2 2 2529 11 2 2 2 2530 12 3 2 2 2531 13 1 3 1 2532 14 2 3 1 2533 15 3 3 1 2534 16 1 3 2 2535 17 2 3 2 2536 18 3 3 2 2537 Job Collation Type = uncollatedDocuments(5) 2539 jmJobImpressions Impressions sheetCompleted sheetCompleted 2540 Completed CompletedCurrent CopyNumber DocumentNumber 2541 Copy 2543 0 0 0 0 2544 1 1 1 1 2545 2 2 1 1 2546 3 3 1 1 2547 4 1 2 1 2548 5 2 2 1 2549 6 3 2 1 2550 7 1 3 1 2551 8 2 3 1 2552 9 3 3 1 2553 10 1 1 2 2554 11 2 1 2 2555 12 3 1 2 2556 13 1 2 2 2557 14 2 2 2 2558 15 3 2 2 2559 16 1 3 2 2560 17 2 3 2 2561 18 3 3 2 2563 3.5 Job Identification 2565 There are a number of attributes that permit a user, operator or system 2566 administrator to identify jobs of interest, such as jobURI, jobName, 2567 jobOriginatingHost, etc. In addition, there is a jmJobSubmissionID 2568 object that is a text string table index. Being a table index allows a 2569 monitoring application to quickly locate and identify a particular job 2570 of interest that was submitted from a particular client by the user 2571 invoking the monitoring application without having to scan the entire 2572 job table. The Job Monitoring MIB needs to provide for identification 2573 of the job at both sides of the job submission process. The primary 2574 identification point is the client side. The jmJobSubmissionID allows 2575 the monitoring application to identify the job of interest from all the 2576 jobs currently "known" by the server or device. The value of 2577 jmJobSubmissionID can be assigned by either the client's local system 2578 or a downstream server or device. The point of assignment depends on 2579 the job submission protocol in use. 2581 The server/device-side identifier, called the jmJobIndex object, SHALL 2582 be assigned by the SNMP Job Monitoring MIB agent when the server or 2583 device accepts the jobs from submitting clients. The jmJobIndex object 2584 allows the interested party to obtain all objects desired that relate 2585 to a particular job. See Section 3.2, entitled 'The Job Tables and the 2586 Oldest Active and Newest Active Indexes' for the specification of how 2587 the agent SHALL assign the jmJobIndex values. 2589 The MIB provides a mapping table that maps each jmJobSubmissionID value 2590 to a corresponding jmJobIndex value generated by the agent, so that an 2591 application can determine the correct value for the jmJobIndex value 2592 for the job of interest in a single Get operation, given the Job 2593 Submission ID. See the jmJobIDGroup. 2595 In some configurations there may be more than one application program 2596 that monitors the same job when the job passes from one network entity 2597 to another when it is submitted. See configuration 3. When there are 2598 multiple job submission IDs, each entity MAY supply an appropriate 2599 jmJobSubmissionID value. In this case there would be a separate entry 2600 in the jmJobSubmissionID table, one for each jmJobSubmissionID. All 2601 entries would map to the same jmJobIndex that contains the job data. 2602 When the job is deleted, it is up to the agent to remove all entries 2603 that point to the job from the jmJobSubmissionID table as well. 2605 The jobName attribute provides a name that the user supplies as a job 2606 attribute with the job. The jobName attribute is not necessarily 2607 unique, even for one user, let alone across users. 2609 3.5.1 The Job Submission ID specifications 2611 This section specifies the formats for each of the registered Job 2612 Submission Ids. This format is used by the JmJobSubmissionIDTypeTC. 2613 Each job submission ID is a fixed-length, 48-octet printable US-ASCII 2614 [US-ASCII] coded character string containing no control characters, 2615 consisting of the following fields: 2617 octet 1: The format letter identifying the format. The US- 2618 ASCII characters '0-9', 'A-Z', and 'a-z' are assigned in 2619 order giving 62 possible formats. 2620 octets 2-40: A 39-character, US-ASCII trailing SPACE filled 2621 field specified by the format letter, if the data is less 2622 than 39 ASCII characters. 2623 octets 41-48: A sequential or random US-ASCII number to make 2624 the ID quasi-unique. 2626 If the client does not supply a job submission ID in the job submission 2627 protocol, then the agent SHALL assign a job submission ID using any of 2628 the standard formats that are reserved for the agent. Clients SHALL 2629 not use formats that are reserved for agents and agents SHALL NOT use 2630 formats that are reserved for clients, in order to reduce conflicts in 2631 ID generation. See the description for which formats are reserved for 2632 clients or for agents. 2634 Registration of additional formats may be done following the procedures 2635 described in Section 3.7.3. 2637 The format values defined at the time of completion of this 2638 specification are: 2640 Format 2641 Letter Description 2642 ------ ------------ 2643 '0' Job Owner generated by the server/device 2644 octets 2-40: The last 39 bytes of the jmJobOwner object. 2645 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2646 assigned by the agent. 2647 This format is reserved for agents. 2649 NOTE - Clients wishing to use a job submission ID that 2650 incorporates the job owner, SHALL use format '8', not 2651 format '0'. 2653 '1' Job Name 2654 octets 2-40: The last 39 bytes of the jobName attribute. 2655 octets 41-48: The US-ASCII 8-decimal-digit random number 2656 assigned by the client. 2657 This format is reserved for clients. 2659 '2' Client MAC address 2660 octets 2-40: The client MAC address: in hexadecimal with each 2661 nibble of the 6 octet address being '0'-'9' or 'A' - 'F' 2662 (uppercase only). Most significant octet first. 2663 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2664 assigned by the client. 2665 This format is reserved for clients. 2667 '3' Client URL 2668 octets 2-40: The last 39 bytes of the client URL [URI-spec]. 2669 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2670 assigned by the client. 2671 This format is reserved for clients. 2673 '4' Job URI 2674 octets 2-40: The last 39 bytes of the URI [URI-spec] assigned 2675 by the server or device to the job when the job was 2676 submitted for processing. 2677 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2678 assigned by the agent. 2679 This format is reserved for agents. 2681 '5' POSIX User Number 2682 octets 2-40: The last 39 bytes of a user number, such as POSIX 2683 user number. 2684 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2685 assigned by the client. 2687 This format is reserved for clients. 2689 '6' User Account Number 2690 octets 2-40: The last 39 bytes of the user account number. 2691 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2692 assigned by the client. 2693 This format is reserved for clients. 2695 '7' DTMF Incoming FAX routing number 2696 octets 2-40: The last 39 bytes of the DTMF incoming FAX 2697 routing number. 2698 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2699 assigned by the client. 2700 This format is reserved for clients. 2702 '8' Job Owner supplied by the client 2703 octets 2-40: The last 39 bytes of the job owner name (that the 2704 agent returns in the jmJobOwner object). 2705 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2706 assigned by the client. 2707 This format is reserved for clients. See format '0' which is 2708 reserved for agents. 2710 '9' Host Name 2711 octets 2-40: The last 39 bytes of the host name with trailing 2712 SPACES that submitted the job to this server/device using a 2713 protocol, such as LPD [RFC1179] which includes the host 2714 name in the job submission protocol. 2715 octets 41-48: The US-ASCII 8-decimal-digit leading zero 2716 representation of the job id generated by the submitting 2717 server (configuration 3) or the client (configuration 1 and 2718 2), such as in the LPD protocol. 2719 This format is reserved for clients. 2721 'A' AppleTalk Protocol 2722 octets 2-40: Contains the AppleTalk printer name, with the 2723 first character of the name in octet 2. AppleTalk printer 2724 names are a maximum of 31 characters. Any unused portion 2725 of this field shall be filled with spaces. 2726 octets 41-48: '00000XXX', where 'XXX' is the 3-digit US-ASCII 2727 decimal representation of the Connection Id. 2728 This format is reserved for agents. 2730 'B' NetWare PServer 2731 octets 2-40: Contains the Directory Path Name as recorded by 2732 the Novell File Server in the queue directory. If the 2733 string is less than 40 octets, the left-most character in 2734 the string shall appear in octet position 2. Otherwise, 2735 only the last 39 bytes shall be included. Any unused 2736 portion of this field shall be filled with spaces. 2737 octets 41-48: '000XXXXX' The US-ASCII representation of the 2738 Job Number as per the NetWare File Server Queue Management 2739 Services. 2740 This format is reserved for agents. 2742 'C' Server Message Block protocol (SMB) 2743 octets 2-40: Contains a decimal (US-ASCII coded) 2744 representation of the 16 bit SMB Tree Id field, which 2745 uniquely identifies the connection that submitted the job 2746 to the printer. The most significant digit of the numeric 2747 string shall be placed in octet position 2. All unused 2748 portions of this field shall be filled with spaces. The 2749 SMB Tree Id has a maximum value of 65,535. 2750 octets 41-48: The US-ASCII 8-decimal-digit leading zero 2751 representation of the File Handle returned from the device 2752 to the client in response to a Create Print File command. 2753 This format is reserved for agents. 2755 'D' Transport Independent Printer/System Interface (TIP/SI) 2756 octets 2-40: Contains the Job Name from the Job Control-Start 2757 Job (JC-SJ) command. If the Job Name portion is less than 2758 40 octets, the left-most character in the string shall 2759 appear in octet position 2. Any unused portion of this 2760 field shall be filled with spaces. Otherwise, only the 2761 last 39 bytes shall be included. 2762 octets 41-48: The US-ASCII 8-decimal-digit leading zero 2763 representation of the jmJobIndex assigned by the agent. 2764 This format is reserved for agents, since the agent supplies 2765 octets 41-48, though the client supplies the job name. See 2766 format '1' reserved to clients to submit job name ids in 2767 which they supply octets 41-48. 2769 'E' IPDS on the MVS or VSE platform 2771 octets 2-40: Contains bytes 2-27 of the XOH Define Group 2772 Boundary Group ID triplet. Octet position 2 MUST carry the 2773 value x'01'. Bytes 28-40 MUST be filled with spaces. 2774 octets 41-48: The US-ASCII 8-decimal-digit leading zero 2775 representation of the jmJobIndex assigned by the agent. 2776 This format is reserved for agents, since the agent supplies 2777 octets 41-48, though the client supplies the job name. 2779 'F' IPDS on the VM platform 2780 octets 2-40: Contains bytes 2-31 of the XOH Define Group 2781 Boundary Group ID triplet. Octet position 2 MUST carry the 2782 value x'02'. Bytes 32-40 MUST be filled with spaces. 2783 octets 41-48: The US-ASCII 8-decimal-digit leading zero 2784 representation of the jmJobIndex assigned by the agent. 2785 This format is reserved for agents, since the agent supplies 2786 octets 41-48, though the client supplies the file name. 2788 'G' IPDS on the OS/400 platform 2789 octets 2-40: Contains bytes 2-36 of the XOH Define Group 2790 Boundary Group ID triplet. Octet position 2 MUST carry the 2791 value x'03'. Bytes 37-40 MUST be filled with spaces. 2792 octets 41-48: The US-ASCII 8-decimal-digit leading zero 2793 representation of the jmJobIndex assigned by the agent. 2794 This format is reserved for agents, since the agent supplies 2795 octets 41-48, though the client supplies the job name. 2797 NOTE - the job submission id is only intended to be unique between a 2798 limited set of clients for a limited duration of time, namely, for the 2799 life time of the job in the context of the server or device that is 2800 processing the job. Some of the formats include something that is 2801 unique per client and a random number so that the same job submitted by 2802 the same client will have a different job submission id. For other 2803 formats, where part of the id is guaranteed to be unique for each 2804 client, such as the MAC address or URL, a sequential number SHOULD 2805 suffice for each client (and may be easier for each client to manage). 2806 Therefore, the length of the job submission id has been selected to 2807 reduce the probability of collision to an extremely low number, but is 2808 not intended to be an absolute guarantee of uniqueness. None-the-less, 2809 collisions are remotely possible, but without bad consequences, since 2810 this MIB is intended to be used only for monitoring jobs, not for 2811 controlling and managing them. 2813 3.6 Internationalization Considerations 2815 This section describes the internationalization considerations included 2816 in this MIB. 2818 3.6.1 Text generated by the server or device 2820 There are a few objects and attributes generated by the server or 2821 device that SHALL be represented using the Universal Multiple-Octet 2822 Coded Character Set (UCS) [ISO-10646]. These objects and attributes 2823 are always supplied (if implemented) by the agent, not by the job 2824 submitting client: 2825 1. jmGeneralJobSetName object 2826 2. processingMessage(6) attribute 2827 3. physicalDevice(32) (name value) attribute 2829 The character encoding scheme for representing these objects and 2830 attributes SHALL be UTF-8 as REQUIRED by RFC 2277 [RFC2277]. The 2831 'JmUTF8StringTC' textual convention is used to indicate UTF-8 text 2832 strings. 2834 NOTE - For strings in 7-bit US-ASCII, there is no impact since the UTF- 2835 8 representation of 7-bit ASCII is identical to the US-ASCII [US-ASCII] 2836 encoding. 2838 The text contained in the processingMessage(6) attribute is generated 2839 by the server/device. The natural language for the 2840 processingMessage(6) attribute is identified by the 2841 processingMessageNaturalLangTag(7) attribute. The 2842 processingMessageNaturalLangTag(7) attribute uses the 2843 JmNaturalLanguageTagTC textual convention which SHALL conform to the 2844 language tag mechanism specified in RFC 1766 [RFC1766]. The 2845 JmNaturalLanguageTagTC value is the same as the IPP [IPP-model] 2846 'naturalLanguage' attribute syntax. RFC 1766 specifies that a US-ASCII 2847 string consisting of the natural language followed by an optional 2848 country field. Both fields use the same two-character codes from ISO 2849 639 [ISO-639] and ISO 3166 [ISO-3166], respectively, that are used in 2850 the Printer MIB for identifying language and country. 2852 Examples of the values of the processingMessageNaturalLangTag(7) 2853 attribute include: 2854 1. 'en' for English 2855 2. 'en-us' for US English 2856 3. 'fr' for French 2857 4. 'de' for German 2859 3.6.2 Text supplied by the job submitter 2861 All of the objects and attributes represented by the 'JmJobStringTC' 2862 textual-convention are either (1) supplied in the job submission 2863 protocol by the client that submits the job to the server or device or 2864 (2) are defaulted by the server or device if the job submitting client 2865 does not supply values. The agent SHALL represent these objects and 2866 attributes in the MIB either (1) in the coded character set as they 2867 were submitted or (2) MAY convert the coded character set to another 2868 coded character set or encoding scheme. In any case, the resulting 2869 coded character set representation SHOULD be UTF-8 [UTF-8], but SHALL 2870 be one in which the code positions from 0 to 31 is not used, 32 to 127 2871 is US-ASCII [US-ASCII], 127 is not unused, and the remaining code 2872 positions 128 to 255 represent single-byte or multi-byte graphic 2873 characters structured according to ISO 2022 [ISO-2022] or are unused. 2875 The coded character set SHALL be one of the ones registered with IANA 2876 [IANA] and SHALL be identified by the jobCodedCharSet attribute in the 2877 jmJobAttributeTable for the job. If the agent does not know what coded 2878 character set was used by the job submitting client, the agent SHALL 2879 either (1) return the 'unknown(2)' value for the jobCodedCharSet 2880 attribute or (2) not return the jobCodedCharSet attribute for the job. 2882 Examples of coded character sets which meet this criteria for use as 2883 the value of the jobCodedCharSet job attribute are: US-ASCII [US- 2884 ASCII], ISO 8859-1 (Latin-1) [ISO-8859-1], any ISO 8859-n, HP Roman8, 2885 IBM Code Page 850, Windows Default 8-bit set, UTF-8 [UTF-8], US-ASCII 2886 plus JIS X0208-1990 Japanese [JIS X0208], US-ASCII plus GB2312-1980 PRC 2887 Chinese [GB2312]. See the IANA registry of coded character sets [IANA 2888 charsets]. 2890 Examples of coded character sets which do not meet this criteria are: 2891 national 7-bit sets conforming to ISO 646 (except US-ASCII), EBCDIC, 2892 and ISO 10646 (Unicode) [ISO-10646]. In order to represent Unicode 2893 characters, the UTF-8 [UTF-8] encoding scheme SHALL be used which has 2894 been assigned the MIBenum value of '106' by IANA. 2896 The jobCodedCharSet attribute uses the imported 'CodedCharSet' textual- 2897 convention from the Printer MIB [printmib]. 2899 The natural language for attributes represented by the textual- 2900 convention JmJobStringTC is identified either (1) by the 2901 jobNaturalLanguageTag(9) attribute or is keywords in US-English (as in 2902 IPP). A monitoring application SHOULD attempt to localize keywords 2903 into the language of the user by means of some lookup mechanism. If 2904 the keyword value is not known to the monitoring application, the 2905 monitoring application SHOULD assume that the value is in the natural 2906 language specified by the job's jobNaturalLanguageTag(9) attribute and 2907 SHOULD present the value to its user as is. The 2908 jobNaturalLanguageTag(9) attribute value SHALL have the same syntax and 2909 semantics as the processingMessageNaturalLangTag(7) attribute, except 2910 that the jobNaturalLanguageTag(9) attribute identifies the natural 2911 language of attributes supplied by the job submitter instead of the 2912 natural language of the processingMessage(6) attribute. See Section 2913 3.6.1. 2915 3.6.3 'DateAndTime' for representing the date and time 2917 This MIB also contains objects that are represented using the 2918 DateAndTime textual convention from SMIv2 [SMIv2-TC]. The job 2919 management application SHALL display such objects in the locale of the 2920 user running the monitoring application. 2922 3.7 IANA and PWG Registration Considerations 2924 This MIB does not require any additional registration schemes for IANA, 2925 but does depend on registration schemes that other Internet standards 2926 track specifications have set up. The names of these IANA registration 2927 assignments under the /in-notes/iana/assignments/ path: 2929 1.printer-language-numbers - used as enums in the documentFormat(38) 2930 attribute 2932 2.media-types - uses as keywords in the documentFormat(38) attribute 2934 3.character-sets - used as enums in the jobCodedCharSet(8) attribute 2936 The Printer Working Group (PWG) will handle registration of additional 2937 enums after approving this standard, according to the procedures 2938 described in this section: 2940 3.7.1 PWG Registration of enums 2942 This specification uses textual conventions to define enumerated values 2943 (enums) and bit values. Enumerations (enums) and bit values are sets 2944 of symbolic values defined for use with one or more objects or 2945 attributes. All enumeration sets and bit value sets are assigned a 2946 symbolic data type name (textual convention). As a convention the 2947 symbolic name ends in "TC" for textual convention. These enumerations 2948 are defined at the beginning of the MIB module specification. 2950 The PWG has defined several type of enumerations for use in the Job 2951 Monitoring MIB and the Printer MIB[print-mib]. These types differ in 2952 the method employed to control the addition of new enumerations. 2953 Throughout this document, references to "type n enum", where n can be 2954 1, 2 or 3 can be found in the various tables. The definitions of these 2955 types of enumerations are: 2957 3.7.1.1 Type 1 enumerations 2959 Type 1 enumeration: All the values are defined in the Job Monitoring 2960 MIB specification (RFC for the Job Monitoring MIB). Additional 2961 enumerated values require a new RFC. 2963 There are no type 1 enums in the current draft. 2965 3.7.1.2 Type 2 enumerations 2967 Type 2 enumeration: An initial set of values are defined in the Job 2968 Monitoring MIB specification. Additional enumerated values are 2969 registered with the PWG. 2971 The following type 2 enums are contained in the current draft : 2972 1. JmUTF8StringTC 2973 2. JmJobStringTC 2974 3. JmNaturalLanguageTagTC 2975 4. JmTimeStampTC 2976 5. JmFinishingTC [same enum values as IPP "finishing" attribute] 2977 6. JmPrintQualityTC [same enum values as IPP "print-quality" 2978 attribute] 2979 7. JmTonerEconomyTC 2980 8. JmMediumTypeTC 2981 9. JmJobSubmissionIDTypeTC 2982 10.JmJobCollationTypeTC 2983 11.JmJobStateTC [same enum values as IPP "job-state" attribute] 2984 12.JmAttributeTypeTC 2986 For those textual conventions that have the same enum values as the 2987 indicated IPP Job attribute are simultaneously registered by the PWG 2988 for use with IPP [ipp-model] and the Job Monitoring MIB. 2990 3.7.1.3 Type 3 enumeration 2992 Type 3 enumeration: An initial set of values are defined in the Job 2993 Monitoring MIB specification. Additional enumerated values are 2994 registered through the PWG without PWG review. 2996 There are no type 3 enums in the current draft. 2998 3.7.2 PWG Registration of type 2 bit values 3000 This draft contains the following type 2 bit value textual-conventions: 3001 1. JmJobServiceTypesTC 3002 2. JmJobStateReasons1TC 3003 3. JmJobStateReasons2TC 3004 4. JmJobStateReasons3TC 3005 5. JmJobStateReasons4TC 3007 These textual-conventions are defined as bits in an Integer so that 3008 they can be used with SNMPv1 SMI. The jobStateReasonsN (N=1..4) 3009 attributes are defined as bit values using the corresponding 3010 JmJobStateReasonsNTC textual-conventions. 3012 The registration of JmJobServiceTypesTC and JmJobStateReasonsNTC bit 3013 values follow the procedures for a type 2 enum as specified in Section 3014 3.7.1.2. 3016 3.7.3 PWG Registration of Job Submission Id Formats 3018 In addition to enums and bit values, this specification assigns a 3019 single ASCII digit or letter to various job submission ID formats. See 3020 the JmJobSubmissionIDTypeTC textual-convention and the object. The 3021 registration of JobSubmissionID format numbers follows the procedures 3022 for a type 2 enum as specified in Section 3.7.1.2. 3024 3.7.4 PWG Registration of MIME types/sub-types for document-formats 3026 The documentFormat(38) attribute has MIME type/sub-type values for 3027 indicating document formats which IANA registers as "media type" names. 3028 The values of the documentFormat(38) attribute are the same as the 3029 corresponding Internet Printing Protocol (IPP) "document-format" Job 3030 attribute values [ipp-model]. 3032 3.8 Security Considerations 3034 3.8.1 Read-Write objects 3036 All objects are read-only, greatly simplifying the security 3037 considerations. If another MIB augments this MIB, that MIB might 3038 accept SNMP Write operations to objects in that MIB whose effect is to 3039 modify the values of read-only objects in this MIB. However, that MIB 3040 SHALL have to support the required access control in order to achieve 3041 security, not this MIB. 3043 3.8.2 Read-Only Objects In Other User's Jobs 3045 The security policy of some sites MAY be that unprivileged users can 3046 only get the objects from jobs that they submitted, plus a few minimal 3047 objects from other jobs, such as the jmJobKOctetsPerCopyRequested and 3048 jmJobKOctetsProcessed objects, so that a user can tell how busy a 3049 printer is. Other sites MAY allow all unprivileged users to see all 3050 objects of all jobs. This MIB does not require, nor does it specify 3051 how, such restrictions would be implemented. A monitoring application 3052 SHOULD enforce the site security policy with respect to returning 3053 information to an unprivileged end user that is using the monitoring 3054 application to monitor jobs that do not belong to that user, i.e., the 3055 jmJobOwner object in the jmJobTable does not match the user's user 3056 name. 3058 An operator is a privileged user that would be able to see all objects 3059 of all jobs, independent of the policy for unprivileged users. 3061 3.9 Notifications 3063 This MIB does not specify any notifications. For simplicity, 3064 management applications are expected to poll for status. The 3065 jmGeneralJobPersistence and jmGeneralAttributePersistence objects 3066 assist an application to determine the polling rate. The resulting 3067 network traffic is not expected to be significant. 3069 4 MIB specification 3071 The following pages constitute the actual Job Monitoring MIB. 3073 Job-Monitoring-MIB DEFINITIONS ::= BEGIN 3075 IMPORTS 3076 MODULE-IDENTITY, OBJECT-TYPE, enterprises, 3077 Integer32 FROM SNMPv2-SMI 3078 TEXTUAL-CONVENTION FROM SNMPv2-TC 3079 MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; 3080 -- The following textual-conventions are needed to implement 3081 -- certain attributes, but are not needed to compile this MIB. 3082 -- They are provided here for convenience: 3083 -- hrDeviceIndex FROM HOST-RESOURCES-MIB 3084 -- DateAndTime FROM SNMPv2-TC 3085 -- PrtInterpreterLangFamilyTC, 3086 -- CodedCharSet FROM Printer-MIB 3088 -- Use the enterprises arc assigned to the PWG which is pwg(2699). 3089 -- Group all PWG mibs under mibs(1). 3091 jobmonMIB MODULE-IDENTITY 3092 LAST-UPDATED "9902190000Z" 3093 ORGANIZATION "Printer Working Group (PWG)" 3094 CONTACT-INFO 3095 "Tom Hastings 3096 Postal: Xerox Corp. 3097 Mail stop ESAE-231 3098 701 S. Aviation Blvd. 3099 El Segundo, CA 90245 3101 Tel: (301)333-6413 3102 Fax: (301)333-5514 3103 E-mail: hastings@cp10.es.xerox.com 3105 Send questions and comments to the Printer Working Group (PWG) 3106 using the Job Monitoring Project (JMP) Mailing List: 3107 jmp@pwg.org 3109 For further information, including how to subscribe to the 3110 jmp mailing list, access the PWG web page under 'JMP': 3112 http://www.pwg.org/ 3114 Implementers of this specification are encouraged to join the 3115 jmp mailing list in order to participate in discussions on any 3116 clarifications needed and registration proposals being reviewed 3117 in order to achieve consensus." 3118 DESCRIPTION 3119 "The MIB module for monitoring job in servers, printers, and 3120 other devices. 3122 Version: 1.0" 3123 ::= { enterprises pwg(2699) mibs(1) jobmonMIB(1) } 3125 -- Textual conventions for this MIB module 3127 JmUTF8StringTC ::= TEXTUAL-CONVENTION 3128 DISPLAY-HINT "255a" 3129 STATUS current 3130 DESCRIPTION 3131 "To facilitate internationalization, this TC represents 3132 information taken from the ISO/IEC IS 10646-1 character set, 3133 encoded as an octet string using the UTF-8 character encoding 3134 scheme. 3136 See section 3.6.1, entitled: 'Text generated by the server or 3137 device'." 3138 SYNTAX OCTET STRING (SIZE (0..63)) 3140 JmJobStringTC ::= TEXTUAL-CONVENTION 3141 STATUS current 3142 DESCRIPTION 3143 "To facilitate internationalization, this TC represents 3144 information using any coded character set registered by IANA as 3145 specified in section 3.7. While it is recommended that the 3146 coded character set be UTF-8 [UTF-8], the actual coded 3147 character set SHALL be indicated by the value of the 3148 jobCodedCharSet(8) attribute for the job. 3150 See section 3.6.2, entitled: 'Text supplied by the job 3151 submitter'." 3152 SYNTAX OCTET STRING (SIZE (0..63)) 3154 JmNaturalLanguageTagTC ::= TEXTUAL-CONVENTION 3155 STATUS current 3156 DESCRIPTION 3157 "An IETF RFC 1766-compliant 'language tag', with zero or more 3158 sub-tags that identify a natural language. While RFC 1766 3159 specifies that the US-ASCII values are case-insensitive, this 3160 MIB specification requires that all characters SHALL be lower 3161 case in order to simplify comparing by management applications. 3163 See section 3.6.1, entitled: 'Text generated by the server or 3164 device' and section 3.6.2, entitled: 'Text supplied by the job 3165 submitter'." 3166 SYNTAX OCTET STRING (SIZE (0..63)) 3168 JmTimeStampTC ::= TEXTUAL-CONVENTION 3169 STATUS current 3170 DESCRIPTION 3171 "The simple time at which an event took place. The units are 3172 in seconds since the system was booted. 3174 NOTE - JmTimeStampTC is defined in units of seconds, rather 3175 than 100ths of seconds, so as to be simpler for agents to 3176 implement (even if they have to implement the 100ths of a 3177 second to comply with implementing sysUpTime in MIB-II[mib- 3178 II].) 3180 NOTE - JmTimeStampTC is defined as an Integer32 so that it can 3181 be used as a value of an attribute, i.e., as a value of the 3182 jmAttributeValueAsInteger object. The TimeStamp textual- 3183 convention defined in SNMPv2-TC [SMIv2-TC] is defined as an 3184 APPLICATION 3 IMPLICIT INTEGER tag, not an Integer32 which is 3185 defined in SNMPv2-SMI [SMIv2-TC] as UNIVERSAL 2 IMPLICIT 3186 INTEGER, so cannot be used in this MIB as one of the values of 3187 jmAttributeValueAsInteger." 3188 SYNTAX INTEGER (0..2147483647) 3190 JmJobSourcePlatformTypeTC ::= TEXTUAL-CONVENTION 3191 STATUS current 3192 DESCRIPTION 3193 "The source platform type that can submit jobs to servers or 3194 devices in any of the 3 configurations. 3196 This is a type 2 enumeration. See Section 3.7.1.2. See also 3197 IANA operating-system-names registry." 3198 SYNTAX INTEGER { 3199 other(1), 3200 unknown(2), 3201 sptUNIX(3), -- UNIX 3202 sptOS2(4), -- OS/2 3203 sptPCDOS(5), -- DOS 3204 sptNT(6), -- NT 3205 sptMVS(7), -- MVS 3206 sptVM(8), -- VM 3207 sptOS400(9), -- OS/400 3208 sptVMS(10), -- VMS 3209 sptWindows(11), -- Windows 3210 sptNetWare(12) -- NetWare 3211 } 3213 JmFinishingTC ::= TEXTUAL-CONVENTION 3214 STATUS current 3215 DESCRIPTION 3216 "The type of finishing operation. 3218 These values are the same as the enum values of the IPP 3219 'finishings' attribute. See Section 3.7.1.2. 3221 other(1), 3222 Some other finishing operation besides one of the specified 3223 or registered values. 3225 unknown(2), 3226 The finishing is unknown. 3228 none(3), 3229 Perform no finishing. 3231 staple(4), 3232 Bind the document(s) with one or more staples. The exact 3233 number and placement of the staples is site-defined. 3235 punch(5), 3236 Holes are required in the finished document. The exact 3237 number and placement of the holes is site-defined. The 3238 punch specification MAY be satisfied (in a site- and 3239 implementation-specific manner) either by 3240 drilling/punching, or by substituting pre-drilled media. 3242 cover(6), 3243 Select a non-printed (or pre-printed) cover for the 3244 document. This does not supplant the specification of a 3245 printed cover (on cover stock medium) by the document 3246 itself. 3248 bind(7) 3249 Binding is to be applied to the document; the type and 3250 placement of the binding is product-specific. 3252 This is a type 2 enumeration. See Section 3.7.1.2." 3253 SYNTAX INTEGER { 3254 other(1), 3255 unknown(2), 3256 none(3), 3257 staple(4), 3258 punch(5), 3259 cover(6), 3260 bind(7) 3261 } 3263 JmPrintQualityTC ::= TEXTUAL-CONVENTION 3264 STATUS current 3265 DESCRIPTION 3266 "Print quality settings. 3268 These values are the same as the enum values of the IPP 'print- 3269 quality' attribute. See Section 3.7.1.2. 3271 This is a type 2 enumeration. See Section 3.7.1.2." 3272 SYNTAX INTEGER { 3273 other(1), -- Not one of the specified or registered 3274 -- values. 3275 unknown(2), -- The actual value is unknown. 3276 draft(3), -- Lowest quality available on the printer. 3277 normal(4), -- Normal or intermediate quality on the 3278 -- printer. 3279 high(5) -- Highest quality available on the printer. 3280 } 3282 JmPrinterResolutionTC ::= TEXTUAL-CONVENTION 3283 STATUS current 3284 DESCRIPTION 3285 "Printer resolutions. 3287 Nine octets consisting of two 4-octet SIGNED-INTEGERs followed 3288 by a SIGNED-BYTE. The values are the same as those specified 3289 in the Printer MIB [printmib]. The first SIGNED-INTEGER 3290 contains the value of prtMarkerAddressabilityXFeedDir. The 3291 second SIGNED-INTEGER contains the value of 3292 prtMarkerAddressabilityFeedDir. The SIGNED-BYTE contains the 3293 value of prtMarkerAddressabilityUnit. 3295 Note: the latter value is either 3 (tenThousandsOfInches) or 4 3296 (micrometers) and the addressability is in 10,000 units of 3297 measure. Thus the SIGNED-INTEGERs represent integral values in 3298 either dots-per-inch or dots-per-centimeter. 3300 The syntax is the same as the IPP 'printer-resolution' 3301 attribute. See Section 3.7.1.2." 3302 SYNTAX OCTET STRING (SIZE(9)) 3304 JmTonerEconomyTC ::= TEXTUAL-CONVENTION 3305 STATUS current 3306 DESCRIPTION 3307 "Toner economy settings. 3309 This is a type 2 enumeration. See Section 3.7.1.2." 3310 SYNTAX INTEGER { 3311 unknown(2), -- unknown. 3312 off(3), -- Off. Normal. Use full toner. 3313 on(4) -- On. Use less toner than normal. 3314 } 3316 JmBooleanTC ::= TEXTUAL-CONVENTION 3317 STATUS current 3318 DESCRIPTION 3319 "Boolean true or false value. 3321 This is a type 2 enumeration. See Section 3.7.1.2." 3322 SYNTAX INTEGER { 3323 unknown(2), -- unknown. 3324 false(3), -- FALSE. 3325 true(4) -- TRUE. 3326 } 3328 JmMediumTypeTC ::= TEXTUAL-CONVENTION 3329 STATUS current 3330 DESCRIPTION 3331 "Identifies the type of medium. 3333 other(1), 3334 The type is neither one of the values listed in this 3335 specification nor a registered value. 3337 unknown(2), 3338 The type is not known. 3340 stationery(3), 3341 Separately cut sheets of an opaque material. 3343 transparency(4), 3344 Separately cut sheets of a transparent material. 3346 envelope(5), 3347 Envelopes that can be used for conventional mailing 3348 purposes. 3350 envelopePlain(6), 3351 Envelopes that are not preprinted and have no windows. 3353 envelopeWindow(7), 3354 Envelopes that have windows for addressing purposes. 3356 continuousLong(8), 3357 Continuously connected sheets of an opaque material 3358 connected along the long edge. 3360 continuousShort(9), 3361 Continuously connected sheets of an opaque material 3362 connected along the short edge. 3364 tabStock(10), 3365 Media with tabs. 3367 multiPartForm(11), 3368 Form medium composed of multiple layers not pre-attached to 3369 one another; each sheet MAY be drawn separately from an 3370 input source. 3372 labels(12), 3373 Label-stock. 3375 multiLayer(13) 3376 Form medium composed of multiple layers which are pre- 3377 attached to one another, e.g. for use with impact printers. 3379 This is a type 2 enumeration. See Section 3.7.1.2. These enum 3380 values correspond to the keyword name strings of the 3381 prtInputMediaType object in the Printer MIB [print-mib]. There 3382 is no printer description attribute in IPP/1.0 that represents 3383 these values." 3384 SYNTAX INTEGER { 3385 other(1), 3386 unknown(2), 3387 stationery(3), 3388 transparency(4), 3389 envelope(5), 3390 envelopePlain(6), 3391 envelopeWindow(7), 3392 continuousLong(8), 3393 continuousShort(9), 3394 tabStock(10), 3395 multiPartForm(11), 3396 labels(12), 3397 multiLayer(13) 3398 } 3400 JmJobCollationTypeTC ::= TEXTUAL-CONVENTION 3401 STATUS current 3402 DESCRIPTION 3403 "This value is the type of job collation. Implementations that 3404 don't support multiple documents or don't support multiple 3405 copies SHALL NOT support the uncollatedDocuments(5) value. 3407 This is a type 2 enumeration. See Section 3.7.1.2. See also 3408 Section 3.4, entitled 'Monitoring Job Progress'." 3409 SYNTAX INTEGER { 3410 other(1), 3411 unknown(2), 3412 uncollatedSheets(3), -- sheets within each document copy 3413 -- are not collated: 1 1 ..., 2 2 ..., 3414 -- No corresponding value of IPP 3415 -- "multiple-document-handling" 3416 collatedDocuments(4), -- internal collated sheets, 3417 -- documents: A, B, A, B, ... 3418 -- Corresponds to IPP "multiple- 3419 -- document-handling"='separate- 3420 -- documents-collated-copies' 3421 uncollatedDocuments(5) -- internal collated sheets, 3422 -- documents: A, A, ..., B, B, ... 3423 -- Corresponds to IPP "multiple- 3424 -- document-handling"='separate- 3425 -- documents-uncollated-copies' 3426 } 3428 JmJobSubmissionIDTypeTC ::= TEXTUAL-CONVENTION 3429 STATUS current 3430 DESCRIPTION 3431 "Identifies the format type of a job submission ID. 3433 Each job submission ID is a fixed-length, 48-octet printable 3434 US-ASCII [US-ASCII] coded character string containing no 3435 control characters, consisting of the fields defined in section 3436 3.5.1. 3438 This is like a type 2 enumeration. See section 3.7.3." 3439 SYNTAX OCTET STRING(SIZE(1)) -- ASCII '0'-'9', 'A'-'Z', 'a'-'z' 3441 JmJobStateTC ::= TEXTUAL-CONVENTION 3442 STATUS current 3443 DESCRIPTION 3444 "The current state of the job (pending, processing, completed, 3445 etc.). The following figure shows the normal job state 3446 transitions: 3448 +----> canceled(7) 3449 / 3450 +---> pending(3) -------> processing(5) ------+------> completed(9) 3451 | ^ ^ \ 3452 --->+ | | +----> aborted(8) 3453 | v v / 3454 +---> pendingHeld(4) processingStopped(6) ---+ 3456 Figure 4 - Normal Job State Transitions 3458 Normally a job progresses from left to right. Other state 3459 transitions are unlikely, but are not forbidden. Not shown are 3460 the transitions to the canceled state from the pending, 3461 pendingHeld, and processingStopped states. 3463 Jobs in the pending, processing, and processingStopped states 3464 are called 'active', while jobs in the pendingHeld, canceled, 3465 aborted, and completed states are called 'inactive'. Jobs 3466 reach one of the three terminal states: completed, canceled, or 3467 aborted, after the jobs have completed all activity, and all 3468 MIB objects and attributes have reached their final values for 3469 the job. 3471 These values are the same as the enum values of the IPP 'job- 3472 state' job attribute. See Section 3.7.1.2. 3474 unknown(2), 3475 The job state is not known, or its state is indeterminate. 3477 pending(3), 3478 The job is a candidate to start processing, but is not yet 3479 processing. 3481 pendingHeld(4), 3482 The job is not a candidate for processing for any number of 3483 reasons but will return to the pending state as soon as the 3484 reasons are no longer present. The job's 3485 jmJobStateReasons1 object and/or jobStateReasonsN (N=2..4) 3486 attributes SHALL indicate why the job is no longer a 3487 candidate for processing. The reasons are represented as 3488 bits in the jmJobStateReasons1 object and/or 3489 jobStateReasonsN (N=2..4) attributes. See the 3490 JmJobStateReasonsNTC (N=1..4) textual convention for the 3491 specification of each reason. 3493 processing(5), 3494 One or more of: 3496 1. the job is using, or is attempting to use, one or more 3497 purely software processes that are analyzing, creating, or 3498 interpreting a PDL, etc., 3500 2. the job is using, or is attempting to use, one or more 3501 hardware devices that are interpreting a PDL, making marks 3502 on a medium, and/or performing finishing, such as stapling, 3503 etc., OR 3505 3. (configuration 2) the server has made the job ready for 3506 printing, but the output device is not yet printing it, 3507 either because the job hasn't reached the output device or 3508 because the job is queued in the output device or some 3509 other spooler, awaiting the output device to print it. 3511 When the job is in the processing state, the entire job 3512 state includes the detailed status represented in the 3513 device MIB indicated by the hrDeviceIndex value of the 3514 job's physicalDevice attribute, if the agent implements 3515 such a device MIB. 3517 Implementations MAY, though they NEED NOT, include 3518 additional values in the job's jmJobStateReasons1 object to 3519 indicate the progress of the job, such as adding the 3520 jobPrinting value to indicate when the device is actually 3521 making marks on a medium and/or the processingToStopPoint 3522 value to indicate that the server or device is in the 3523 process of canceling or aborting the job. 3525 processingStopped(6), 3526 The job has stopped while processing for any number of 3527 reasons and will return to the processing state as soon as 3528 the reasons are no longer present. 3530 The job's jmJobStateReasons1 object and/or the job's 3531 jobStateReasonsN (N=2..4) attributes MAY indicate why the 3532 job has stopped processing. For example, if the output 3533 device is stopped, the deviceStopped value MAY be included 3534 in the job's jmJobStateReasons1 object. 3536 NOTE - When an output device is stopped, the device usually 3537 indicates its condition in human readable form at the 3538 device. The management application can obtain more 3539 complete device status remotely by querying the appropriate 3540 device MIB using the job's deviceIndex attribute(s), if the 3541 agent implements such a device MIB 3543 canceled(7), 3544 A client has canceled the job and the server or device has 3545 completed canceling the job AND all MIB objects and 3546 attributes have reached their final values for the job. 3547 While the server or device is canceling the job, the job's 3548 jmJobStateReasons1 object SHOULD contain the 3549 processingToStopPoint value and one of the canceledByUser, 3550 canceledByOperator, or canceledAtDevice values. The 3551 canceledByUser, canceledByOperator, or canceledAtDevice 3552 values remain while the job is in the canceled state. 3554 aborted(8), 3555 The job has been aborted by the system, usually while the 3556 job was in the processing or processingStopped state and 3557 the server or device has completed aborting the job AND all 3558 MIB objects and attributes have reached their final values 3559 for the job. While the server or device is aborting the 3560 job, the job's jmJobStateReasons1 object MAY contain the 3561 processingToStopPoint and abortedBySystem values. If 3562 implemented, the abortedBySystem value SHALL remain while 3563 the job is in the aborted state. 3565 completed(9) 3566 The job has completed successfully or with warnings or 3567 errors after processing and all of the media have been 3568 successfully stacked in the appropriate output bin(s) AND 3569 all MIB objects and attributes have reached their final 3570 values for the job. The job's jmJobStateReasons1 object 3571 SHOULD contain one of: completedSuccessfully, 3572 completedWithWarnings, or completedWithErrors values. 3574 This is a type 2 enumeration. See Section 3.7.1.2." 3575 SYNTAX INTEGER { 3576 unknown(2), 3577 pending(3), 3578 pendingHeld(4), 3579 processing(5), 3580 processingStopped(6), 3581 canceled(7), 3582 aborted(8), 3583 completed(9) 3584 } 3586 JmAttributeTypeTC ::= TEXTUAL-CONVENTION 3587 STATUS current 3588 DESCRIPTION 3589 "The type of the attribute which identifies the attribute. 3591 NOTE - The enum assignments are grouped logically with values 3592 assigned in groups of 20, so that additional values may be 3593 registered in the future and assigned a value that is part of 3594 their logical grouping. 3596 Values in the range 2**30 to 2**31-1 are reserved for private 3597 or experimental usage. This range corresponds to the same 3598 range reserved in IPP. Implementers are warned that use of 3599 such values may conflict with other implementations. 3600 Implementers are encouraged to request registration of enum 3601 values following the procedures in Section 3.7.1. 3603 See Section 3.2 entitled 'The Attribute Mechanism' for a 3604 description of this textual-convention and its use in the 3605 jmAttributeTable. See Section 3.3.8 for the specification of 3606 each attribute. The comment(s) after each enum assignment 3607 specifies the data type(s) of the attribute. 3609 This is a type 2 enumeration. See Section 3.7.1.2." 3611 SYNTAX INTEGER { 3612 other(1), -- Integer32 (-2..2147483647) 3613 -- AND/OR 3614 -- OCTET STRING(SIZE(0..63)) 3616 -- Job State attributes: 3617 jobStateReasons2(3), -- JmJobStateReasons2TC 3618 jobStateReasons3(4), -- JmJobStateReasons3TC 3619 jobStateReasons4(5), -- JmJobStateReasons4TC 3620 processingMessage(6), -- JmUTF8StringTC (SIZE(0..63)) 3621 processingMessageNaturalLangTag(7), 3622 -- OCTET STRING(SIZE(0..63)) 3623 jobCodedCharSet(8), -- CodedCharSet 3624 jobNaturalLanguageTag(9), -- OCTET STRING(SIZE(0..63)) 3625 -- Job Identification attributes: 3626 jobURI(20), -- OCTET STRING(SIZE(0..63)) 3627 jobAccountName(21), -- OCTET STRING(SIZE(0..63)) 3628 serverAssignedJobName(22), -- JmJobStringTC (SIZE(0..63)) 3629 jobName(23), -- JmJobStringTC (SIZE(0..63)) 3630 jobServiceTypes(24), -- JmJobServiceTypesTC 3631 jobSourceChannelIndex(25), -- Integer32 (0..2147483647) 3632 jobSourcePlatformType(26), -- JmJobSourcePlatformTypeTC 3633 submittingServerName(27), -- JmJobStringTC (SIZE(0..63)) 3634 submittingApplicationName(28), -- JmJobStringTC (SIZE(0..63)) 3635 jobOriginatingHost(29), -- JmJobStringTC (SIZE(0..63)) 3636 deviceNameRequested(30), -- JmJobStringTC (SIZE(0..63)) 3637 queueNameRequested(31), -- JmJobStringTC (SIZE(0..63)) 3638 physicalDevice(32), -- hrDeviceIndex 3639 -- AND/OR 3640 -- JmUTF8StringTC (SIZE(0..63)) 3641 numberOfDocuments(33), -- Integer32 (-2..2147483647) 3642 fileName(34), -- JmJobStringTC (SIZE(0..63)) 3643 documentName(35), -- JmJobStringTC (SIZE(0..63)) 3644 jobComment(36), -- JmJobStringTC (SIZE(0..63)) 3645 documentFormatIndex(37), -- Integer32 (0..2147483647) 3646 documentFormat(38), -- PrtInterpreterLangFamilyTC 3647 -- AND/OR 3648 -- OCTET STRING(SIZE(0..63)) 3650 -- Job Parameter attributes: 3651 jobPriority(50), -- Integer32 (-2..100) 3652 jobProcessAfterDateAndTime(51), -- DateAndTime (SNMPv2-TC) 3653 jobHold(52), -- JmBooleanTC 3654 jobHoldUntil(53), -- JmJobStringTC (SIZE(0..63)) 3655 outputBin(54), -- Integer32 (0..2147483647) 3656 -- AND/OR 3657 -- JmJobStringTC (SIZE(0..63)) 3658 sides(55), -- Integer32 (-2..2) 3659 finishing(56), -- JmFinishingTC 3661 -- Image Quality attributes: 3662 printQualityRequested(70), -- JmPrintQualityTC 3663 printQualityUsed(71), -- JmPrintQualityTC 3664 printerResolutionRequested(72), -- JmPrinterResolutionTC 3665 printerResolutionUsed(73), -- JmPrinterResolutionTC 3666 tonerEcomonyRequested(74), -- JmTonerEconomyTC 3667 tonerEcomonyUsed(75), -- JmTonerEconomyTC 3668 tonerDensityRequested(76), -- Integer32 (-2..100) 3669 tonerDensityUsed(77), -- Integer32 (-2..100) 3670 -- Job Progress attributes: 3671 jobCopiesRequested(90), -- Integer32 (-2..2147483647) 3672 jobCopiesCompleted(91), -- Integer32 (-2..2147483647) 3673 documentCopiesRequested(92), -- Integer32 (-2..2147483647) 3674 documentCopiesCompleted(93), -- Integer32 (-2..2147483647) 3675 jobKOctetsTransferred(94), -- Integer32 (-2..2147483647) 3676 sheetCompletedCopyNumber(95), -- Integer32 (-2..2147483647) 3677 sheetCompletedDocumentNumber(96), 3678 -- Integer32 (-2..2147483647) 3679 jobCollationType(97), -- JmJobCollationTypeTC 3681 -- Impression attributes: 3682 impressionsSpooled(110), -- Integer32 (-2..2147483647) 3683 impressionsSentToDevice(111), -- Integer32 (-2..2147483647) 3684 impressionsInterpreted(112), -- Integer32 (-2..2147483647) 3685 impressionsCompletedCurrentCopy(113), 3686 -- Integer32 (-2..2147483647) 3687 fullColorImpressionsCompleted(114), 3688 -- Integer32 (-2..2147483647) 3689 highlightColorImpressionsCompleted(115), 3690 -- Integer32 (-2..2147483647) 3692 -- Page attributes: 3693 pagesRequested(130), -- Integer32 (-2..2147483647) 3694 pagesCompleted(131), -- Integer32 (-2..2147483647) 3695 pagesCompletedCurrentCopy(132), -- Integer32 (-2..2147483647) 3697 -- Sheet attributes: 3698 sheetsRequested(150), -- Integer32 (-2..2147483647) 3699 sheetsCompleted(151), -- Integer32 (-2..2147483647) 3700 sheetsCompletedCurrentCopy(152),-- Integer32 (-2..2147483647) 3702 -- Resource attributes: 3703 mediumRequested(170), -- JmMediumTypeTC 3704 -- AND/OR 3705 -- JmJobStringTC (SIZE(0..63)) 3706 mediumConsumed(171), -- Integer32 (-2..2147483647) 3707 -- AND 3708 -- JmJobStringTC (SIZE(0..63)) 3709 colorantRequested(172), -- Integer32 (-2..2147483647) 3710 -- AND/OR 3711 -- JmJobStringTC (SIZE(0..63)) 3712 colorantConsumed(173), -- Integer32 (-2..2147483647) 3713 -- AND/OR 3714 -- JmJobStringTC (SIZE(0..63)) 3715 mediumTypeConsumed(174), -- Integer32 (-2..2147483647) 3716 -- AND 3717 -- JmJobStringTC (SIZE(0..63)) 3718 mediumSizeConsumed(175), -- Integer32 (-2..2147483647) 3719 -- AND 3720 -- JmJobStringTC (SIZE(0..63)) 3722 -- Time attributes: 3723 jobSubmissionToServerTime(190), -- JmTimeStampTC 3724 -- AND/OR 3725 -- DateAndTime 3726 jobSubmissionTime(191), -- JmTimeStampTC 3727 -- AND/OR 3728 -- DateAndTime 3729 jobStartedBeingHeldTime(192), -- JmTimeStampTC 3730 -- AND/OR 3731 -- DateAndTime 3732 jobStartedProcessingTime(193), -- JmTimeStampTC 3733 -- AND/OR 3734 -- DateAndTime 3735 jobCompletionTime(194), -- JmTimeStampTC 3736 -- AND/OR 3737 -- DateAndTime 3738 jobProcessingCPUTime(195) -- Integer32 (-2..2147483647) 3739 } 3741 JmJobServiceTypesTC ::= TEXTUAL-CONVENTION 3742 STATUS current 3743 DESCRIPTION 3744 "Specifies the type(s) of service to which the job has been 3745 submitted (print, fax, scan, etc.). The service type is 3746 represented as an enum that is bit encoded with each job 3747 service type so that more general and arbitrary services can be 3748 created, such as services with more than one destination type, 3749 or ones with only a source or only a destination. For example, 3750 a job service might scan, faxOut, and print a single job. In 3751 this case, three bits would be set in the jobServiceTypes 3752 attribute, corresponding to the hexadecimal values: 0x8 + 0x20 3753 + 0x4, respectively, yielding: 0x2C. 3755 Whether this attribute is set from a job attribute supplied by 3756 the job submission client or is set by the recipient job 3757 submission server or device depends on the job submission 3758 protocol. With either implementation, the agent SHALL return a 3759 non-zero value for this attribute indicating the type of the 3760 job. 3762 One of the purposes of this attribute is to permit a requester 3763 to filter out jobs that are not of interest. For example, a 3764 printer operator MAY only be interested in jobs that include 3765 printing. That is why the attribute is in the job 3766 identification category. 3768 The following service component types are defined (in 3769 hexadecimal) and are assigned a separate bit value for use with 3770 the jobServiceTypes attribute: 3772 other 0x1 3773 The job contains some instructions that are not one of the 3774 identified types. 3776 unknown 0x2 3777 The job contains some instructions whose type is unknown to 3778 the agent. 3780 print 0x4 3781 The job contains some instructions that specify printing 3783 scan 0x8 3784 The job contains some instructions that specify scanning 3786 faxIn 0x10 3787 The job contains some instructions that specify receive fax 3789 faxOut 0x20 3790 The job contains some instructions that specify sending fax 3792 getFile 0x40 3793 The job contains some instructions that specify accessing 3794 files or documents 3796 putFile 0x80 3797 The job contains some instructions that specify storing 3798 files or documents 3800 mailList 0x100 3801 The job contains some instructions that specify 3802 distribution of documents using an electronic mail system. 3804 These bit definitions are the equivalent of a type 2 enum 3805 except that combinations of them MAY be used together. See 3806 section 3.7.1.2." 3807 SYNTAX INTEGER (0..2147483647) -- 31 bits, all but sign bit 3809 JmJobStateReasons1TC ::= TEXTUAL-CONVENTION 3810 STATUS current 3811 DESCRIPTION 3812 "The JmJobStateReasonsNTC (N=1..4) textual-conventions are used 3813 with the jmJobStateReasons1 object and jobStateReasonsN 3814 (N=2..4), respectively, to provide additional information 3815 regarding the current jmJobState object value. These values 3816 MAY be used with any job state or states for which the reason 3817 makes sense. See section 3.3.9.1 for the specification of each 3818 bit value defined for use with the JmJobStateReasons1TC. 3820 These bit definitions are the equivalent of a type 2 enum 3821 except that combinations of bits may be used together. See 3822 section 3.7.1.2." 3823 SYNTAX INTEGER (0..2147483647) -- 31 bits, all but sign bit 3825 JmJobStateReasons2TC ::= TEXTUAL-CONVENTION 3826 STATUS current 3827 DESCRIPTION 3828 "This textual-convention is used with the jobStateReasons2 3829 attribute to provides additional information regarding the 3830 jmJobState object. See section 3.3.9.2 for the specification 3831 of JmJobStateReasons2TC. See section 3.3.9.1 for the 3832 description under JmJobStateReasons1TC for additional 3833 information that applies to all reasons. 3835 These bit definitions are the equivalent of a type 2 enum 3836 except that combinations of them may be used together. See 3837 section 3.7.1.2." 3838 SYNTAX INTEGER (0..2147483647) -- 31 bits, all but sign bit 3840 JmJobStateReasons3TC ::= TEXTUAL-CONVENTION 3841 STATUS current 3842 DESCRIPTION 3843 "This textual-convention is used with the jobStateReasons3 3844 attribute to provides additional information regarding the 3845 jmJobState object. See section 3.3.9.3 for the specification 3846 of JmJobStateReasons3TC. See section 3.3.9.1 for the 3847 description under JmJobStateReasons1TC for additional 3848 information that applies to all reasons. 3850 These bit definitions are the equivalent of a type 2 enum 3851 except that combinations of them may be used together. See 3852 section 3.7.1.2. " 3853 SYNTAX INTEGER (0..2147483647) -- 31 bits, all but sign bit 3855 JmJobStateReasons4TC ::= TEXTUAL-CONVENTION 3856 STATUS current 3857 DESCRIPTION 3858 "This textual-convention is used in the jobStateReasons4 3859 attribute to provides additional information regarding the 3860 jmJobState object. See section 3.3.9.4 for the specification 3861 of JmJobStateReasons4TC. See section 3.3.9.1 for the 3862 description under JmJobStateReasons1TC for additional 3863 information that applies to all reasons. 3865 These bit definitions are the equivalent of a type 2 enum 3866 except that combinations of them may be used together. See 3867 section 3.7.1.2." 3868 SYNTAX INTEGER (0..2147483647) -- 31 bits, all but sign bit 3870 jobmonMIBObjects OBJECT IDENTIFIER ::= { jobmonMIB 1 } 3872 -- The General Group (MANDATORY) 3874 -- The jmGeneralGroup consists entirely of the jmGeneralTable. 3876 jmGeneral OBJECT IDENTIFIER ::= { jobmonMIBObjects 1 } 3878 jmGeneralTable OBJECT-TYPE 3879 SYNTAX SEQUENCE OF JmGeneralEntry 3880 MAX-ACCESS not-accessible 3881 STATUS current 3882 DESCRIPTION 3883 "The jmGeneralTable consists of information of a general nature 3884 that are per-job-set, but are not per-job. See Section 2 3885 entitled 'Terminology and Job Model' for the definition of a 3886 job set. 3888 The MANDATORY-GROUP macro specifies that this group is 3889 MANDATORY." 3890 ::= { jmGeneral 1 } 3892 jmGeneralEntry OBJECT-TYPE 3893 SYNTAX JmGeneralEntry 3894 MAX-ACCESS not-accessible 3895 STATUS current 3896 DESCRIPTION 3897 "Information about a job set (queue). 3899 An entry SHALL exist in this table for each job set." 3900 INDEX { jmGeneralJobSetIndex } 3901 ::= { jmGeneralTable 1 } 3903 JmGeneralEntry ::= SEQUENCE { 3904 jmGeneralJobSetIndex Integer32 (1..32767), 3905 jmGeneralNumberOfActiveJobs Integer32 (0..2147483647), 3906 jmGeneralOldestActiveJobIndex Integer32 (0..2147483647), 3907 jmGeneralNewestActiveJobIndex Integer32 (0..2147483647), 3908 jmGeneralJobPersistence Integer32 (15..2147483647), 3909 jmGeneralAttributePersistence Integer32 (15..2147483647), 3910 jmGeneralJobSetName JmUTF8StringTC (SIZE(0..63)) 3911 } 3912 jmGeneralJobSetIndex OBJECT-TYPE 3913 SYNTAX Integer32 (1..32767) 3914 MAX-ACCESS not-accessible 3915 STATUS current 3916 DESCRIPTION 3917 "A unique value for each job set in this MIB. The jmJobTable 3918 and jmAttributeTable tables have this same index as their 3919 primary index. 3921 The value(s) of the jmGeneralJobSetIndex SHALL be persistent 3922 across power cycles, so that clients that have retained 3923 jmGeneralJobSetIndex values will access the same job sets upon 3924 subsequent power-up. 3926 An implementation that has only one job set, such as a printer 3927 with a single queue, SHALL hard code this object with the value 3928 1. 3930 See Section 2 entitled 'Terminology and Job Model' for the 3931 definition of a job set. 3932 Corresponds to the first index in jmJobTable and 3933 jmAttributeTable." 3934 ::= { jmGeneralEntry 1 } 3936 jmGeneralNumberOfActiveJobs OBJECT-TYPE 3937 SYNTAX Integer32 (0..2147483647) 3938 MAX-ACCESS read-only 3939 STATUS current 3940 DESCRIPTION 3941 "The current number of 'active' jobs in the jmJobIDTable, 3942 jmJobTable, and jmAttributeTable, i.e., the total number of 3943 jobs that are in the pending, processing, or processingStopped 3944 states. See the JmJobStateTC textual-convention for the exact 3945 specification of the semantics of the job states." 3946 DEFVAL { 0 } -- no jobs 3947 ::= { jmGeneralEntry 2 } 3949 jmGeneralOldestActiveJobIndex OBJECT-TYPE 3950 SYNTAX Integer32 (0..2147483647) 3951 MAX-ACCESS read-only 3952 STATUS current 3953 DESCRIPTION 3954 "The jmJobIndex of the oldest job that is still in one of the 3955 'active' states (pending, processing, or processingStopped). 3956 In other words, the index of the 'active' job that has been in 3957 the job tables the longest. 3959 If there are no active jobs, the agent SHALL set the value of 3960 this object to 0. 3962 See Section 3.2 entitled 'The Job Tables and the Oldest Active 3963 and Newest Active Indexes' for a description of the usage of 3964 this object." 3965 DEFVAL { 0 } -- no active jobs 3966 ::= { jmGeneralEntry 3 } 3968 jmGeneralNewestActiveJobIndex OBJECT-TYPE 3969 SYNTAX Integer32 (0..2147483647) 3970 MAX-ACCESS read-only 3971 STATUS current 3972 DESCRIPTION 3973 "The jmJobIndex of the newest job that is in one of the 3974 'active' states (pending, processing, or processingStopped). 3975 In other words, the index of the 'active' job that has been 3976 most recently added to the job tables. 3978 When all jobs become 'inactive', i.e., enter the pendingHeld, 3979 completed, canceled, or aborted states, the agent SHALL set the 3980 value of this object to 0. 3982 See Section 3.2 entitled 'The Job Tables and the Oldest Active 3983 and Newest Active Indexes' for a description of the usage of 3984 this object." 3985 DEFVAL { 0 } -- no active jobs 3986 ::= { jmGeneralEntry 4 } 3988 jmGeneralJobPersistence OBJECT-TYPE 3989 SYNTAX Integer32 (15..2147483647) 3990 UNITS "seconds" 3991 MAX-ACCESS read-only 3992 STATUS current 3993 DESCRIPTION 3994 "The minimum time in seconds for this instance of the Job Set 3995 that an entry SHALL remain in the jmJobIDTable and jmJobTable 3996 after processing has completed, i.e., the minimum time in 3997 seconds starting when the job enters the completed, canceled, 3998 or aborted state. 4000 Configuring this object is implementation-dependent. 4002 This value SHALL be equal to or greater than the value of 4003 jmGeneralAttributePersistence. This value SHOULD be at least 4004 60 which gives a monitoring or accounting application one 4005 minute in which to poll for job data." 4006 DEFVAL { 60 } -- one minute 4007 ::= { jmGeneralEntry 5 } 4009 jmGeneralAttributePersistence OBJECT-TYPE 4010 SYNTAX Integer32 (15..2147483647) 4011 UNITS "seconds" 4012 MAX-ACCESS read-only 4013 STATUS current 4014 DESCRIPTION 4015 "The minimum time in seconds for this instance of the Job Set 4016 that an entry SHALL remain in the jmAttributeTable after 4017 processing has completed , i.e., the time in seconds starting 4018 when the job enters the completed, canceled, or aborted state. 4020 Configuring this object is implementation-dependent. 4022 This value SHOULD be at least 60 which gives a monitoring or 4023 accounting application one minute in which to poll for job 4024 data." 4025 DEFVAL { 60 } -- one minute 4026 ::= { jmGeneralEntry 6 } 4028 jmGeneralJobSetName OBJECT-TYPE 4029 SYNTAX JmUTF8StringTC (SIZE(0..63)) 4030 MAX-ACCESS read-only 4031 STATUS current 4032 DESCRIPTION 4033 "The human readable name of this job set assigned by the system 4034 administrator (by means outside of this MIB). Typically, this 4035 name SHOULD be the name of the job queue. If a server or 4036 device has only a single job set, this object can be the 4037 administratively assigned name of the server or device itself. 4038 This name does not need to be unique, though each job set in a 4039 single Job Monitoring MIB SHOULD have distinct names. 4041 NOTE - If the job set corresponds to a single printer and the 4042 Printer MIB is implemented, this value SHOULD be the same as 4043 the prtGeneralPrinterName object in the draft Printer MIB 4044 [print-mib-draft]. If the job set corresponds to an IPP 4045 Printer, this value SHOULD be the same as the IPP 'printer- 4046 name' Printer attribute. 4048 NOTE - The purpose of this object is to help the user of the 4049 job monitoring application distinguish between several job sets 4050 in implementations that support more than one job set. 4052 See the OBJECT compliance macro for the minimum maximum length 4053 required for conformance." 4054 DEFVAL { ''H } -- empty string 4055 ::= { jmGeneralEntry 7 } 4057 -- The Job ID Group (MANDATORY) 4059 -- The jmJobIDGroup consists entirely of the jmJobIDTable. 4061 jmJobID OBJECT IDENTIFIER ::= { jobmonMIBObjects 2 } 4063 jmJobIDTable OBJECT-TYPE 4064 SYNTAX SEQUENCE OF JmJobIDEntry 4065 MAX-ACCESS not-accessible 4066 STATUS current 4067 DESCRIPTION 4068 "The jmJobIDTable provides a correspondence map (1) between the 4069 job submission ID that a client uses to refer to a job and (2) 4070 the jmGeneralJobSetIndex and jmJobIndex that the Job Monitoring 4071 MIB agent assigned to the job and that are used to access the 4072 job in all of the other tables in the MIB. If a monitoring 4073 application already knows the jmGeneralJobSetIndex and the 4074 jmJobIndex of the job it is querying, that application NEED NOT 4075 use the jmJobIDTable. 4077 The MANDATORY-GROUP macro specifies that this group is 4078 MANDATORY." 4079 ::= { jmJobID 1 } 4081 jmJobIDEntry OBJECT-TYPE 4082 SYNTAX JmJobIDEntry 4083 MAX-ACCESS not-accessible 4084 STATUS current 4085 DESCRIPTION 4086 "The map from (1) the jmJobSubmissionID to (2) the 4087 jmGeneralJobSetIndex and jmJobIndex. 4089 An entry SHALL exist in this table for each job currently known 4090 to the agent for all job sets and job states. There MAY be 4091 more than one jmJobIDEntry that maps to a single job. This 4092 many to one mapping can occur when more than one network entity 4093 along the job submission path supplies a job submission ID. 4094 See Section 3.5. However, each job SHALL appear once and in 4095 one and only one job set." 4096 INDEX { jmJobSubmissionID } 4097 ::= { jmJobIDTable 1 } 4099 JmJobIDEntry ::= SEQUENCE { 4100 jmJobSubmissionID OCTET STRING(SIZE(48)), 4101 jmJobIDJobSetIndex Integer32 (0..32767), 4102 jmJobIDJobIndex Integer32 (0..2147483647) 4103 } 4104 jmJobSubmissionID OBJECT-TYPE 4105 SYNTAX OCTET STRING(SIZE(48)) 4106 MAX-ACCESS not-accessible 4107 STATUS current 4108 DESCRIPTION 4109 "A quasi-unique 48-octet fixed-length string ID which 4110 identifies the job within a particular client-server 4111 environment. There are multiple formats for the 4112 jmJobSubmissionID. Each format SHALL be uniquely identified. 4113 See the JmJobSubmissionIDTypeTC textual convention. Each 4114 format SHALL be registered using the procedures of a type 2 4115 enum. See section 3.7.3 entitled: 'PWG Registration of Job 4116 Submission Id Formats'. 4118 If the requester (client or server) does not supply a job 4119 submission ID in the job submission protocol, then the 4120 recipient (server or device) SHALL assign a job submission ID 4121 using any of the standard formats that have been reserved for 4122 agents and adding the final 8 octets to distinguish the ID from 4123 others submitted from the same requester. 4125 The monitoring application, whether in the client or running 4126 separately, MAY use the job submission ID to help identify 4127 which jmJobIndex was assigned by the agent, i.e., in which row 4128 the job information is in the other tables. 4130 NOTE - fixed-length is used so that a management application 4131 can use a shortened GetNext varbind (in SNMPv1 and SNMPv2) in 4132 order to get the next submission ID, disregarding the remainder 4133 of the ID in order to access jobs independent of the trailing 4134 identifier part, e.g., to get all jobs submitted by a 4135 particular jmJobOwner or submitted from a particular MAC 4136 address. 4138 See the JmJobSubmissionIDTypeTC textual convention. 4139 See APPENDIX B - Support of Job Submission Protocols." 4140 ::= { jmJobIDEntry 1 } 4142 jmJobIDJobSetIndex OBJECT-TYPE 4143 SYNTAX Integer32 (0..32767) 4144 MAX-ACCESS read-only 4145 STATUS current 4146 DESCRIPTION 4147 "This object contains the value of the jmGeneralJobSetIndex for 4148 the job with the jmJobSubmissionID value, i.e., the job set 4149 index of the job set in which the job was placed when that 4150 server or device accepted the job. This 16-bit value in 4151 combination with the jmJobIDJobIndex value permits the 4152 management application to access the other tables to obtain the 4153 job-specific objects for this job. 4155 See jmGeneralJobSetIndex in the jmGeneralTable." 4156 DEFVAL { 0 } -- 0 indicates no job set index 4157 ::= { jmJobIDEntry 2 } 4159 jmJobIDJobIndex OBJECT-TYPE 4160 SYNTAX Integer32 (0..2147483647) 4161 MAX-ACCESS read-only 4162 STATUS current 4163 DESCRIPTION 4164 "This object contains the value of the jmJobIndex for the job 4165 with the jmJobSubmissionID value, i.e., the job index for the 4166 job when the server or device accepted the job. This value, in 4167 combination with the jmJobIDJobSetIndex value, permits the 4168 management application to access the other tables to obtain the 4169 job-specific objects for this job. 4171 See jmJobIndex in the jmJobTable." 4172 DEFVAL { 0 } -- 0 indicates no jmJobIndex value. 4173 ::= { jmJobIDEntry 3 } 4175 -- The Job Group (MANDATORY) 4177 -- The jmJobGroup consists entirely of the jmJobTable. 4179 jmJob OBJECT IDENTIFIER ::= { jobmonMIBObjects 3 } 4181 jmJobTable OBJECT-TYPE 4182 SYNTAX SEQUENCE OF JmJobEntry 4183 MAX-ACCESS not-accessible 4184 STATUS current 4185 DESCRIPTION 4186 "The jmJobTable consists of basic job state and status 4187 information for each job in a job set that (1) monitoring 4188 applications need to be able to access in a single SNMP Get 4189 operation, (2) that have a single value per job, and (3) that 4190 SHALL always be implemented. 4192 The MANDATORY-GROUP macro specifies that this group is 4193 MANDATORY." 4194 ::= { jmJob 1 } 4196 jmJobEntry OBJECT-TYPE 4197 SYNTAX JmJobEntry 4198 MAX-ACCESS not-accessible 4199 STATUS current 4200 DESCRIPTION 4201 "Basic per-job state and status information. 4203 An entry SHALL exist in this table for each job, no matter what 4204 the state of the job is. Each job SHALL appear in one and only 4205 one job set. 4207 See Section 3.2 entitled 'The Job Tables'." 4208 INDEX { jmGeneralJobSetIndex, jmJobIndex } 4209 ::= { jmJobTable 1 } 4211 JmJobEntry ::= SEQUENCE { 4212 jmJobIndex Integer32 (1..2147483647), 4213 jmJobState JmJobStateTC, 4214 jmJobStateReasons1 JmJobStateReasons1TC, 4215 jmNumberOfInterveningJobs Integer32 (-2..2147483647), 4216 jmJobKOctetsPerCopyRequested Integer32 (-2..2147483647), 4217 jmJobKOctetsProcessed Integer32 (-2..2147483647), 4218 jmJobImpressionsPerCopyRequested Integer32 (-2..2147483647), 4219 jmJobImpressionsCompleted Integer32 (-2..2147483647), 4220 jmJobOwner JmJobStringTC (SIZE(0..63)) 4221 } 4222 jmJobIndex OBJECT-TYPE 4223 SYNTAX Integer32 (1..2147483647) 4224 MAX-ACCESS not-accessible 4225 STATUS current 4226 DESCRIPTION 4227 "The sequential, monatonically increasing identifier index for 4228 the job generated by the server or device when that server or 4229 device accepted the job. This index value permits the 4230 management application to access the other tables to obtain the 4231 job-specific row entries. 4233 See Section 3.2 entitled 'The Job Tables and the Oldest Active 4234 and Newest Active Indexes'. 4235 See Section 3.5 entitled 'Job Identification'. 4236 See also jmGeneralNewestActiveJobIndex for the largest value of 4237 jmJobIndex. 4238 See JmJobSubmissionIDTypeTC for a limit on the size of this 4239 index if the agent represents it as an 8-digit decimal number." 4240 ::= { jmJobEntry 1 } 4242 jmJobState OBJECT-TYPE 4243 SYNTAX JmJobStateTC 4244 MAX-ACCESS read-only 4245 STATUS current 4246 DESCRIPTION 4247 "The current state of the job (pending, processing, completed, 4248 etc.). Agents SHALL implement only those states which are 4249 appropriate for the particular implementation. However, 4250 management applications SHALL be prepared to receive all the 4251 standard job states. 4253 The final value for this object SHALL be one of: completed, 4254 canceled, or aborted. The minimum length of time that the 4255 agent SHALL maintain MIB data for a job in the completed, 4256 canceled, or aborted state before removing the job data from 4257 the jmJobIDTable and jmJobTable is specified by the value of 4258 the jmGeneralJobPersistence object." 4259 DEFVAL { unknown } -- default is unknown 4260 ::= { jmJobEntry 2 } 4262 jmJobStateReasons1 OBJECT-TYPE 4263 SYNTAX JmJobStateReasons1TC 4264 MAX-ACCESS read-only 4265 STATUS current 4266 DESCRIPTION 4267 "Additional information about the job's current state, i.e., 4268 information that augments the value of the job's jmJobState 4269 object. 4271 Implementation of any reason values is OPTIONAL, but an agent 4272 SHOULD return any reason information available. These values 4273 MAY be used with any job state or states for which the reason 4274 makes sense. Since the Job State Reasons will be more dynamic 4275 than the Job State, it is recommended that a job monitoring 4276 application read this object every time jmJobState is read. 4277 When the agent cannot provide a reason for the current state of 4278 the job, the value of the jmJobStateReasons1 object and 4279 jobStateReasonsN attributes SHALL be 0. 4281 The jobStateReasonsN (N=2..4) attributes provide further 4282 additional information about the job's current state." 4283 DEFVAL { 0 } -- no reasons 4284 ::= { jmJobEntry 3 } 4286 jmNumberOfInterveningJobs OBJECT-TYPE 4287 SYNTAX Integer32 (-2..2147483647) 4288 MAX-ACCESS read-only 4289 STATUS current 4290 DESCRIPTION 4291 "The number of jobs that are expected to complete processing 4292 before this job has completed processing according to the 4293 implementation's queuing algorithm, if no other jobs were to be 4294 submitted. In other words, this value is the job's queue 4295 position. The agent SHALL return a value of 0 for this 4296 attribute when the job is the next job to complete processing 4297 (or has completed processing)." 4298 DEFVAL { 0 } -- default is no intervening jobs. 4299 ::= { jmJobEntry 4 } 4301 jmJobKOctetsPerCopyRequested OBJECT-TYPE 4302 SYNTAX Integer32 (-2..2147483647) 4303 MAX-ACCESS read-only 4304 STATUS current 4305 DESCRIPTION 4306 "The total size in K (1024) octets of the document(s) being 4307 requested to be processed in the job. The agent SHALL round 4308 the actual number of octets up to the next highest K. Thus 0 4309 octets is represented as '0', 1-1024 octets is represented as 4310 '1', 1025-2048 is represented as '2', etc. 4312 In computing this value, the server/device SHALL NOT include 4313 the multiplicative factors contributed by (1) the number of 4314 document copies, and (2) the number of job copies, independent 4315 of whether the device can process multiple copies of the job or 4316 document without making multiple passes over the job or 4317 document data and independent of whether the output is collated 4318 or not. Thus the server/device computation is independent of 4319 the implementation and indicates the size of the document(s) 4320 measured in K octets independent of the number of copies." 4321 DEFVAL { -2 } -- the default is unknown(-2) 4322 ::= { jmJobEntry 5 } 4324 jmJobKOctetsProcessed OBJECT-TYPE 4325 SYNTAX Integer32 (-2..2147483647) 4326 MAX-ACCESS read-only 4327 STATUS current 4328 DESCRIPTION 4329 "The total number of octets processed by the server or device 4330 measured in units of K (1024) octets so far. The agent SHALL 4331 round the actual number of octets processed up to the next 4332 higher K. Thus 0 octets is represented as '0', 1-1024 octets 4333 is represented as '1', 1025-2048 octets is '2', etc. For 4334 printing devices, this value is the number interpreted by the 4335 page description language interpreter rather than what has been 4336 marked on media. 4338 For implementations where multiple copies are produced by the 4339 interpreter with only a single pass over the data, the final 4340 value SHALL be equal to the value of the 4341 jmJobKOctetsPerCopyRequested object. For implementations where 4342 multiple copies are produced by the interpreter by processing 4343 the data for each copy, the final value SHALL be a multiple of 4344 the value of the jmJobKOctetsPerCopyRequested object. 4346 NOTE - See the impressionsCompletedCurrentCopy and 4347 pagesCompletedCurrentCopy attributes for attributes that are 4348 reset on each document copy. 4350 NOTE - The jmJobKOctetsProcessed object can be used with the 4351 jmJobKOctetsPerCopyRequested object to provide an indication of 4352 the relative progress of the job, provided that the 4353 multiplicative factor is taken into account for some 4354 implementations of multiple copies." 4355 DEFVAL { 0 } -- default is no octets processed. 4356 ::= { jmJobEntry 6 } 4358 jmJobImpressionsPerCopyRequested OBJECT-TYPE 4359 SYNTAX Integer32 (-2..2147483647) 4360 MAX-ACCESS read-only 4361 STATUS current 4362 DESCRIPTION 4363 "The total size in number of impressions of the document(s) 4364 submitted. 4366 In computing this value, the server/device SHALL NOT include 4367 the multiplicative factors contributed by (1) the number of 4368 document copies, and (2) the number of job copies, independent 4369 of whether the device can process multiple copies of the job or 4370 document without making multiple passes over the job or 4371 document data and independent of whether the output is collated 4372 or not. Thus the server/device computation is independent of 4373 the implementation and reflects the size of the document(s) 4374 measured in impressions independent of the number of copies. 4376 See the definition of the term 'impression' in Section 2." 4377 DEFVAL { -2 } -- default is unknown(-2) 4378 ::= { jmJobEntry 7 } 4380 jmJobImpressionsCompleted OBJECT-TYPE 4381 SYNTAX Integer32 (-2..2147483647) 4382 MAX-ACCESS read-only 4383 STATUS current 4384 DESCRIPTION 4385 "The total number of impressions completed for this job so far. 4386 For printing devices, the impressions completed includes 4387 interpreting, marking, and stacking the output. For other 4388 types of job services, the number of impressions completed 4389 includes the number of impressions processed. 4391 NOTE - See the impressionsCompletedCurrentCopy and 4392 pagesCompletedCurrentCopy attributes for attributes that are 4393 reset on each document copy. 4395 NOTE - The jmJobImpressionsCompleted object can be used with 4396 the jmJobImpressionsPerCopyRequested object to provide an 4397 indication of the relative progress of the job, provided that 4398 the multiplicative factor is taken into account for some 4399 implementations of multiple copies. 4401 See the definition of the term 'impression' in Section 2 and 4402 the counting example in Section 3.4 entitled 'Monitoring Job 4403 Progress'." 4404 DEFVAL { 0 } -- default is no octets 4405 ::= { jmJobEntry 8 } 4407 jmJobOwner OBJECT-TYPE 4408 SYNTAX JmJobStringTC (SIZE(0..63)) 4409 MAX-ACCESS read-only 4410 STATUS current 4411 DESCRIPTION 4412 "The coded character set name of the user that submitted the 4413 job. The method of assigning this user name will be system 4414 and/or site specific but the method MUST ensure that the name 4415 is unique to the network that is visible to the client and 4416 target device. 4418 This value SHOULD be the most authenticated name of the user 4419 submitting the job. 4421 See the OBJECT compliance macro for the minimum maximum length 4422 required for conformance." 4423 DEFVAL { ''H } -- default is empty string 4424 ::= { jmJobEntry 9 } 4426 -- The Attribute Group (MANDATORY) 4428 -- The jmAttributeGroup consists entirely of the jmAttributeTable. 4429 -- 4430 -- Implementation of the objects in this group is MANDATORY. 4431 -- See Section 3.1 entitled 'Conformance Considerations'. 4432 -- An agent SHALL implement any attribute if (1) the server or device 4433 -- supports the functionality represented by the attribute and (2) the 4434 -- information is available to the agent. 4436 jmAttribute OBJECT IDENTIFIER ::= { jobmonMIBObjects 4 } 4438 jmAttributeTable OBJECT-TYPE 4439 SYNTAX SEQUENCE OF JmAttributeEntry 4440 MAX-ACCESS not-accessible 4441 STATUS current 4442 DESCRIPTION 4443 "The jmAttributeTable SHALL contain attributes of the job and 4444 document(s) for each job in a job set. Instead of allocating 4445 distinct objects for each attribute, each attribute is 4446 represented as a separate row in the jmAttributeTable. 4448 The MANDATORY-GROUP macro specifies that this group is 4449 MANDATORY. An agent SHALL implement any attribute if (1) the 4450 server or device supports the functionality represented by the 4451 attribute and (2) the information is available to the agent. " 4452 ::= { jmAttribute 1 } 4454 jmAttributeEntry OBJECT-TYPE 4455 SYNTAX JmAttributeEntry 4456 MAX-ACCESS not-accessible 4457 STATUS current 4458 DESCRIPTION 4459 "Attributes representing information about the job and 4460 document(s) or resources required and/or consumed. 4462 Each entry in the jmAttributeTable is a per-job entry with an 4463 extra index for each type of attribute (jmAttributeTypeIndex) 4464 that a job can have and an additional index 4465 (jmAttributeInstanceIndex) for those attributes that can have 4466 multiple instances per job. The jmAttributeTypeIndex object 4467 SHALL contain an enum type that indicates the type of attribute 4468 (see the JmAttributeTypeTC textual-convention). The value of 4469 the attribute SHALL be represented in either the 4470 jmAttributeValueAsInteger or jmAttributeValueAsOctets objects, 4471 and/or both, as specified in the JmAttributeTypeTC textual- 4472 convention. 4474 The agent SHALL create rows in the jmAttributeTable as the 4475 server or device is able to discover the attributes either from 4476 the job submission protocol itself or from the document PDL. 4477 As the documents are interpreted, the interpreter MAY discover 4478 additional attributes and so the agent adds additional rows to 4479 this table. As the attributes that represent resources are 4480 actually consumed, the usage counter contained in the 4481 jmAttributeValueAsInteger object is incremented according to 4482 the units indicated in the description of the JmAttributeTypeTC 4483 enum. 4485 The agent SHALL maintain each row in the jmAttributeTable for 4486 at least the minimum time after a job completes as specified by 4487 the jmGeneralAttributePersistence object. 4489 Zero or more entries SHALL exist in this table for each job in 4490 a job set. 4492 See Section 3.3 entitled 'The Attribute Mechanism' for a 4493 description of the jmAttributeTable." 4494 INDEX { jmGeneralJobSetIndex, jmJobIndex, jmAttributeTypeIndex, 4495 jmAttributeInstanceIndex } 4496 ::= { jmAttributeTable 1 } 4498 JmAttributeEntry ::= SEQUENCE { 4499 jmAttributeTypeIndex JmAttributeTypeTC, 4500 jmAttributeInstanceIndex Integer32 (1..32767), 4501 jmAttributeValueAsInteger Integer32 (-2..2147483647), 4502 jmAttributeValueAsOctets OCTET STRING(SIZE(0..63)) 4503 } 4504 jmAttributeTypeIndex OBJECT-TYPE 4505 SYNTAX JmAttributeTypeTC 4506 MAX-ACCESS not-accessible 4507 STATUS current 4508 DESCRIPTION 4509 "The type of attribute that this row entry represents. 4511 The type MAY identify information about the job or document(s) 4512 or MAY identify a resource required to process the job before 4513 the job start processing and/or consumed by the job as the job 4514 is processed. 4516 Examples of job attributes (i.e., apply to the job as a whole) 4517 that have only one instance per job include: 4518 jobCopiesRequested(90), documentCopiesRequested(92), 4519 jobCopiesCompleted(91), documentCopiesCompleted(93), while 4520 examples of job attributes that may have more than one instance 4521 per job include: documentFormatIndex(37), and 4522 documentFormat(38). 4524 Examples of document attributes (one instance per document) 4525 include: fileName(34), and documentName(35). 4527 Examples of required and consumed resource attributes include: 4528 pagesRequested(130), mediumRequested(170), pagesCompleted(131), 4529 and mediumConsumed(171), respectively." 4530 ::= { jmAttributeEntry 1 } 4532 jmAttributeInstanceIndex OBJECT-TYPE 4533 SYNTAX Integer32 (1..32767) 4534 MAX-ACCESS not-accessible 4535 STATUS current 4536 DESCRIPTION 4537 "A running 16-bit index of the attributes of the same type for 4538 each job. For those attributes with only a single instance per 4539 job, this index value SHALL be 1. For those attributes that 4540 are a single value per document, the index value SHALL be the 4541 document number, starting with 1 for the first document in the 4542 job. Jobs with only a single document SHALL use the index 4543 value of 1. For those attributes that can have multiple values 4544 per job or per document, such as documentFormatIndex(37) or 4545 documentFormat(38), the index SHALL be a running index for the 4546 job as a whole, starting at 1." 4547 ::= { jmAttributeEntry 2 } 4549 jmAttributeValueAsInteger OBJECT-TYPE 4550 SYNTAX Integer32 (-2..2147483647) 4551 MAX-ACCESS read-only 4552 STATUS current 4553 DESCRIPTION 4554 "The integer value of the attribute. The value of the 4555 attribute SHALL be represented as an integer if the enum 4556 description in the JmAttributeTypeTC textual-convention 4557 definition has the tag: 'INTEGER:'. 4559 Depending on the enum definition, this object value MAY be an 4560 integer, a counter, an index, or an enum, depending on the 4561 jmAttributeTypeIndex value. The units of this value are 4562 specified in the enum description. 4564 For those attributes that are accumulating job consumption as 4565 the job is processed as specified in the JmAttributeTypeTC 4566 textual-convention, SHALL contain the final value after the job 4567 completes processing, i.e., this value SHALL indicate the total 4568 usage of this resource made by the job. 4570 A monitoring application is able to copy this value to a 4571 suitable longer term storage for later processing as part of an 4572 accounting system. 4574 Since the agent MAY add attributes representing resources to 4575 this table while the job is waiting to be processed or being 4576 processed, which can be a long time before any of the resources 4577 are actually used, the agent SHALL set the value of the 4578 jmAttributeValueAsInteger object to 0 for resources that the 4579 job has not yet consumed. 4581 Attributes for which the concept of an integer value is 4582 meaningless, such as fileName(34), jobName, and 4583 processingMessage, do not have the 'INTEGER:' tag in the 4584 JmAttributeTypeTC definition and so an agent SHALL always 4585 return a value of '-1' to indicate 'other' for the value of the 4586 jmAttributeValueAsInteger object for these attributes. 4588 For attributes which do have the 'INTEGER:' tag in the 4589 JmAttributeTypeTC definition, if the integer value is not (yet) 4590 known, the agent either (1) SHALL not materialize the row in 4591 the jmAttributeTable until the value is known or (2) SHALL 4592 return a '-2' to represent an 'unknown' counting integer value, 4593 a '0' to represent an 'unknown' index value, and a '2' to 4594 represent an 'unknown(2)' enum value." 4595 DEFVAL { -2 } -- default value is unknown(-2) 4596 ::= { jmAttributeEntry 3 } 4598 jmAttributeValueAsOctets OBJECT-TYPE 4599 SYNTAX OCTET STRING(SIZE(0..63)) 4600 MAX-ACCESS read-only 4601 STATUS current 4602 DESCRIPTION 4603 "The octet string value of the attribute. The value of the 4604 attribute SHALL be represented as an OCTET STRING if the enum 4605 description in the JmAttributeTypeTC textual-convention 4606 definition has the tag: 'OCTETS:'. 4608 Depending on the enum definition, this object value MAY be a 4609 coded character set string (text), such as 'JmUTF8StringTC', or 4610 a binary octet string, such as 'DateAndTime'. 4612 Attributes for which the concept of an octet string value is 4613 meaningless, such as pagesCompleted, do not have the tag 4614 'OCTETS:' in the JmAttributeTypeTC definition and so the agent 4615 SHALL always return a zero length string for the value of the 4616 jmAttributeValueAsOctets object. 4618 For attributes which do have the 'OCTETS:' tag in the 4619 JmAttributeTypeTC definition, if the OCTET STRING value is not 4620 (yet) known, the agent either SHALL NOT materialize the row in 4621 the jmAttributeTable until the value is known or SHALL return a 4622 zero-length string." 4623 DEFVAL { ''H } -- empty string 4624 ::= { jmAttributeEntry 4 } 4626 -- Notifications and Trapping 4627 -- Reserved for the future 4629 jobmonMIBNotifications OBJECT IDENTIFIER ::= { jobmonMIB 2 } 4631 -- Conformance Information 4633 jmMIBConformance OBJECT IDENTIFIER ::= { jobmonMIB 3 } 4635 -- compliance statements 4636 jmMIBCompliance MODULE-COMPLIANCE 4637 STATUS current 4638 DESCRIPTION 4639 "The compliance statement for agents that implement the 4640 job monitoring MIB." 4641 MODULE -- this module 4642 MANDATORY-GROUPS { 4643 jmGeneralGroup, jmJobIDGroup, jmJobGroup, jmAttributeGroup } 4645 OBJECT jmGeneralJobSetName 4646 SYNTAX JmUTF8StringTC (SIZE(0..8)) 4647 DESCRIPTION 4648 "Only 8 octets maximum string length NEED be supported by the 4649 agent." 4651 OBJECT jmJobOwner 4652 SYNTAX JmJobStringTC (SIZE(0..16)) 4653 DESCRIPTION 4654 "Only 16 octets maximum string length NEED be supported by the 4655 agent." 4657 -- There are no CONDITIONALLY MANDATORY or OPTIONAL groups. 4659 ::= { jmMIBConformance 1 } 4661 jmMIBGroups OBJECT IDENTIFIER ::= { jmMIBConformance 2 } 4663 jmGeneralGroup OBJECT-GROUP 4664 OBJECTS { 4665 jmGeneralNumberOfActiveJobs, jmGeneralOldestActiveJobIndex, 4666 jmGeneralNewestActiveJobIndex, jmGeneralJobPersistence, 4667 jmGeneralAttributePersistence, jmGeneralJobSetName} 4668 STATUS current 4669 DESCRIPTION 4670 "The general group." 4671 ::= { jmMIBGroups 1 } 4673 jmJobIDGroup OBJECT-GROUP 4674 OBJECTS { 4675 jmJobIDJobSetIndex, jmJobIDJobIndex } 4676 STATUS current 4677 DESCRIPTION 4678 "The job ID group." 4679 ::= { jmMIBGroups 2 } 4681 jmJobGroup OBJECT-GROUP 4682 OBJECTS { 4683 jmJobState, jmJobStateReasons1, jmNumberOfInterveningJobs, 4684 jmJobKOctetsPerCopyRequested, jmJobKOctetsProcessed, 4685 jmJobImpressionsPerCopyRequested, jmJobImpressionsCompleted, 4686 jmJobOwner } 4687 STATUS current 4688 DESCRIPTION 4689 "The job group." 4690 ::= { jmMIBGroups 3 } 4692 jmAttributeGroup OBJECT-GROUP 4693 OBJECTS { 4694 jmAttributeValueAsInteger, jmAttributeValueAsOctets } 4695 STATUS current 4696 DESCRIPTION 4697 "The attribute group." 4698 ::= { jmMIBGroups 4 } 4700 END 4701 5 Appendix A - Implementing the Job Life Cycle 4703 The job object has well-defined states and client operations that 4704 affect the transition between the job states. Internal server and 4705 device actions also affect the transitions of the job between the job 4706 states. These states and transitions are referred to as the job's life 4707 cycle. 4709 Not all implementations of job submission protocols have all of the 4710 states of the job model specified here. The job model specified here 4711 is intended to be a superset of most implementations. It is the 4712 purpose of the agent to map the particular implementation's job life 4713 cycle onto the one specified here. The agent MAY omit any states not 4714 implemented. Only the processing and completed states are required to 4715 be implemented by an agent. However, a conforming management 4716 application SHALL be prepared to accept any of the states in the job 4717 life cycle specified here, so that the management application can 4718 interoperate with any conforming agent. 4720 The job states are intended to be user visible. The agent SHALL make 4721 these states visible in the MIB, but only for the subset of job states 4722 that the implementation has. Some implementations MAY need to have 4723 sub-states of these user-visible states. The jmJobStateReasons1 object 4724 and the jobStateReasonsN (N=2..4) attributes can be used to represent 4725 the sub-states of the jobs. 4727 Job states are intended to last a user-visible length of time in most 4728 implementations. However, some jobs may pass through some states in 4729 zero time in some situations and/or in some implementations. 4731 The job model does not specify how accounting and auditing is 4732 implemented, except to assume that accounting and auditing logs are 4733 separate from the job life cycle and last longer than job entries in 4734 the MIB. Jobs in the completed, aborted, or canceled states are not 4735 logs, since jobs in these states are accessible via SNMP protocol 4736 operations and SHALL be removed from the Job Monitoring MIB tables 4737 after a site-settable or implementation-defined period of time. An 4738 accounting application MAY copy accounting information incrementally to 4739 an accounting log as a job processes, or MAY be copied while the job is 4740 in the canceled, aborted, or completed states, depending on 4741 implementation. The same is true for auditing logs. 4743 The jmJobState object specifies the standard job states. The normal 4744 job state transitions are shown in the state transition diagram 4745 presented in Table 1. 4747 6 APPENDIX B - Support of Job Submission Protocols 4749 A companion PWG document, entitled "Job Submission Protocol Mapping 4750 Recommendations for the Job Monitoring MIB" [protomap] contains the 4751 recommended usage of each of the objects and attributes in this MIB 4752 with a number of job submission protocols. In particular, which job 4753 submission ID format should be used is indicated for each job 4754 submission protocol. 4756 Some job submission protocols have support for the client to specify a 4757 job submission ID. A second approach is to enhance the document format 4758 to embed the job submission ID in the document data. This second 4759 approach is independent of the job submission protocol. This appendix 4760 lists some examples of these approaches. 4762 Some PJL implementations wrap a banner page as a PJL job around a job 4763 submitted by a client. If this results in multiple job submission IDs, 4764 the agent SHALL create multiple jmJobIDEntry rows in the jmJobIDTable 4765 that each point to the same job entry in the job tables. See the 4766 specification of the jmJobIDEntry. 4768 7 References 4770 [BCP-11] Bradner S., Hovey R., "The Organizations Involved in the IETF 4771 Standards Process", 1996/10/29 (RFC 2028) 4773 [GB2312] GB 2312-1980, "Chinese People's Republic of China (PRC) mixed 4774 one byte and two byte coded character set" 4776 [hr-mib] P. Grillo, S. Waldbusser, "Host Resources MIB", RFC 1514, 4777 September 1993 4779 [iana] J. Reynolds, and J. Postel, "Assigned Numbers", STD 2, RFC 1700, 4780 ISI, October 1994. 4782 [IANA-charsets] Coded Character Sets registered by IANA and assigned an 4783 enum value for use in the CodedCharSet textual convention imported from 4784 the Printer MIB. See ftp://ftp.isi.edu/in- 4785 notes/iana/assignments/character-sets 4787 [iana-media-types] IANA Registration of MIME media types (MIME content 4788 types/subtypes). See ftp://ftp.isi.edu/in-notes/iana/assignments/ 4790 [ipp-model] Internet Printing Protocol/1.0: Model and Semantics, work 4791 in progress on the IETF standards track. See draft-ietf-ipp-model- 4792 09.txt. See also http://www.pwg.org/ipp/index.html 4793 [ISO-639] ISO 639:1988 (E/F) - Code for Representation of names of 4794 languages - The International Organization for Standardization, 1st 4795 edition, 1988. 4797 [ISO-646] ISO/IEC 646:1991, "Information technology -- ISO 7-bit coded 4798 character set for information interchange", JTC1/SC2. 4800 [ISO-2022] ISO/IEC 2022:1994 - "Information technology -- Character 4801 code structure and extension techniques", JTC1/SC2. 4803 [ISO-3166] ISO 3166:1988 (E/F) - Codes for representation of names of 4804 countries - The International Organization for Standardization, 3rd 4805 edition, 1988-08-15." 4807 [ISO-8859-1] ISO/IEC 8859-1:1987, "Information technology -- 8-bit 4808 single byte coded graphic character sets - Part 1: Latin alphabet No. 4809 1, JTC1/SC2." 4811 [ISO-10646] ISO/IEC 10646-1:1993, "Information technology -- Universal 4812 Multiple-Octet Coded Character Set (UCS) - Part 1: Architecture and 4813 Basic Multilingual Plane, JTC1/SC2. 4815 [iso-dpa] ISO/IEC 10175-1:1996 "Information technology -- Text and 4816 Office Systems -- Document Printing Application (DPA) -- Part 1: 4817 Abstract service definition and procedures. See 4818 ftp://ftp.pwg.org/pub/pwg/dpa/ 4820 [JIS X0208] JIS X0208-1990, "Japanese two byte coded character set." 4822 [mib-II] MIB-II, RFC 1213. 4824 [print-mib] Smith, R., Wright, F., Hastings, T., Zilles, S. and 4825 Gyllenskog, J., "Printer MIB", RFC 1759, proposed IETF standard, March 4826 1995. See also [print-mib-draft]. 4828 [print-mib-draft] Turner, R., "Printer MIB", work in progress, on the 4829 standards track as a draft standard: , January 22, 1999. 4832 [protomap] Bergman, R., "Job Submission Protocol Mapping 4833 Recommendations for the Job Monitoring MIB," work in progress as an 4834 informational RFC. See , 4835 February 10, 1998. 4837 [pwg] The Printer Working Group is a printer industry consortium open 4838 to any individuals. For more information, access the PWG web page: 4839 http://www.pwg.org 4841 [RFC1179] McLaughlin, L., III, "Line Printer Daemon Protocol", RFC 4842 1179, August 1990 4843 [RFC1738] Berners-Lee, T., Masinter, L., McCahill, M., "Uniform 4844 Resource Locators (URL)", RFC 1738, December 1994. 4846 [RFC1766] Avelstrand, H., "Tags for the Identification of Languages", 4847 RFC 1766, March 1995. 4849 [RFC2026] S. Bradner, "The Internet Standards Process -- Revision 3", 4850 RFC 2026, October 1996. 4852 [RFC2119] S. Bradner, "Keywords for use in RFCs to Indicate Requirement 4853 Levels", RFC 2119, March 1997. 4855 [RFC2277] H. Alvestrand, "IETF Policy on Character Sets and 4856 Languages" RFC 2277, January 1998. 4858 [RFC2278] N. Freed, J. Postel: "IANA CharSet Registration 4859 Procedures", RFC 2278, January 1998. 4861 [SMIv2-SMI] J. Case, et al. "Structure of Management Information for 4862 Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 4863 1902, January 1996. 4865 [SMIv2-TC] J. Case, et al. "Textual Conventions for Version 2 of the 4866 Simple Network Management Protocol (SNMPv2)", RFC 1903, January 1996. 4868 [tipsi] IEEE 1284.1, Transport-independent Printer System Interface 4869 (TIPSI). 4871 [URI-spec] Berners-Lee, T., Fielding, R., Masinter, L., "Uniform 4872 Resource Identifiers (URI): Generic Syntax", RFC 2396, August 1998. 4874 [US-ASCII] Coded Character Set - 7-bit American Standard Code for 4875 Information Interchange, ANSI X3.4-1986. 4877 [UTF-8] F. Yergeau, "UTF-8, a transformation format of ISO 10646", RFC 4878 2279, January 1998. 4880 8 Notices 4882 The IETF takes no position regarding the validity or scope of any 4883 intellectual property or other rights that might be claimed to pertain 4884 to the implementation or use of the technology described in this 4885 document or the extent to which any license under such rights might or 4886 might not be available; neither does it represent that it has made any 4887 effort to identify any such rights. Information on the IETF's 4888 procedures with respect to rights in standards-track and standards- 4889 related documentation can be found in BCP-11[BCP-11]. Copies of claims 4890 of rights made available for publication and any assurances of licenses 4891 to be made available, or the result of an attempt made to obtain a 4892 general license or permission for the use of such proprietary rights by 4893 implementers or users of this specification can be obtained from the 4894 IETF Secretariat. 4896 The IETF invites any interested party to bring to its attention any 4897 copyrights, patents or patent applications, or other proprietary rights 4898 which may cover technology that may be required to practice this 4899 standard. Please address the information to the IETF Executive 4900 Director. 4902 Copyright (C) The Internet Society (1999). All Rights Reserved. 4904 This document and translations of it may be copied and furnished to 4905 others, and derivative works that comment on or otherwise explain it or 4906 assist in its implementation may be prepared, copied, published and 4907 distributed, in whole or in part, without restriction of any kind, 4908 provided that the above copyright notice and this paragraph are 4909 included on all such copies and derivative works. However, this 4910 document itself may not be modified in any way, such as by removing the 4911 copyright notice or references to the Internet Society or other 4912 Internet organizations, except as needed for the purpose of developing 4913 Internet standards in which case the procedures for copyrights defined 4914 in the Internet Standards process must be followed, or as required to 4915 translate it into languages other than English. 4917 The limited permissions granted above are perpetual and will not be 4918 revoked by the Internet Society or its successors or assigns. 4920 This document and the information contained herein is provided on an 4921 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 4922 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT 4923 NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL 4924 NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR 4925 FITNESS FOR A PARTICULAR PURPOSE. 4927 9 Author's Addresses 4928 Ron Bergman 4929 Dataproducts Corp. 4930 1757 Tapo Canyon Road 4931 Simi Valley, CA 93063-3394 4933 Phone: 805-578-4421 4934 Fax: 805-578-4001 4935 Email: rbergman@dpc.com 4937 Tom Hastings 4938 Xerox Corporation, ESAE-231 4939 737 Hawaii St. 4941 El Segundo, CA 90245 4943 Phone: 310-333-6413 4944 Fax: 310-333-5514 4945 EMail: hastings@cp10.es.xerox.com 4947 Scott A. Isaacson 4948 Novell, Inc. 4949 122 E 1700 S 4950 Provo, UT 84606 4952 Phone: 801-861-7366 4953 Fax: 801-861-4025 4954 EMail: scott_isaacson@novell.com 4956 Harry Lewis 4957 IBM Corporation 4958 6300 Diagonal Hwy 4959 Boulder, CO 80301 4961 Phone: (303) 924-5337 4962 Fax: 4963 Email: harryl@us.ibm.com 4965 Send questions and comments to the Printer Working Group (PWG) 4966 using the Job Monitoring Project (JMP) Mailing List: jmp@pwg.org 4968 To learn how to subscribe, send email to: jmp-request@pwg.org 4970 Implementers of this specification are encouraged to join the jmp 4971 mailing list in order to participate in discussions on any 4972 clarifications needed and registration proposals for additional 4973 attributes and values being reviewed in order to achieve consensus. 4975 For further information, access the PWG web page under "JMP": 4977 http://www.pwg.org/ 4979 Other Participants: 4980 Chuck Adams - Tektronix 4981 Jeff Barnett - IBM 4982 Keith Carter, IBM Corporation 4983 Jeff Copeland - QMS 4984 Andy Davidson - Tektronix 4985 Roger deBry - IBM 4986 Mabry Dozier - QMS 4987 Lee Farrell - Canon 4988 Steve Gebert - IBM 4989 Robert Herriot - Sun Microsystems Inc. 4990 Shige Kanemitsu - Kyocera 4991 David Kellerman - Northlake Software 4992 Rick Landau - Digital 4993 Pete Loya - HP 4994 Ray Lutz - Cognisys 4995 Jay Martin - Underscore 4996 Mike MacKay, Novell, Inc. 4997 Stan McConnell - Xerox 4998 Carl-Uno Manros, Xerox, Corp. 4999 Pat Nogay - IBM 5000 Bob Pentecost - HP 5001 Rob Rhoads - Intel 5002 David Roach - Unisys 5003 Stuart Rowley - Kyocera 5004 Hiroyuki Sato - Canon 5005 Bob Setterbo - Adobe 5006 Gail Songer, EFI 5007 Mike Timperman - Lexmark 5008 Randy Turner - Sharp 5009 William Wagner - Digital Products 5010 Jim Walker - Dazel 5011 Chris Wellens - Interworking Labs 5012 Rob Whittle - Novell 5013 Don Wright - Lexmark 5014 Lloyd Young - Lexmark 5015 Atsushi Yuki - Kyocera 5016 Peter Zehler, Xerox, Corp. 5018 10 Change History 5020 This section summarizes the changes in each version after version 1.0 5021 in reverse chronological order. 5023 10.1Changes to produce version 1.0, dated February 19, 1999 5025 The following changes were made to version 1.2, dated October 2, 1998 5026 to make version 1.0 [sic], dated January 28, 1999: 5028 1.Changed the version number back to 1.0 for this INTERNET-DRAFT in 5029 anticipation of its being published as an Information RFC. 5031 10.2Changes to produce version 1.2, dated October 2, 1998 5033 The following changes were made to version 1.1, dated October 1, 1998 5034 to make version 1.2, dated October 2, 1998: 5036 1.Removed all REFERENCE clauses since they referred to sections in the 5037 specification that were not in the MIB as requested by the IESG. 5039 2.Moved the definitions of the attributes from the TC to a new section 5040 3.3.8 as requested by the IESG. 5042 3.Removed the attributes from the Table of Contents 5044 4.Added the data types as ASN.1 comments after each attribute enum. 5046 5.Changed a number of occurrences of "SHALL" to "is" when they were 5047 just definitions, rather than conformance requirements. 5049 10.3Changes to produce version 1.1, dated October 1, 1998 5051 The following changes were made to version 1.0, dated February 3, 1998 5052 to make version 1.1, dated October 1, 1998: 5054 1.Clarified sections 3.3.3 and 3.3.7 so that the DEFVAL of 0 for index 5055 attributes is different from the DEFVAL for 5056 jmAttributeValueAsInteger which is -2. 5058 2.Clarified the relationships of the values of the 5059 JmJobCollationTypeTC with the IPP "multiple-document-handling" 5060 attribute. 5062 3.Clarified that the values of the mediumRequested(170) and 5063 mediumConsumed(171) attributes may be any of the IPP 'media' values 5064 which are media names, media size names, and input tray names. 5066 4.Added the two attributes approved by the PWG for registration in 5067 April 1998: mediumTypeConsumed(174) and mediumSizeConsumed(175). 5069 5.Changed "insure" to "ensure'. 5071 6.Correct an incorrect reference in the jmAttributeEntry DESCRIPTION 5072 from jmJobTable to jmAttributeTable. 5074 11 INDEX 5076 This index includes the textual conventions, the objects, and the 5077 attributes. Textual conventions all start with the prefix: "JM" and 5078 end with the suffix: "TC". Objects all starts with the prefix: "jm" 5079 followed by the group name. Attributes are identified with enums, and 5080 so start with any lower case letter and have no special prefix. 5082 colorantConsumed, 42 5083 colorantRequested, 41 5084 deviceNameRequested, 31 5085 documentCopiesCompleted, 36 5086 documentCopiesRequested, 36 5087 documentFormat, 33 5088 documentFormatIndex, 32 5089 documentName, 32 5090 fileName, 32 5091 finishing, 35 5092 fullColorImpressionsCompleted, 38 5093 highlightColorImpressionsCompleted, 39 5094 impressionsCompletedCurrentCopy, 38 5095 impressionsInterpreted, 38 5096 impressionsSentToDevice, 38 5097 impressionsSpooled, 38 5098 jmAttributeInstanceIndex, 103 5099 jmAttributeTypeIndex, 103 5100 JmAttributeTypeTC, 80 5101 jmAttributeValueAsInteger, 104 5102 jmAttributeValueAsOctets, 105 5103 JmBooleanTC, 74 5104 JmFinishingTC, 72 5105 jmGeneralAttributePersistence, 90 5106 jmGeneralJobPersistence, 90 5107 jmGeneralJobSetIndex, 88 5108 jmGeneralJobSetName, 91 5109 jmGeneralNewestActiveJobIndex, 89 5110 jmGeneralNumberOfActiveJobs, 88 5111 jmGeneralOldestActiveJobIndex, 89 5112 JmJobCollationTypeTC, 76 5113 jmJobIDJobIndex, 94 5114 jmJobIDJobSetIndex, 94 5115 jmJobImpressionsCompleted, 99 5116 jmJobImpressionsPerCopyRequested, 99 5117 jmJobIndex, 96 5118 jmJobKOctetsPerCopyRequested, 98 5119 jmJobKOctetsProcessed, 98 5120 jmJobOwner, 100 5121 JmJobServiceTypesTC, 84 5122 JmJobSourcePlatformTypeTC, 71 5123 jmJobState, 96 5124 jmJobStateReasons1, 97 5125 JmJobStateReasons1TC, 85 5126 JmJobStateReasons2TC, 85 5127 JmJobStateReasons3TC, 86 5128 JmJobStateReasons4TC, 86 5129 JmJobStateTC, 77 5130 JmJobStringTC, 70 5131 jmJobSubmissionID, 93 5132 JmJobSubmissionIDTypeTC, 76 5133 JmMediumTypeTC, 74 5134 JmNaturalLanguageTagTC, 70 5135 jmNumberOfInterveningJobs, 97 5136 JmPrinterResolutionTC, 73 5137 JmPrintQualityTC, 73 5138 jmSystemAttrIntegerSupport, 105 5139 JmTimeStampTC, 71 5140 JmTonerEconomyTC, 74 5141 JmUTF8StringTC, 70 5142 jobAccountName, 28 5143 jobCodedCharSet, 27 5144 jobCollationType, 37 5145 jobComment, 32 5146 jobCompletionTime, 44 5147 jobCopiesCompleted, 36 5148 jobCopiesRequested, 36 5149 jobHold, 34 5150 jobHoldUntil, 34 5151 jobKOctetsTransferred, 37 5152 jobName, 29 5153 jobNaturalLanguageTag, 27 5154 jobOriginatingHost, 31 5155 jobPriority, 33 5156 jobProcessAfterDateAndTime, 34 5157 jobProcessingCPUTime, 44 5158 jobServiceTypes, 30 5159 jobSourceChannelIndex, 30 5160 jobSourcePlatformType, 30 5161 jobStartedBeingHeldTime, 43 5162 jobStartedProcessingTime, 44 5163 jobStateReasons2, 25 5164 jobStateReasons3, 25 5165 jobStateReasons4, 25 5166 jobSubmissionTime, 43 5167 jobSubmissionToServerTime, 43 5168 jobURI, 28 5169 mediumConsumed, 41 5170 mediumRequested, 41 5171 mediumSizeConsumed, 42 5172 mediumTypeConsumed, 42 5173 numberOfDocuments, 31 5174 other, 25 5175 outputBin, 34 5176 pagesCompleted, 39 5177 pagesCompletedCurrentCopy, 40 5178 pagesRequested, 39 5179 physicalDevice, 31 5180 printerResolutionRequested, 35 5181 printerResolutionUsed, 35 5182 printQualityRequested, 35 5183 printQualityUsed, 35 5184 processingMessage, 26 5185 processingMessageNaturalLangTag, 26 5186 queueNameRequested, 31 5187 serverAssignedJobName, 28 5188 sheetCompletedCopyNumber, 37 5189 sheetCompletedDocumentNumber, 37 5190 sheetsCompleted, 40 5191 sheetsCompletedCurrentCopy, 40 5192 sheetsRequested, 40 5193 sides, 34 5194 submittingApplicationName, 30 5195 submittingServerName, 30 5196 tonerDensityRequested, 35 5197 tonerDensityUsed, 36 5198 tonerEcomonyRequested, 35 5199 tonerEcomonyUsed, 35