idnits 2.17.1 draft-ietf-printmib-job-monitor-07.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-19) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. ** 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 11 longer pages, the longest (page 3) being 60 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 6 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 299: '...an agent SHALL return if the server or...' RFC 2119 keyword, line 401: '... application SHALL query each job ...' RFC 2119 keyword, line 451: '...agent SHALL represent an attribute as ...' RFC 2119 keyword, line 471: '...ent instructions MAY be passed in the ...' RFC 2119 keyword, line 472: '...l document data, or MAY be embedded in...' (291 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 1564 has weird spacing: '...and the objec...' == Line 2005 has weird spacing: '...obOwner objec...' == Line 3514 has weird spacing: '...ounters have ...' == Line 4731 has weird spacing: '...graphic chara...' == Line 4735 has weird spacing: '...code structur...' == 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 indicated. == 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: All of the objects and attributes represented by the 'JmJobStringTC' textual-convention are either (1) supplied in the job submission protocol by the client that submits the job to the server or device or (2) are defaulted by the server or device if the job submitting client does not supply values. The agent SHALL represent these objects and attributes in the MIB either (1) in the coded character set as they were submitted or (2) MAY convert the coded character set to another coded character set or encoding scheme. In any case, the resulting coded character set representation SHOULD be UTF-8 [UTF-8], but SHALL be one in which the code positions from 0 to 31 SHALL not be used, 32 to 127 SHALL be US-ASCII [US-ASCII], 127 SHALL be unused, and the remaining code positions 128 to 255 SHALL represent single-byte or multi-byte graphic characters structured according to ISO 2022 [ISO 2022] or SHALL be unused. == 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: -- 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. " REFERENCE "These bit definitions are the equivalent of a type 2 enum except that combinations of them may be used together. See section 3.7.1.2. See the description under JmJobStateReasons1TC and the jobStateReasons2 attribute." SYNTAX INTEGER (0..2147483647) -- 31 bits, all but sign bit == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: In computing this value, the server/device SHALL not include the multiplicative factors contributed by (1) the number of document copies, and (2) the number of job copies, independent of whether the device can process multiple copies of the job or document without making multiple passes over the job or document data and independent of whether the output is collated or not. Thus the server/device computation is independent of the implementation and indicates the size of the document(s) measured in K octets independent of the number of copies." DEFVAL { -2 } -- the default is unknown(-2) ::= { jmJobEntry 5 } == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: In computing this value, the server/device SHALL not include the multiplicative factors contributed by (1) the number of document copies, and (2) the number of job copies, independent of whether the device can process multiple copies of the job or document without making multiple passes over the job or document data and independent of whether the output is collated or not. Thus the server/device computation is independent of the implementation and reflects the size of the document(s) measured in impressions independent of the number of copies." REFERENCE "See the definition of the term 'impression' in Section 2." DEFVAL { -2 } -- default is unknown(-2) ::= { jmJobEntry 7 } == 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 } == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHALL not' in this paragraph: For attributes which do have the 'OCTETS:' tag in the JmAttributeTypeTC definition, if the OCTET STRING value is not (yet) known, the agent either SHALL not materialize the row in the jmAttributeTable until the value is known or SHALL return a zero-length string." DEFVAL { ''H } -- empty string ::= { jmAttributeEntry 4 } -- 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 3, 1998) is 9572 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: 'PWG' is mentioned on line 267, but not defined == Missing Reference: 'RFC 2130' is mentioned on line 1372, but not defined == Missing Reference: 'US-ASCII' is mentioned on line 4799, but not defined == Missing Reference: 'RFC-1766' is mentioned on line 4779, but not defined ** Obsolete undefined reference: RFC 1766 (Obsoleted by RFC 3066, RFC 3282) == Missing Reference: 'IPP-model' is mentioned on line 1388, but not defined == Missing Reference: 'UTF-8' is mentioned on line 4802, but not defined == Missing Reference: 'IANA' is mentioned on line 2459, but not defined == Missing Reference: 'ISO 8859-1' is mentioned on line 1427, but not defined == Missing Reference: 'SMIv2-TC' is mentioned on line 4790, but not defined == Missing Reference: 'URI-spec' is mentioned on line 4796, but not defined == Missing Reference: 'RFC-1179' is mentioned on line 2073, but not defined == Missing Reference: 'RFC-1738' is mentioned on line 2492, but not defined ** Obsolete undefined reference: RFC 1738 (Obsoleted by RFC 4248, RFC 4266) == Missing Reference: 'SMIv2-SMI' is mentioned on line 4786, but not defined == Unused Reference: 'ISO 646' is defined on line 4727, but no explicit reference was found in the text == Unused Reference: 'ISO 8859' is defined on line 4730, but no explicit reference was found in the text == Unused Reference: 'ISO 2022' is defined on line 4734, but no explicit reference was found in the text -- 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 8859' -- 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-10646' -- Possible downref: Non-RFC (?) normative reference: ref. 'JIS X0208' Summary: 11 errors (**), 0 flaws (~~), 37 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 5 Xerox Corporation 6 S. Isaacson 7 Novell, Inc. 8 H. Lewis 9 IBM Corp. 10 February 3, 1998 11 Job Monitoring MIB - V1 12 14 Status of this Memo 16 This document is an Internet-Draft. Internet-Drafts are working 17 documents of the Internet Engineering Task Force (IETF), its 18 areas, and its working groups. Note that other groups may also 19 distribute working documents as Internet-Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six 22 months and may be updated, replaced, or obsoleted by other 23 documents at any time. It is inappropriate to use Internet-Drafts 24 as reference material or to cite them other than as "work in 25 progress." 27 To learn the current status of any Internet-Draft, please check 28 the "1id-abstracts.txt" listing contained in the Internet-Drafts 29 Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net 30 (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East 31 Coast), or ftp.isi.edu (US West Coast). 33 This Internet-Draft expires on August 3, 1998. 35 Abstract 37 This document has been developed and approved by the Printer 38 Working Group (PWG) as a PWG standard. It is intended to be 39 distributed as an Informational RFC. This document provides a 40 printer industry standard SNMP MIB for (1) monitoring the status 41 and progress of print jobs (2) obtaining resource requirements 42 before a job is processed, (3) monitoring resource consumption 43 while a job is being processed and (4) collecting resource 44 accounting data after the completion of a job. This MIB is 45 intended to be implemented (1) in a printer or (2) in a server 46 that supports one or more printers. Use of the object set is not 47 limited to printing. However, support for services other than 48 printing is outside the scope of this Job Monitoring MIB. Future 49 extensions to this MIB may include, but are not limited to, fax 50 machines and scanners. 52 TABLE OF CONTENTS 54 1. INTRODUCTION 8 56 1.1 Types of Information in the MIB 8 58 1.2 Types of Job Monitoring Applications 10 60 2. TERMINOLOGY AND JOB MODEL 11 62 2.1 System Configurations for the Job Monitoring MIB 14 63 2.1.1 Configuration 1 - client-printer 14 64 2.1.2 Configuration 2 - client-server-printer - agent in the 65 server 15 66 2.1.3 Configuration 3 - client-server-printer - client monitors 67 printer agent and server 16 69 3. MANAGED OBJECT USAGE 18 71 3.1 Conformance Considerations 18 72 3.1.1 Conformance Terminology 18 73 3.1.2 Agent Conformance Requirements 18 74 3.1.2.1 MIB II System Group objects 19 75 3.1.2.2 MIB II Interface Group objects 19 76 3.1.2.3 Printer MIB objects 19 77 3.1.3 Job Monitoring Application Conformance Requirements 19 79 3.2 The Job Tables and the Oldest Active and Newest Active Indexes 19 81 3.3 The Attribute Mechanism 21 82 3.3.1 Conformance of Attribute Implementation 22 83 3.3.2 Useful, 'Unknown', and 'Other' Values for Objects and 84 Attributes 22 85 3.3.3 Data Sub-types and Attribute Naming Conventions 23 86 3.3.4 Single-Value (Row) Versus Multi-Value (MULTI-ROW) 87 Attributes 24 88 3.3.5 Requested Objects and Attributes 24 89 3.3.6 Consumption Attributes 25 90 3.3.7 Index Value Attributes 25 92 3.4 Monitoring Job Progress 25 94 3.5 Job Identification 29 96 3.6 Internationalization Considerations 30 97 3.6.1 Text generated by the server or device 30 98 3.6.2 Text supplied by the job submitter 31 99 3.6.3 'DateAndTime' for representing the date and time 32 101 3.7 IANA and PWG Registration Considerations 32 102 3.7.1 PWG Registration of enums 33 103 3.7.1.1 Type 1 enumerations 33 104 3.7.1.2 Type 2 enumerations 33 105 3.7.1.3 Type 3 enumeration 34 106 3.7.2 PWG Registration of type 2 bit values 34 107 3.7.3 PWG Registration of Job Submission Id Formats 34 108 3.7.4 PWG Registration of MIME types/sub-types for document- 109 formats 34 111 3.8 Security Considerations 34 112 3.8.1 Read-Write objects 34 113 3.8.2 Read-Only Objects In Other User's Jobs 35 115 3.9 Notifications 35 117 4. MIB SPECIFICATION 35 119 Textual Conventions for this MIB Module 37 120 JmUTF8StringTC 37 121 JmJobStringTC 37 122 JmNaturalLanguageTagTC 37 123 JmTimeStampTC 37 124 JmJobSourcePlatformTypeTC 38 125 JmFinishingTC 39 126 JmPrintQualityTC 40 127 JmPrinterResolutionTC 40 128 JmTonerEconomyTC 41 129 JmBooleanTC 41 130 JmMediumTypeTC 41 131 JmJobCollationTypeTC 43 132 JmJobSubmissionIDTypeTC 46 133 JmJobStateTC 48 134 JmAttributeTypeTC 51 135 other (Int32(-2..) and/or Octets63) 51 136 Job State attributes 52 137 jobStateReasons2 (JmJobStateReasons2TC) 52 138 jobStateReasons3 (JmJobStateReasons3TC) 52 139 jobStateReasons4 (JmJobStateReasons4TC) 52 140 processingMessage (UTF8String63) 52 141 processingMessageNaturalLangTag (Octets63) 53 142 jobCodedCharSet (CodedCharSet) 53 143 jobNaturalLanguageTag (Octets63) 54 144 Job Identification attributes 54 145 jobURI (Octets(0..63)) 54 146 jobAccountName (Octets63) 54 147 serverAssignedJobName (JobString63) 55 148 jobName (JobString63) 55 149 jobServiceTypes (JmJobServiceTypesTC) 56 150 jobSourceChannelIndex (Int32(0..)) 56 151 jobSourcePlatformType (JmJobSourcePlatformTypeTC) 56 152 submittingServerName (JobString63) 56 153 submittingApplicationName (JobString63) 56 154 jobOriginatingHost (JobString63) 57 155 deviceNameRequested (JobString63) 57 156 queueNameRequested (JobString63) 57 157 physicalDevice (hrDeviceIndex and/or UTF8String63) 57 158 numberOfDocuments (Int32(-2..)) 57 159 fileName (JobString63) 58 160 documentName (JobString63) 58 161 jobComment (JobString63) 58 162 documentFormatIndex (Int32(0..)) 58 163 documentFormat (PrtInterpreterLangFamilyTC and/or Octets63)59 164 Job Parameter attributes 59 165 jobPriority (Int32(-2..100)) 59 166 jobProcessAfterDateAndTime (DateAndTime) 60 167 jobHold (JmBooleanTC) 60 168 jobHoldUntil (JobString63) 60 169 outputBin (Int32(0..) and/or JobString63) 60 170 sides (Int32(-2..2)) 61 171 finishing (JmFinishingTC) 61 172 Image Quality attributes (requested and used) 61 173 printQualityRequested (JmPrintQualityTC) 61 174 printQualityUsed (JmPrintQualityTC) 61 175 printerResolutionRequested (JmPrinterResolutionTC) 61 176 printerResolutionUsed (JmPrinterResolutionTC) 61 177 tonerEcomonyRequested (JmTonerEconomyTC) 61 178 tonerEcomonyUsed (JmTonerEconomyTC) 61 179 tonerDensityRequested (Int32(-2..100)) 61 180 tonerDensityUsed (Int32(-2..100)) 62 181 Job Progress attributes (requested and consumed) 62 182 jobCopiesRequested (Int32(-2..)) 62 183 jobCopiesCompleted (Int32(-2..)) 62 184 documentCopiesRequested (Int32(-2..)) 62 185 documentCopiesCompleted (Int32(-2..)) 62 186 jobKOctetsTransferred (Int32(-2..)) 63 187 sheetCompletedCopyNumber (Int32(-2..))4 63 188 sheetCompletedDocumentNumber (Int32(-2..))4 63 189 jobCollationType JmJobCollationTypeTC) 63 190 Impression attributes (requested and consumed) 64 191 impressionsSpooled (Int32(-2..)) 64 192 impressionsSentToDevice (Int32(-2..)) 64 193 impressionsInterpreted (Int32(-2..)) 64 194 impressionsCompletedCurrentCopy (Int32(-2..)) 64 195 fullColorImpressionsCompleted (Int32(-2..)) 64 196 highlightColorImpressionsCompleted (Int32(-2..)) 65 197 Page attributes (requested and consumed) 65 198 pagesRequested (Int32(-2..)) 65 199 pagesCompleted (Int32(-2..)) 65 200 pagesCompletedCurrentCopy (Int32(-2..)) 66 201 Sheet attributes (requested and consumed) 66 202 sheetsRequested (Int32(-2..)) 66 203 sheetsCompleted (Int32(-2..)) 66 204 sheetsCompletedCurrentCopy (Int32(-2..)) 66 205 Resource attributes (requested and consumed) 66 206 mediumRequested (JmMediumTypeTC and/or JobString63) 67 207 mediumConsumed (Int32(-2..) and JobString63) 67 208 colorantRequested (Int32(-2..) and/or JobString63) 67 209 colorantConsumed (Int32(-2..) and/or JobString63) 68 210 Time attributes (set by server or device) 68 211 jobSubmissionToServerTime (JmTimeStampTC and/or DateAndTime)68 212 jobSubmissionTime (JmTimeStampTC and/or DateAndTime) 68 213 jobStartedBeingHeldTime (JmTimeStampTC) 69 214 jobStartedProcessingTime (JmTimeStampTC and/or DateAndTime)69 215 jobCompletionTime (JmTimeStampTC and/or DateAndTime) 69 216 jobProcessingCPUTime (Int32(-2..)) 69 217 JmJobServiceTypesTC 71 218 JmJobStateReasons1TC 73 219 JmJobStateReasons2TC 77 220 JmJobStateReasons3TC 81 221 JmJobStateReasons4TC 81 223 The General Group (MANDATORY) 82 224 jmGeneralJobSetIndex (Int32(1..32767)) 83 225 jmGeneralNumberOfActiveJobs (Int32(0..)) 83 226 jmGeneralOldestActiveJobIndex (Int32(0..)) 84 227 jmGeneralNewestActiveJobIndex (Int32(0..)) 84 228 jmGeneralJobPersistence (Int32(15..)) 85 229 jmGeneralAttributePersistence (Int32(15..)) 85 230 jmGeneralJobSetName (UTF8String63) 86 232 The Job ID Group (MANDATORY) 86 233 jmJobSubmissionID (OCTET STRING(SIZE(48))) 88 234 jmJobIDJobSetIndex (Int32(0..32767)) 89 235 jmJobIDJobIndex (Int32(0..)) 89 237 The Job Group (MANDATORY) 89 238 jmJobIndex (Int32(1..)) 91 239 jmJobState (JmJobStateTC) 91 240 jmJobStateReasons1 (JmJobStateReasons1TC) 92 241 jmNumberOfInterveningJobs (Int32(-2..)) 92 242 jmJobKOctetsPerCopyRequested (Int32(-2..)) 93 243 jmJobKOctetsProcessed (Int32(-2..)) 93 244 jmJobImpressionsPerCopyRequested (Int32(-2..)) 94 245 jmJobImpressionsCompleted (Int32(-2..)) 94 246 jmJobOwner (JobString63) 95 248 The Attribute Group (MANDATORY) 95 249 jmAttributeTypeIndex (JmAttributeTypeTC) 98 250 jmAttributeInstanceIndex (Int32(1..32767)) 98 251 jmAttributeValueAsInteger (Int32(-2..)) 99 252 jmAttributeValueAsOctets (Octets63) 100 254 5. APPENDIX A - IMPLEMENTING THE JOB LIFE CYCLE 103 255 6. APPENDIX B - SUPPORT OF JOB SUBMISSION PROTOCOLS 104 257 7. REFERENCES 104 259 8. AUTHOR'S ADDRESSES 106 261 9. INDEX 109 262 Job Monitoring MIB 264 1. Introduction 266 This specification defines an official Printer Working Group (PWG) 267 [PWG] standard SNMP MIB for the monitoring of jobs on network printers. 268 This specification is being published as an IETF Information Document 269 for the convenience of the Internet community. In consultation with 270 the IETF Application Area Directors, it was concluded that this MIB 271 specification properly belongs as an Information document, because this 272 MIB monitors a service node on the network, rather than a network node 273 proper. 275 The Job Monitoring MIB is intended to be implemented by an agent within 276 a printer or the first server closest to the printer, where the printer 277 is either directly connected to the server only or the printer does not 278 contain the job monitoring MIB agent. It is recommended that 279 implementations place the SNMP agent as close as possible to the 280 processing of the print job. This MIB applies to printers with and 281 without spooling capabilities. This MIB is designed to be compatible 282 with most current commonly-used job submission protocols. In most 283 environments that support high function job submission/job control 284 protocols, like ISO DPA[iso-dpa], those protocols would be used to 285 monitor and manage print jobs rather than using the Job Monitoring MIB. 287 The Job Monitoring MIB consists of a General Group, a Job Submission ID 288 Group, a Job Group, and an Attribute Group. Each group is a table. 289 All accessible objects are read-only. The General Group contains 290 general information that applies to all jobs in a job set. The Job 291 Submission ID table maps the job submission ID that the client uses to 292 identify a job to the jmJobIndex that the Job Monitoring Agent uses to 293 identify jobs in the Job and Attribute tables. The Job table contains 294 the MANDATORY integer job state and status objects. The Attribute 295 table consists of multiple entries per job that specify (1) job and 296 document identification and parameters, (2) requested resources, and 297 (3) consumed resources during and after job processing/printing. A 298 larger number of job attributes are defined as textual conventions that 299 an agent SHALL return if the server or device implements the 300 functionality so represented and the agent has access to the 301 information. 303 1.1 Types of Information in the MIB 305 The job MIB is intended to provide the following information for the 306 indicated Role Models in the Printer MIB[print-mib] (Appendix D - Roles 307 of Users). 309 User: 311 Provide the ability to identify the least busy printer. The user 312 will be able to determine the number and size of jobs waiting for 313 each printer. No attempt is made to actually predict the length 314 of time that jobs will take. 316 Provide the ability to identify the current status of the user's 317 job (user queries). 319 Provide a timely indication that the job has completed and where 320 it can be found. 322 Provide error and diagnostic information for jobs that did not 323 successfully complete. 325 Operator: 327 Provide a presentation of the state of all the jobs in the print 328 system. 330 Provide the ability to identify the user that submitted the print 331 job. 333 Provide the ability to identify the resources required by each 334 job. 336 Provide the ability to define which physical printers are 337 candidates for the print job. 339 Provide some idea of how long each job will take. However, exact 340 estimates of time to process a job is not being attempted. 341 Instead, objects are included that allow the operator to be able 342 to make gross estimates. 344 Capacity Planner: 346 Provide the ability to determine printer utilization as a 347 function of time. 349 Provide the ability to determine how long jobs wait before 350 starting to print. 352 Accountant: 354 Provide information to allow the creation of a record of 355 resources consumed and printer usage data for charging users or 356 groups for resources consumed. 358 Provide information to allow the prediction of consumable usage 359 and resource need. 361 The MIB supports printers that can contain more than one job at a time, 362 but still be usable for low end printers that only contain a single job 363 at a time. In particular, the MIB supports the needs of Windows and 364 other PC environments for managing low-end direct-connect (serial or 365 parallel) and networked devices without unnecessary overhead or 366 complexity, while also providing for higher end systems and devices. 368 1.2 Types of Job Monitoring Applications 370 The Job Monitoring MIB is designed for the following types of 371 monitoring applications: 373 1. Monitor a single job starting when the job is submitted and 374 ending a defined period after the job completes. The Job 375 Submission ID table provides the map to find the specific job 376 to be monitored. 378 2. Monitor all 'active' jobs in a queue, which this specification 379 generalizes to a "job set". End users may use such a program 380 when selecting a least busy printer, so the MIB is designed for 381 such a program to start up quickly and find the information 382 needed quickly without having to read all (completed) jobs in 383 order to find the active jobs. System operators may also use 384 such a program, in which case it would be running for a long 385 period of time and may also be interested in the jobs that have 386 completed. Finally such a program may be used to provide an 387 enhanced console and logging capability. 389 3. Collect resource usage for accounting or system utilization 390 purposes that copy the completed job statistics to an 391 accounting system. It is recognized that depending on 392 accounting programs to copy MIB data during the job-retention 393 period is somewhat unreliable, since the accounting program may 394 not be running (or may have crashed). Such a program is also 395 expected to keep a shadow copy of the entire Job Attribute 396 table including completed, canceled, and aborted jobs which the 397 program updates on each polling cycle. Such a program polls at 398 the rate of the persistence of the Attribute table. The design 399 is not optimized to help such an application determine which 400 jobs are completed, canceled, or aborted. Instead, the 401 application SHALL query each job that the application's shadow 402 copy shows was not complete, canceled, or aborted at the 403 previous poll cycle to see if it is now complete or canceled, 404 plus any new jobs that have been submitted. 406 The MIB provides a set of objects that represent a compatible subset of 407 job and document attributes of the ISO DPA standard[iso-dpa] and the 408 Internet Printing Protocol (IPP)[ipp-model], so that coherence is 409 maintained between these two protocols and the information presented to 410 end users and system operators by monitoring applications. However, 411 the job monitoring MIB is intended to be used with printers that 412 implement other job submitting and management protocols, such as IEEE 413 1284.1 (TIPSI)[tipsi], as well as with ones that do implement ISO DPA. 415 Thus the job monitoring MIB does not require implementation of either 416 the ISO DPA or IPP protocols. 418 The MIB is designed so that an additional MIB(s) can be specified in 419 the future for monitoring multi-function (scan, FAX, copy) jobs as an 420 augmentation to this MIB. 422 2. Terminology and Job Model 424 This section defines the terms that are used in this specification and 425 the general model for jobs in alphabetical order. 427 NOTE - Existing systems use conflicting terms, so these terms are 428 drawn from the ISO 10175 Document Printing Application (DPA) 429 standard[iso-dpa]. For example, PostScript systems use the term 430 session for what is called a job in this specification and the term 431 job to mean what is called a document in this specification. 433 Accounting Application: The SNMP management application that copies 434 job information to some more permanent medium so that another 435 application can perform accounting on the data for Accountants, Asset 436 Managers, and Capacity Planners use. 438 Agent: The network entity that accepts SNMP requests from a monitor or 439 accounting application and provides access to the instrumentation for 440 managing jobs modeled by the management objects defined in the Job 441 Monitoring MIB module for a server or a device. 443 Attribute: A name, value-pair that specifies a job or document 444 instruction, a status, or a condition of a job or a document that has 445 been submitted to a server or device. A particular attribute NEED NOT 446 be present in each job instance. In other words, attributes are 447 present in a job instance only when there is a need to express the 448 value, either because (1) the client supplied a value in the job 449 submission protocol, (2) the document data contained an embedded 450 attribute, or (3) the server or device supplied a default value. An 451 agent SHALL represent an attribute as an entry (row) in the Attribute 452 table in this MIB in which entries are present only when necessary. 453 Attributes are identified in this MIB by an enum. 455 Client: The network entity that end users use to submit jobs to 456 spoolers, servers, or printers and other devices, depending on the 457 configuration, using any job submission protocol over a serial or 458 parallel port to a directly-connected device or over the network to a 459 networked-connected device. 461 Device: A hardware entity that (1) interfaces to humans, such as a 462 device that produces marks on paper or scans marks on paper to produce 463 an electronic representation, (2) accesses digital media, such as CD- 464 ROMs, or (3) interfaces electronically to another device, such as sends 465 FAX data to another FAX device. 467 Document: A sub-section within a job that contains print data and 468 document instructions that apply to just the document. 470 Document Instruction: An instruction specifying how to process the 471 document. Document instructions MAY be passed in the job submission 472 protocol separate from the actual document data, or MAY be embedded in 473 the document data or a combination, depending on the job submission 474 protocol and implementation. 476 End User: A user that uses a client to submit a print job. See 477 "user". 479 Impression: For a print job, an impression is the passage of the 480 entire side of a sheet by the marker, whether or not any marks are made 481 and independent of the number of passes that the side makes past the 482 marker. Thus a four pass color process counts as a single impression, 483 as does highlight color. Impression counters count all kinds: 484 monochrome, highlight color, and full process color, while full color 485 counters only count full color impressions, and high light color 486 counters only count high light color impressions. 488 One-sided processing involves one impression per sheet. Two-sided 489 processing involves two impressions per sheet. If a two-sided document 490 has an odd number of pages, the last sheet still counts as two 491 impressions, if that sheet makes two passes through the marker or the 492 marker marks on both sides of a sheet in a single pass. Two-up 493 printing is the placement of two logical pages on one side of a sheet 494 and so is still a single impression. See "page" and "sheet". 496 NOTE - Since impressions include blank sides, it is suggested that 497 accounting application implementers consider charging for sheets, 498 rather than impressions, possibly using the value of the sides 499 attribute to select different charges for one-sided versus two-sided 500 printing, since some users may think that impressions don't include 501 blank sides. 503 Internal Collation: The production of the sheets for each document copy 504 performed within the printing device by making multiple passes over 505 either the source or an intermediate representation of the document. 507 Job: A unit of work whose results are expected together without 508 interjection of unrelated results. A job contains one or more 509 documents. 511 Job Accounting: The activity of a management application of accessing 512 the MIB and recording what happens to the job during and after the 513 processing of the job. 515 Job Instruction: An instruction specifying how, when, or where the job 516 is to be processed. Job instructions MAY be passed in the job 517 submission protocol or MAY be embedded in the document data or a 518 combination depending on the job submission protocol and 519 implementation. 521 Job Monitoring (using SNMP): The activity of a management application 522 of accessing the MIB and (1) identifying jobs in the job tables being 523 processed by the server, printer or other devices, and (2) displaying 524 information to the user about the processing of the job. 526 Job Monitoring Application: The SNMP management application that End 527 Users, and System Operators use to monitor jobs using SNMP. A monitor 528 MAY be either a separate application or MAY be part of the client that 529 also submits jobs. See "monitor". 531 Job Set: A group of jobs that are queued and scheduled together 532 according to a specified scheduling algorithm for a specified device or 533 set of devices. For implementations that embed the SNMP agent in the 534 device, the MIB job set normally represents all the jobs known to the 535 device, so that the implementation only implements a single job set. 536 If the SNMP agent is implemented in a server that controls one or more 537 devices, each MIB job set represents a job queue for (1) a specific 538 device or (2) set of devices, if the server uses a single queue to load 539 balance between several devices. Each job set is disjoint; no job 540 SHALL be represented in more than one MIB job set. 542 Monitor: Short for Job Monitoring Application. 544 Page: A page is a logical division of the original source document. 545 Number up is the imposition of more than one page on a single side of a 546 sheet. See "impression" and "sheet" and "two-up". 548 Proxy: An agent that acts as a concentrator for one or more other 549 agents by accepting SNMP operations on the behalf of one or more other 550 agents, forwarding them on to those other agents, gathering responses 551 from those other agents and returning them to the original requesting 552 monitor. 554 Queuing: The act of a device or server of ordering (queuing) the jobs 555 for the purposes of scheduling the jobs to be processed. 557 Printer: A device that puts marks on media. 559 Server: A network entity that accepts jobs from clients and in turn 560 submits the jobs to printers and other devices that may be directly 561 connected to the server via a serial or parallel port or may be on the 562 network. A server MAY be a printer supervisor control program, or a 563 print spooler. 565 Sheet: A sheet is a single instance of a medium, whether printing on 566 one or both sides of the medium. See "impression" and "page". 568 SNMP Information Object: A name, value-pair that specifies an action, 569 a status, or a condition in an SNMP MIB. Objects are identified in 570 SNMP by an OBJECT IDENTIFIER. 572 Spooler: A server that accepts jobs, spools the data, and decides when 573 and on which printer to print the job. A spooler is a client to a 574 printer or a printer supervisor, depending on implementation. 576 Spooling: The act of a device or server of (1) accepting jobs and (2) 577 writing the job's attributes and document data on to secondary storage. 579 Stacked: When a media sheet is placed in an output bin of a device. 581 Supervisor: A server that contains a control program that controls a 582 printer or other device. A supervisor is a client to the printer or 583 other device. 585 System Operator: A user that uses a monitor to monitor the system and 586 carries out tasks to keep the system running. 588 System Administrator: A user that specifies policy for the system. 590 Two-up: The placement of two pages on one side of a sheet so that each 591 side or impressions counts as two pages. See "page" and "sheet". 593 User: A person that uses a client or a monitor. See "end user". 595 2.1 System Configurations for the Job Monitoring MIB 597 This section enumerates the three configurations in which the Job 598 Monitoring MIB is intended to be used. To simplify the pictures, the 599 devices are shown as printers. See section 1.1 entitled "Types of 600 Information in the MIB". 602 The diagram in the Printer MIB[print-mib] entitled: "One Printer's View 603 of the Network" is assumed for this MIB as well. Please refer to that 604 diagram to aid in understanding the following system configurations. 606 2.1.1 Configuration 1 - client-printer 608 In the client-printer configuration 1, the client(s) submit jobs 609 directly to the printer, either by some direct connect, or by network 610 connection. 612 The job submitting client and/or monitoring application monitor jobs by 613 communicating directly with an agent that is part of the printer. The 614 agent in the printer SHALL keep the job in the Job Monitoring MIB as 615 long as the job is in the printer, plus a defined time period after the 616 job enters the completed state in which accounting programs can copy 617 out the accounting data from the Job Monitoring MIB. 619 all end-user ######## SNMP query 620 +-------+ +--------+ ---- job submission 621 |monitor| | client | 622 +---#---+ +--#--+--+ 623 # # | 624 # ############ | 625 # # | 626 +==+===#=#=+==+ | 627 | | agent | | | 628 | +-------+ | | 629 | PRINTER <--------+ 630 | | Print Job Delivery Channel 631 | | 632 +=============+ 634 Figure 2-1 - Configuration 1 - client-printer - agent in the printer 636 The Job Monitoring MIB is designed to support the following 637 relationships (not shown in Figure 2-1): 638 1. Multiple clients MAY submit jobs to a printer. 639 2. Multiple clients MAY monitor a printer. 640 3. Multiple monitors MAY monitor a printer. 641 4. A client MAY submit jobs to multiple printers. 642 5. A monitor MAY monitor multiple printers. 644 2.1.2 Configuration 2 - client-server-printer - agent in the server 646 In the client-server-printer configuration 2, the client(s) submit jobs 647 to an intermediate server by some network connection, not directly to 648 the printer. While configuration 2 is included, the design center for 649 this MIB is configurations 1 and 3. 651 The job submitting client and/or monitoring application monitor jobs by 652 communicating directly with: 654 A Job Monitoring MIB agent that is part of the server (or a front 655 for the server) 657 There is no SNMP Job Monitoring MIB agent in the printer in 658 configuration 2, at least that the client or monitor are aware. In 659 this configuration, the agent SHALL return the current values of the 660 objects in the Job Monitoring MIB both for jobs the server keeps and 661 jobs that the server has submitted to the printer. The Job Monitoring 662 MIB agent SHALL obtain the required information from the printer by a 663 method that is beyond the scope of this document. The agent in the 664 server SHALL keep the job in the Job Monitoring MIB in the server as 665 long as the job is in the printer, plus a defined time period after the 666 job enters the completed state in which accounting programs can copy 667 out the accounting data from the Job Monitoring MIB. 669 all end-user 670 +-------+ +----------+ 671 |monitor| | client | ######## SNMP query 672 +---+---# +---#----+-+ **** non-SNMP cntrl 673 # # | ---- job submission 674 # # | 675 # # | 676 #=====#=+==v==+ 677 | agent | | 678 +-------+ | 679 | server | 680 +----+-----+--+ 681 control * | 682 ********** | 683 * | 684 +========v====+ | 685 | | | 686 | | | 687 | PRINTER <---------+ 688 | | Print Job Delivery Channel 689 | | 690 +=============+ 692 Figure 2-2 - Configuration 2 - client-server-printer - agent in the 693 server 695 The Job Monitoring MIB is designed to support the following 696 relationships (not shown in Figure 2-2): 697 1. Multiple clients MAY submit jobs to a server. 698 2. Multiple clients MAY monitor a server. 699 3. Multiple monitors MAY monitor a server. 700 4. A client MAY submit jobs to multiple servers. 701 5. A monitor MAY monitor multiple servers. 702 6. Multiple servers MAY submit jobs to a printer. 703 7. Multiple servers MAY control a printer. 705 2.1.3 Configuration 3 - client-server-printer - client monitors printer 706 agent and server 708 In the client-server-printer configuration 3, the client(s) submit jobs 709 to an intermediate server by some network connection, not directly to 710 the printer. That server does not contain a Job Monitoring MIB agent. 712 The job submitting client and/or monitoring application monitor jobs by 713 communicating directly with: 715 1. The server using some undefined protocol to monitor jobs in the 716 server (that does not contain the Job Monitoring MIB) AND 718 2. A Job Monitoring MIB agent that is part of the printer to 719 monitor jobs after the server passes the jobs to the printer. 720 In such configurations, the server deletes its copy of the job 721 from the server after submitting the job to the printer usually 722 almost immediately (before the job does much processing, if 723 any). 725 In configuration 3, the agent (in the printer) SHALL keep the values of 726 the objects in the Job Monitoring MIB that the agent implements updated 727 for a job that the server has submitted to the printer. The agent 728 SHALL obtain information about the jobs submitted to the printer from 729 the server (either in the job submission protocol, in the document 730 data, or by direct query of the server), in order to populate some of 731 the objects the Job Monitoring MIB in the printer. The agent in the 732 printer SHALL keep the job in the Job Monitoring MIB as long as the job 733 is in the Printer, and longer in order to implement the completed state 734 in which monitoring programs can copy out the accounting data from the 735 Job Monitoring MIB. 737 all end-user 738 +-------+ +----------+ 739 |monitor| | client | ######## SNMP query 740 +---+---* +---*----+-+ **** non-SNMP query 741 # * * | ---- job submission 742 # * * | 743 # * * | 744 # *=====v====v==+ 745 # | | 746 # | server | 747 # | | 748 # +----#-----+--+ 749 # optional# | 750 # ########## | 751 # # | 752 +==+=v===v=+==+ | 753 | | agent | | | 754 | +-------+ | | 755 | PRINTER <---------+ 756 | | Print Job Delivery Channel 757 | | 758 +=============+ 760 Figure 2-3 - Configuration 3 - client-server-printer - client monitors 761 printer agent and server 763 The Job Monitoring MIB is designed to support the following 764 relationships (not shown in Figure 2-3): 765 1. Multiple clients MAY submit jobs to a server. 766 2. Multiple clients MAY monitor a server. 767 3. Multiple monitors MAY monitor a server. 768 4. A client MAY submit jobs to multiple servers. 769 5. A monitor MAY monitor multiple servers. 770 6. Multiple servers MAY submit jobs to a printer. 771 7. Multiple servers MAY control a printer. 773 3. Managed Object Usage 775 This section describes the usage of the objects in the MIB. 777 3.1 Conformance Considerations 779 In order to achieve interoperability between job monitoring 780 applications and job monitoring agents, this specification includes the 781 conformance requirements for both monitoring applications and agents. 783 3.1.1 Conformance Terminology 785 This specification uses the verbs: "SHALL", "SHOULD", "MAY", and "NEED 786 NOT" to specify conformance requirements according to RFC 2119 [req- 787 words] as follows: 789 "SHALL": indicates an action that the subject of the sentence must 790 implement in order to claim conformance to this specification 792 "MAY": indicates an action that the subject of the sentence does not 793 have to implement in order to claim conformance to this 794 specification, in other words that action is an implementation option 796 "NEED NOT": indicates an action that the subject of the sentence 797 does not have to implement in order to claim conformance to this 798 specification. The verb "NEED NOT" is used instead of "may not", 799 since "may not" sounds like a prohibition. 801 "SHOULD": indicates an action that is recommended for the subject of 802 the sentence to implement, but is not required, in order to claim 803 conformance to this specification. 805 3.1.2 Agent Conformance Requirements 807 A conforming agent: 809 1. SHALL implement all MANDATORY groups in this specification. 811 2. SHALL implement any attributes if (1) the server or device 812 supports the functionality represented by the attribute and (2) 813 the information is available to the agent. 815 3. SHOULD implement both forms of an attribute if it implements an 816 attribute that permits a choice of INTEGER and OCTET STRING 817 forms, since implementing both forms may help management 818 applications by giving them a choice of representations, since 819 the representation are equivalent. See the JmAttributeTypeTC 820 textual-convention. 822 NOTE - This MIB, like the Printer MIB, is written following the subset 823 of SMIv2 that can be supported by SMIv1 and SNMPv1 implementations. 825 3.1.2.1 MIB II System Group objects 827 The Job Monitoring MIB agent SHALL implement all objects in the System 828 Group of MIB-II[mib-II], whether the Printer MIB[print-mib] is 829 implemented or not. 831 3.1.2.2 MIB II Interface Group objects 833 The Job Monitoring MIB agent SHALL implement all objects in the 834 Interfaces Group of MIB-II[mib-II], whether the Printer MIB[print-mib] 835 is implemented or not. 837 3.1.2.3 Printer MIB objects 839 If the agent is providing access to a device that is a printer, the 840 agent SHALL implement all of the MANDATORY objects in the Printer 841 MIB[print-mib] and all the objects in other MIBs that conformance to 842 the Printer MIB requires, such as the Host Resources MIB[hr-mib]. If 843 the agent is providing access to a server that controls one or more 844 direct-connect or networked printers, the agent NEED NOT implement the 845 Printer MIB and NEED NOT implement the Host Resources MIB. 847 3.1.3 Job Monitoring Application Conformance Requirements 849 A conforming job monitoring application: 851 1. SHALL accept the full syntactic range for all objects in all 852 MANDATORY groups and all MANDATORY attributes that are required 853 to be implemented by an agent according to Section 3.1.2 and 854 SHALL either present them to the user or ignore them. 856 2. SHALL accept the full syntactic range for all attributes, 857 including enum and bit values specified in this specification 858 and additional ones that may be registered with the PWG and 859 SHALL either present them to the user or ignore them. In 860 particular, a conforming job monitoring application SHALL not 861 malfunction when receiving any standard or registered enum or 862 bit values. See Section 3.7 entitled "IANA and PWG 863 Registration Considerations". 865 3. SHALL NOT fail when operating with agents that materialize 866 attributes after the job has been submitted, as opposed to when 867 the job is submitted. 869 4. SHALL, if it supports a time attribute, accept either form of 870 the time attribute, since agents are free to implement either 871 time form. 873 3.2 The Job Tables and the Oldest Active and Newest Active Indexes 875 The jmJobTable and jmAttributeTable contain objects and attributes, 876 respectively, for each job in a job set. These first two indexes are: 877 1. jmGeneralJobSetIndex - which job set 878 2. jmJobIndex - which job in the job set 880 In order for a monitoring application to quickly find that active jobs 881 (jobs in the pending, processing, or processingStopped states), the MIB 882 contains two indexes: 884 1. jmGeneralOldestActiveJobIndex - the index of the active job 885 that has been in the tables the longest. 887 2. jmGeneralNewestActiveJobIndex - the index of the active job 888 that has been most recently added to the tables. 890 The agent SHALL assign the next incremental value of jmJobIndex to the 891 job, when a new job is accepted by the server or device to which the 892 agent is providing access. If the incremented value of jmJobIndex 893 would exceed the implementation-defined maximum value for jmJobIndex, 894 the agent SHALL 'wrap' back to 1. An agent uses the resulting value of 895 jmJobIndex for storing information in the jmJobTable and the 896 jmAttributeTable about the job. 898 It is recommended that the largest value for jmJobIndex be much larger 899 than the maximum number of jobs that the implementation can contain at 900 a single time, so as to minimize the premature re-use of a jmJobIndex 901 value for a newer job while clients retain the same 'stale' value for 902 an older job. 904 It is recommended that agents that are providing access to 905 servers/devices that already allocate job-identifiers for jobs as 906 integers use the same integer value for the jmJobIndex. Then 907 management applications using this MIB and applications using other 908 protocols will see the same job identifiers for the same jobs. Agents 909 providing access to systems that contain jobs with a job identifier of 910 0 SHALL map the job identifier value 0 to a jmJobIndex value that is 911 one higher than the highest job identifier value that any job can have 912 on that system. Then only job 0 will have a different job-identifier 913 value than the job's jmJobIndex value. 915 NOTE - If a server or device accepts jobs using multiple job submission 916 protocols, it may be difficult for the agent to meet the recommendation 917 to use the job-identifier values that the server or device assigns as 918 the jmJobIndex value, unless the server/device assigns job-identifiers 919 for each of its job submission protocols from the same job-identifier 920 number space. 922 Each time a new job is accepted by the server or device that the agent 923 is providing access to AND that job is to be 'active' (pending, 924 processing, or processingStopped, but not pendingHeld), the agent SHALL 925 copy the value of the job's jmJobIndex to the 926 jmGeneralNewestActiveJobIndex object. If the new job is to be 927 'inactive' (pendingHeld state), the agent SHALL not change the value of 928 jmGeneralNewestActiveJobIndex object (though the agent SHALL assign the 929 next incremental jmJobIndex value to the job). 931 When a job transitions from one of the 'active' job states (pending, 932 processing, processingStopped) to one of the 'inactive' job states 933 (pendingHeld, completed, canceled, or aborted), with a jmJobIndex value 934 that matches the jmGeneralOldestActiveJobIndex object, the agent SHALL 935 advance (or wrap) the value to the next oldest 'active' job, if any. 936 See the JmJobStateTC textual-convention for a definition of the job 937 states. 939 Whenever a job transitions from one of the 'inactive' job states to one 940 of the 'active' job states (from pendingHeld to pending or processing), 941 the agent SHALL update the value of either the 942 jmGeneralOldestActiveJobIndex or the jmGeneralNewestActiveJobIndex 943 objects, or both, if the job's jmJobIndex value is outside the range 944 between jmGeneralOldestActiveJobIndex and 945 jmGeneralNewestActiveJobIndex. 947 When all jobs become 'inactive', i.e., enter the pendingHeld, 948 completed, canceled, or aborted states, the agent SHALL set the value 949 of both the jmGeneralOldestActiveJobIndex and 950 jmGeneralNewestActiveJobIndex objects to 0. 952 NOTE - Applications that wish to efficiently access all of the active 953 jobs MAY use jmGeneralOldestActiveJobIndex value to start with the 954 oldest active job and continue until they reach the index value equal 955 to jmGeneralNewestActiveJobIndex, skipping over any pendingHeld, 956 completed, canceled, or aborted jobs that might intervene. 958 If an application detects that the jmGeneralNewestActiveJobIndex is 959 smaller than jmGeneralOldestActiveJobIndex, the job index has wrapped. 960 In this case, the application SHALL reset the index to 1 when the end 961 of the table is reached and continue the GetNext operations to find the 962 rest of the active jobs. 964 NOTE - Applications detect the end of the jmAttributeTable table when 965 the OID returned by the GetNext operation is an OID in a different MIB. 966 There is no object in this MIB that specifies the maximum value for the 967 jmJobIndex supported by the implementation. 969 When the server or device is power-cycled, the agent SHALL remember the 970 next jmJobIndex value to be assigned, so that new jobs are not assigned 971 the same jmJobIndex as recent jobs before the power cycle. 973 3.3 The Attribute Mechanism 975 Attributes are similar to information objects, except that attributes 976 are identified by an enum, instead of an OID, so that attributes may be 977 registered without requiring a new MIB. Also an implementation that 978 does not have the functionality represented by the attribute can omit 979 the attribute entirely, rather than having to return a distinguished 980 value. The agent is free to materialize an attribute in the 981 jmAttributeTable as soon as the agent is aware of the value of the 982 attribute. 984 The agent materializes job attributes in a four-indexed 985 jmAttributeTable: 987 1. jmGeneralJobSetIndex - which job set 989 2. jmJobIndex - which job in the job set 991 3. jmAttributeTypeIndex - which attribute 993 4. jmAttributeInstanceIndex - which attribute instance for those 994 attributes that can have multiple values per job. 996 Some attributes represent information about a job, such as a file-name, 997 a document-name, a submission-time or a completion time. Other 998 attributes represent resources required, e.g., a medium or a colorant, 999 etc. to process the job before the job starts processing OR to indicate 1000 the amount of the resource consumed during and after processing, e.g., 1001 pages completed or impressions completed. If both a required and a 1002 consumed value of a resource is needed, this specification assigns two 1003 separate attribute enums in the textual convention. 1005 NOTE - The table of contents lists all the attributes in order. This 1006 order is the order of enum assignments which is the order that the SNMP 1007 GetNext operation returns attributes. Most attributes apply to all 1008 three configurations covered by this MIB specification (see section 2.1 1009 entitled "System Configurations for the Job Monitoring MIB"). Those 1010 attributes that apply to a particular configuration are indicated as 1011 'Configuration n:' and SHALL NOT be used with other configurations. 1013 3.3.1 Conformance of Attribute Implementation 1015 An agent SHALL implement any attribute if (1) the server or device 1016 supports the functionality represented by the attribute and (2) the 1017 information is available to the agent. The agent MAY create the 1018 attribute row in the jmAttributeTable when the information is available 1019 or MAY create the row earlier with the designated 'unknown' value 1020 appropriate for that attribute. See next section. 1022 If the server or device does not implement or does not provide access 1023 to the information about an attribute, the agent SHOULD NOT create the 1024 corresponding row in the jmAttributeTable. 1026 3.3.2 Useful, 'Unknown', and 'Other' Values for Objects and Attributes 1028 Some attributes have a 'useful' Integer32 value, some have a 'useful' 1029 OCTET STRING value, some MAY have either or both depending on 1030 implementation, and some MUST have both. See the JmAttributeTypeTC 1031 textual convention for the specification of each attribute. 1033 SNMP requires that if an object cannot be implemented because its 1034 values cannot be accessed, then a compliant agent SHALL return an SNMP 1035 error in SNMPv1 or an exception value in SNMPv2. However, this MIB has 1036 been designed so that 'all' objects can and SHALL be implemented by an 1037 agent, so that neither the SNMPv1 error nor the SNMPv2 exception value 1038 SHALL be generated by the agent. This MIB has also been designed so 1039 that when an agent materializes an attribute, the agent SHALL 1040 materialize a row consisting of both the jmAttributeValueAsInteger and 1041 jmAttributeValueAsOctets objects. 1043 In general, values for objects and attributes have been chosen so that 1044 a management application will be able to determine whether a 'useful', 1045 'unknown', or 'other' value is available. When a useful value is not 1046 available for an object that agent SHALL return a zero-length string 1047 for octet strings, the value 'unknown(2)' for enums, a '0' value for an 1048 object that represents an index in another table, and a value '-2' for 1049 counting integers. 1051 Since each attribute is represented by a row consisting of both the 1052 jmAttributeValueAsInteger and jmAttributeValueAsOctets MANDATORY 1053 objects, SNMP requires that the agent SHALL always create an attribute 1054 row with both objects specified. However, for most attributes the 1055 agent SHALL return a "useful" value for one of the objects and SHALL 1056 return the 'other' value for the other object. For integer only 1057 attributes, the agent SHALL always return a zero-length string value 1058 for the jmAttributeValueAsOctets object. For octet string only 1059 attributes, the agent SHALL always return a '-1' value for the 1060 jmAttributeValueAsInteger object. 1062 3.3.3 Data Sub-types and Attribute Naming Conventions 1064 Many attributes are sub-typed to give a more specific data type than 1065 Integer32 or OCTET STRING. The data sub-type of each attribute is 1066 indicated on the first line(s) of the description. Some attributes 1067 have several different data sub-type representations. When an 1068 attribute has both an Integer32 data sub-type and an OCTET STRING data 1069 sub-type, the attribute can be represented in a single row in the 1070 jmAttributeTable. In this case, the data sub-type name is not included 1071 as the last part of the name of the attribute, e.g., documentFormat(38) 1072 which is both an enum and/or a name. When the data sub-types cannot be 1073 represented by a single row in the jmAttributeTable, each such 1074 representation is considered a separate attribute and is assigned a 1075 separate name and enum value. For these attributes, the name of the 1076 data sub-type is the last part of the name of the attribute: Name, 1077 Index, DateAndTime, TimeStamp, etc. For example, 1078 documentFormatIndex(37) is an index. 1080 NOTE: The Table of Contents also lists the data sub-type and/or data 1081 sub-types of each attribute, using the textual-convention name when 1082 such is defined. The following abbreviations are used in the Table of 1083 Contents as shown: 1085 'Int32(-2..)' Integer32 (-2..2147483647) 1086 'Int32(0..)' Integer32 (0..2147483647) 1087 'Int32(1..)' Integer32 (1..2147483647) 1088 'Int32(m..n)' For all other Integer ranges, the lower 1089 and upper bound of the range is 1090 indicated. 1091 'UTF8String63' JmUTF8StringTC (SIZE(0..63)) 1092 'JobString63' JmJobStringTC (SIZE(0..63)) 1093 'Octets63' OCTET STRING (SIZE(0..63)) 1094 'Octets(m..n)' For all other OCTET STRING ranges, the 1095 exact range is indicated. 1097 3.3.4 Single-Value (Row) Versus Multi-Value (MULTI-ROW) Attributes 1099 Most attributes SHALL have only one row per job. However, a few 1100 attributes can have multiple values per job or even per document, where 1101 each value is a separate row in the jmAttributeTable. Unless indicated 1102 with 'MULTI-ROW:' in the JmAttributeTypeTC description, an agent SHALL 1103 ensure that each attribute occurs only once in the jmAttributeTable for 1104 a job. Most of the 'MULTI-ROW' attributes do not allow duplicate 1105 values, i.e., the agent SHALL ensure that each value occurs only once 1106 for a job. Only if the specification of the 'MULTI-ROW' attribute also 1107 says "There is no restriction on the same xxx occurring in multiple 1108 rows" can the agent allow duplicate values to occur for the job. 1110 NOTE - Duplicates are allowed for 'extensive' 'MULTI-ROW' attributes, 1111 such as fileName(34) or documentName(35) which are specified to be 1112 'per-document' attributes, but are not allowed for 'intensive' 'MULTI- 1113 ROW' attributes, such as mediumConsumed(171) and documentFormat(38) 1114 which are specified to be 'per-job' attributes. 1116 3.3.5 Requested Objects and Attributes 1118 A number of objects and attributes record requirements for the job. 1119 Such object and attribute names end with the word 'Requested'. In the 1120 interests of brevity, the phrase 'requested' SHALL mean: (1) requested 1121 by the client (or intervening server) in the job submission protocol 1122 and MAY also mean (2) embedded in the submitted document data, and/or 1123 (3) defaulted by the recipient device or server with the same semantics 1124 as if the requester had supplied, depending on implementation. Also if 1125 a value is supplied by the job submission client, and the server/device 1126 determines a better value, through processing or other means, the agent 1127 MAY return that better value for such object and attribute. 1129 3.3.6 Consumption Attributes 1131 A number of objects and attributes record consumption. Such attribute 1132 names end with the word 'Completed' or 'Consumed'. If the job has not 1133 yet consumed what that resource is metering, the agent either: (1) 1134 SHALL return the value 0 or (2) SHALL not add this attribute to the 1135 jmAttributeTable until the consumption begins. In the interests of 1136 brevity, the semantics for 0 is specified once here and is not repeated 1137 for each consumption attribute specification and a DEFVAL of 0 is 1138 indicated. 1140 3.3.7 Index Value Attributes 1142 A number of attributes are indexes in other tables. Such attribute 1143 names end with the word 'Index'. If the agent has not (yet) assigned 1144 an index value for a particular index attribute for a job, the agent 1145 SHALL either: (1) return the value 0 or (2) not add this attribute to 1146 the jmAttributeTable until the index value is assigned. In the 1147 interests of brevity, the semantics for 0 is specified once here and is 1148 not repeated for each index attribute specification and a DEFVAL of 0 1149 is indicated. 1151 3.4 Monitoring Job Progress 1153 There are a number of objects and attributes for monitoring the 1154 progress of a job. These objects and attributes count the number of K 1155 octets, impressions, sheets, and pages requested or completed. For 1156 impressions and sheets, "completed" SHALL mean stacked, unless the 1157 implementation is unable to detect when each sheet is stacked, in which 1158 case stacked is approximated when processing of each sheet completes. 1159 There are objects and attributes for the overall job and for the 1160 current copy of the document currently being stacked. For the latter, 1161 the rate at which the various objects and attributes count depends on 1162 the sheet and document collation of the job. 1164 Job Collation included sheet collation and document collation. Sheet 1165 collation is defined to be the ordering of sheets within a document 1166 copy. Document collation is defined to be ordering of document copies 1167 within a multi-document job. There are three types of job collation 1168 (see terminology definitions in Section 2): 1170 1.uncollatedSheets(3) - No collation of the sheets within each 1171 document copy, i.e., each sheet of a document that is to 1172 produce multiple copies is replicated before the next sheet in 1173 the document is processed and stacked. If the device has an 1174 output bin collator, the uncollatedSheets(3) value may actually 1175 produce collated sheets as far as the user is concerned (in the 1176 output bins). However, when the job collation is the 1177 'uncollatedSheets(3)' value, job progress is indistinguishable 1178 to a monitoring application between a device that has an output 1179 bin collator and one that does not. 1181 2.collatedDocuments(4) - Collation of the sheets within each 1182 document copy is performed within the printing device by making 1183 multiple passes over either the source or an intermediate 1184 representation of the document. In addition, when there are 1185 multiple documents per job, the i'th copy of each document is 1186 stacked before the j'th copy of each document, i.e., the 1187 documents are collated within each job copy. For example, if a 1188 job is submitted with documents, A and B, the job is made 1189 available to the end user as: A, B, A, B, .. The 1190 'collatedDocuments(4)' value corresponds to the IPP [ipp-model] 1191 'separate-documents-collated-copies' value of the "multiple- 1192 document-handling" attribute. 1194 If jobCopiesRequested or documentCopiesRequested = 1, then 1195 jobCollationType is defined as 4. 1197 3.uncollatedDocuments(5) - Collation of the sheets within each 1198 document copy is performed within the printing device by making 1199 multiple passes over either the source or an intermediate 1200 representation of the document. In addition, when there are 1201 multiple documents per job, all copies of the first document in 1202 the job are stacked before the any copied of the next document 1203 in the job, i.e., the documents are uncollated within the job. 1204 For example, if a job is submitted with documents, A and B, the 1205 job is mad available to the end user as: A, A, ., B, B, .. 1206 The 'uncollatedDocuments(5)' value corresponds to the IPP [ipp- 1207 model] 'separate-documents-uncollated-copies' value of the 1208 "multiple-document-handling" attribute. 1210 Consider the following four variables that are used to monitor the 1211 progress of a job's impressions: 1213 1.jmJobImpressionsCompleted - counts the total number of 1214 impressions stacked for the job 1216 2.impressionsCompletedCurrentCopy - counts the number of 1217 impressions stacked for the current document copy 1219 3.sheetCompletedCopyNumber - identifies the number of the copy 1220 for the current document being stacked where the first copy is 1221 1. 1223 4.sheetCompletedDocumentNumber - identifies the current document 1224 within the job that is being stacked where the first document 1225 in a job is 1. NOTE: this attribute SHOULD NOT be implemented 1226 for implementations that only support one document per job. 1228 For each of the three types of job collation, a job with three copies 1229 of two documents (1, 2), where each document consists of 3 impressions, 1230 the four variables have the following values as each sheet is stacked 1231 for one-sided printing: 1233 Job Collation Type = uncollatedSheets(3) 1235 jmJobImpressions Impressions sheetCompleted sheetCompleted 1236 Completed CompletedCurrent CopyNumber DocumentNumber 1237 Copy 1239 0 0 0 0 1240 1 1 1 1 1241 2 1 2 1 1242 3 1 3 1 1243 4 2 1 1 1244 5 2 2 1 1245 6 2 3 1 1246 7 3 1 1 1247 8 3 2 1 1248 9 3 3 1 1249 10 1 1 2 1250 11 1 2 2 1251 12 1 3 2 1252 13 2 1 2 1253 14 2 2 2 1254 15 2 3 2 1255 16 3 1 2 1256 17 3 2 2 1257 18 3 3 2 1258 Job Collation Type = collatedDocuments(4) 1260 JmJobImpressions Impressions sheetCompleted sheetCompleted 1261 Completed CompletedCurrent CopyNumber DocumentNumber 1262 Copy 1264 0 0 0 0 1265 1 1 1 1 1266 2 2 1 1 1267 3 3 1 1 1268 4 1 1 2 1269 5 2 1 2 1270 6 3 1 2 1271 7 1 2 1 1272 8 2 2 1 1273 9 3 2 1 1274 10 1 2 2 1275 11 2 2 2 1276 12 3 2 2 1277 13 1 3 1 1278 14 2 3 1 1279 15 3 3 1 1280 16 1 3 2 1281 17 2 3 2 1282 18 3 3 2 1283 Job Collation Type = uncollatedDocuments(5) 1285 jmJobImpressions Impressions sheetCompleted sheetCompleted 1286 Completed CompletedCurrent CopyNumber DocumentNumber 1287 Copy 1289 0 0 0 0 1290 1 1 1 1 1291 2 2 1 1 1292 3 3 1 1 1293 4 1 2 1 1294 5 2 2 1 1295 6 3 2 1 1296 7 1 3 1 1297 8 2 3 1 1298 9 3 3 1 1299 10 1 1 2 1300 11 2 1 2 1301 12 3 1 2 1302 13 1 2 2 1303 14 2 2 2 1304 15 3 2 2 1305 16 1 3 2 1306 17 2 3 2 1307 18 3 3 2 1309 3.5 Job Identification 1311 There are a number of attributes that permit a user, operator or system 1312 administrator to identify jobs of interest, such as jobURI, jobName, 1313 jobOriginatingHost, etc. In addition, there is a jmJobSubmissionID 1314 object that is a text string table index. Being a table index allows a 1315 monitoring application to quickly locate and identify a particular job 1316 of interest that was submitted from a particular client by the user 1317 invoking the monitoring application without having to scan the entire 1318 job table. The Job Monitoring MIB needs to provide for identification 1319 of the job at both sides of the job submission process. The primary 1320 identification point is the client side. The jmJobSubmissionID allows 1321 the monitoring application to identify the job of interest from all the 1322 jobs currently "known" by the server or device. The value of 1323 jmJobSubmissionID can be assigned by either the client's local system 1324 or a downstream server or device. The point of assignment depends on 1325 the job submission protocol in use. 1327 The server/device-side identifier, called the jmJobIndex object, SHALL 1328 be assigned by the SNMP Job Monitoring MIB agent when the server or 1329 device accepts the jobs from submitting clients. The jmJobIndex object 1330 allows the interested party to obtain all objects desired that relate 1331 to a particular job. See Section 3.2, entitled 'The Job Tables and the 1332 Oldest Active and Newest Active Indexes' for the specification of how 1333 the agent SHALL assign the jmJobIndex values. 1335 The MIB provides a mapping table that maps each jmJobSubmissionID value 1336 to a corresponding jmJobIndex value generated by the agent, so that an 1337 application can determine the correct value for the jmJobIndex value 1338 for the job of interest in a single Get operation, given the Job 1339 Submission ID. See the jmJobIDGroup. 1341 In some configurations there may be more than one application program 1342 that monitors the same job when the job passes from one network entity 1343 to another when it is submitted. See configuration 3. When there are 1344 multiple job submission IDs, each entity MAY supply an appropriate 1345 jmJobSubmissionID value. In this case there would be a separate entry 1346 in the jmJobSubmissionID table, one for each jmJobSubmissionID. All 1347 entries would map to the same jmJobIndex that contains the job data. 1348 When the job is deleted, it is up to the agent to remove all entries 1349 that point to the job from the jmJobSubmissionID table as well. 1351 The jobName attribute provides a name that the user supplies as a job 1352 attribute with the job. The jobName attribute is not necessarily 1353 unique, even for one user, let alone across users. 1355 3.6 Internationalization Considerations 1357 This section describes the internationalization considerations included 1358 in this MIB. 1360 3.6.1 Text generated by the server or device 1362 There are a few objects and attributes generated by the server or 1363 device that SHALL be represented using the Universal Multiple-Octet 1364 Coded Character Set (UCS) [ISO-10646]. These objects and attributes 1365 are always supplied (if implemented) by the agent, not by the job 1366 submitting client: 1367 1. jmGeneralJobSetName object 1368 2. processingMessage(6) attribute 1369 3. physicalDevice(32) (name value) attribute 1371 The character encoding scheme for representing these objects and 1372 attributes SHALL be UTF-8 as recommended by RFC 2130 [RFC 2130] and the 1373 "IETF Policy on Character Sets and Language" [char-set policy]. The 1374 'JmUTF8StringTC' textual convention is used to indicate UTF-8 text 1375 strings. 1377 NOTE - For strings in 7-bit US-ASCII, there is no impact since the UTF- 1378 8 representation of 7-bit ASCII is identical to the US-ASCII [US-ASCII] 1379 encoding. 1381 The text contained in the processingMessage(6) attribute is generated 1382 by the server/device. The natural language for the 1383 processingMessage(6) attribute is identified by the 1384 processingMessageNaturalLangTag(7) attribute. The 1385 processingMessageNaturalLangTag(7) attribute uses the 1386 JmNaturalLanguageTagTC textual convention which SHALL conform to the 1387 language tag mechanism specified in RFC 1766 [RFC-1766]. The 1388 JmNaturalLanguageTagTC value is the same as the IPP [IPP-model] 1389 'naturalLanguage' attribute syntax. RFC 1766 specifies that a US-ASCII 1390 string consisting of the natural language followed by an optional 1391 country field. Both fields use the same two-character codes from ISO 1392 639 [ISO-639] and ISO 3166 [ISO-3166], respectively, that are used in 1393 the Printer MIB for identifying language and country. 1395 Examples of the values of the processingMessageNaturalLangTag(7) 1396 attribute include: 1397 1. 'en' for English 1398 2. 'en-us' for US English 1399 3. 'fr' for French 1400 4. 'de' for German 1402 3.6.2 Text supplied by the job submitter 1404 All of the objects and attributes represented by the 'JmJobStringTC' 1405 textual-convention are either (1) supplied in the job submission 1406 protocol by the client that submits the job to the server or device or 1407 (2) are defaulted by the server or device if the job submitting client 1408 does not supply values. The agent SHALL represent these objects and 1409 attributes in the MIB either (1) in the coded character set as they 1410 were submitted or (2) MAY convert the coded character set to another 1411 coded character set or encoding scheme. In any case, the resulting 1412 coded character set representation SHOULD be UTF-8 [UTF-8], but SHALL 1413 be one in which the code positions from 0 to 31 SHALL not be used, 32 1414 to 127 SHALL be US-ASCII [US-ASCII], 127 SHALL be unused, and the 1415 remaining code positions 128 to 255 SHALL represent single-byte or 1416 multi-byte graphic characters structured according to ISO 2022 [ISO 1417 2022] or SHALL be unused. 1419 The coded character set SHALL be one of the ones registered with IANA 1420 [IANA] and SHALL be identified by the jobCodedCharSet attribute in the 1421 jmJobAttributeTable for the job. If the agent does not know what coded 1422 character set was used by the job submitting client, the agent SHALL 1423 either (1) return the 'unknown(2)' value for the jobCodedCharSet 1424 attribute or (2) not return the jobCodedCharSet attribute for the job. 1426 Examples of coded character sets which meet this criteria for use as 1427 the value of the jobCodedCharSet job attribute are: US-ASCII [US- 1428 ASCII], ISO 8859-1 (Latin-1) [ISO 8859-1], any ISO 8859-n, HP Roman8, 1429 IBM Code Page 850, Windows Default 8-bit set, UTF-8 [UTF-8], US-ASCII 1430 plus JIS X0208-1990 Japanese [JIS X0208], US-ASCII plus GB2312-1980 PRC 1431 Chinese [GB2312]. See the IANA registry of coded character sets [IANA 1432 charsets]. 1434 Examples of coded character sets which do not meet this criteria are: 1435 national 7-bit sets conforming to ISO 646 (except US-ASCII), EBCDIC, 1436 and ISO 10646 (Unicode) [ISO-10646]. In order to represent Unicode 1437 characters, the UTF-8 [UTF-8] encoding scheme SHALL be used which has 1438 been assigned the MIBenum value of '106' by IANA. 1440 The jobCodedCharSet attribute uses the imported 'CodedCharSet' textual- 1441 convention from the Printer MIB [printmib]. 1443 The natural language for attributes represented by the textual- 1444 convention JmJobStringTC SHALL be identified either (1) by the 1445 jobNaturalLanguageTag(9) attribute or SHALL be keywords in US-English 1446 (as in IPP). A monitoring application SHOULD attempt to localize 1447 keywords into the language of the user by means of some lookup 1448 mechanism. If the keyword value is not known to the monitoring 1449 application, the monitoring application SHOULD assume that the value is 1450 in the natural language specified by the job's jobNaturalLanguageTag(9) 1451 attribute and SHOULD present the value to its user as is. The 1452 jobNaturalLanguageTag(9) attribute value SHALL have the same syntax and 1453 semantics as the processingMessageNaturalLangTag(7) attribute, except 1454 that the jobNaturalLanguageTag(9) attribute identifies the natural 1455 language of attributes supplied by the job submitter instead of the 1456 natural language of the processingMessage(6) attribute. See Section 1457 3.6.1. 1459 3.6.3 'DateAndTime' for representing the date and time 1461 This MIB also contains objects that are represented using the 1462 DateAndTime textual convention from SMIv2 [SMIv2-TC]. The job 1463 management application SHALL display such objects in the locale of the 1464 user running the monitoring application. 1466 3.7 IANA and PWG Registration Considerations 1468 This MIB does not require any additional registration schemes for IANA, 1469 but does depend on registration schemes that other Internet standards 1470 track specifications have set up. The names of these IANA registration 1471 assignments under the /in-notes/iana/assignments/ path: 1473 1.printer-language-numbers - used as enums in the documentFormat(38) 1474 attribute 1476 2.media-types - uses as keywords in the documentFormat(38) attribute 1478 3.character-sets - used as enums in the jobCodedCharSet(8) attribute 1480 The Printer Working Group (PWG) will handle registration of additional 1481 enums after approving this standard, according to the procedures 1482 described in this section: 1484 3.7.1 PWG Registration of enums 1486 This specification uses textual conventions to define enumerated values 1487 (enums) and bit values. Enumerations (enums) and bit values are sets 1488 of symbolic values defined for use with one or more objects or 1489 attributes. All enumeration sets and bit value sets are assigned a 1490 symbolic data type name (textual convention). As a convention the 1491 symbolic name ends in "TC" for textual convention. These enumerations 1492 are defined at the beginning of the MIB module specification. 1494 The PWG has defined several type of enumerations for use in the Job 1495 Monitoring MIB and the Printer MIB[print-mib]. These types differ in 1496 the method employed to control the addition of new enumerations. 1497 Throughout this document, references to "type n enum", where n can be 1498 1, 2 or 3 can be found in the various tables. The definitions of these 1499 types of enumerations are: 1501 3.7.1.1 Type 1 enumerations 1503 Type 1 enumeration: All the values are defined in the Job Monitoring 1504 MIB specification (RFC for the Job Monitoring MIB). Additional 1505 enumerated values require a new RFC. 1507 There are no type 1 enums in the current draft. 1509 3.7.1.2 Type 2 enumerations 1511 Type 2 enumeration: An initial set of values are defined in the Job 1512 Monitoring MIB specification. Additional enumerated values are 1513 registered with the PWG. 1515 The following type 2 enums are contained in the current draft : 1516 1. JmUTF8StringTC 1517 2. JmJobStringTC 1518 3. JmNaturalLanguageTagTC 1519 4. JmTimeStampTC 1520 5. JmFinishingTC [same enum values as IPP "finishing" attribute] 1521 6. JmPrintQualityTC [same enum values as IPP "print-quality" 1522 attribute] 1523 7. JmTonerEconomyTC 1524 8. JmMediumTypeTC 1525 9. JmJobSubmissionIDTypeTC 1526 10.JmJobCollationTypeTC 1527 11.JmJobStateTC [same enum values as IPP "job-state" attribute] 1528 12.JmAttributeTypeTC 1530 For those textual conventions that have the same enum values as the 1531 indicated IPP Job attribute SHALL be simultaneously registered by the 1532 PWG for use with IPP [ipp-model] and the Job Monitoring MIB. 1534 3.7.1.3 Type 3 enumeration 1536 Type 3 enumeration: An initial set of values are defined in the Job 1537 Monitoring MIB specification. Additional enumerated values are 1538 registered through the PWG without PWG review. 1540 There are no type 3 enums in the current draft. 1542 3.7.2 PWG Registration of type 2 bit values 1544 This draft contains the following type 2 bit value textual-conventions: 1545 1. JmJobServiceTypesTC 1546 2. JmJobStateReasons1TC 1547 3. JmJobStateReasons2TC 1548 4. JmJobStateReasons3TC 1549 5. JmJobStateReasons4TC 1551 These textual-conventions are defined as bits in an Integer so that 1552 they can be used with SNMPv1 SMI. The jobStateReasonsN (N=1..4) 1553 attributes are defined as bit values using the corresponding 1554 JmJobStateReasonsNTC textual-conventions. 1556 The registration of JmJobServiceTypesTC and JmJobStateReasonsNTC bit 1557 values SHALL follow the procedures for a type 2 enum as specified in 1558 Section 3.7.1.2. 1560 3.7.3 PWG Registration of Job Submission Id Formats 1562 In addition to enums and bit values, this specification assigns a 1563 single ASCII digit or letter to various job submission ID formats. See 1564 the JmJobSubmissionIDTypeTC textual-convention and the object. The 1565 registration of JobSubmissionID format numbers SHALL follow the 1566 procedures for a type 2 enum as specified in Section 3.7.1.2. 1568 3.7.4 PWG Registration of MIME types/sub-types for document-formats 1570 The documentFormat(38) attribute has MIME type/sub-type values for 1571 indicating document formats which IANA registers as "media type" names. 1572 The values of the documentFormat(38) attribute are the same as the 1573 corresponding Internet Printing Protocol (IPP) "document-format" Job 1574 attribute values [ipp-model]. 1576 3.8 Security Considerations 1578 3.8.1 Read-Write objects 1580 All objects are read-only, greatly simplifying the security 1581 considerations. If another MIB augments this MIB, that MIB might 1582 accept SNMP Write operations to objects in that MIB whose effect is to 1583 modify the values of read-only objects in this MIB. However, that MIB 1584 SHALL have to support the required access control in order to achieve 1585 security, not this MIB. 1587 3.8.2 Read-Only Objects In Other User's Jobs 1589 The security policy of some sites MAY be that unprivileged users can 1590 only get the objects from jobs that they submitted, plus a few minimal 1591 objects from other jobs, such as the jmJobKOctetsPerCopyRequested and 1592 jmJobKOctetsProcessed objects, so that a user can tell how busy a 1593 printer is. Other sites MAY allow all unprivileged users to see all 1594 objects of all jobs. This MIB does not require, nor does it specify 1595 how, such restrictions would be implemented. A monitoring application 1596 SHOULD enforce the site security policy with respect to returning 1597 information to an unprivileged end user that is using the monitoring 1598 application to monitor jobs that do not belong to that user, i.e., the 1599 jmJobOwner object in the jmJobTable does not match the user's user 1600 name. 1602 An operator is a privileged user that would be able to see all objects 1603 of all jobs, independent of the policy for unprivileged users. 1605 3.9 Notifications 1607 This MIB does not specify any notifications. For simplicity, 1608 management applications are expected to poll for status. The 1609 jmGeneralJobPersistence and jmGeneralAttributePersistence objects 1610 assist an application to determine the polling rate. The resulting 1611 network traffic is not expected to be significant. 1613 4. MIB specification 1615 The following pages constitute the actual Job Monitoring MIB. 1617 Job-Monitoring-MIB DEFINITIONS ::= BEGIN 1619 IMPORTS 1620 MODULE-IDENTITY, OBJECT-TYPE, enterprises, 1621 Integer32 FROM SNMPv2-SMI 1622 TEXTUAL-CONVENTION FROM SNMPv2-TC 1623 MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; 1624 -- The following textual-conventions are needed to implement 1625 -- certain attributes, but are not needed to compile this MIB. 1626 -- They are provided here for convenience: 1627 -- hrDeviceIndex FROM HOST-RESOURCES-MIB 1628 -- DateAndTime FROM SNMPv2-TC 1629 -- PrtInterpreterLangFamilyTC, 1630 -- CodedCharSet FROM Printer-MIB 1632 -- Use the enterprises arc assigned to the PWG which is pwg(2699). 1633 -- Group all PWG mibs under mibs(1). 1635 jobmonMIB MODULE-IDENTITY 1636 LAST-UPDATED "9802030000Z" 1637 ORGANIZATION "Printer Working Group (PWG)" 1638 CONTACT-INFO 1639 "Tom Hastings 1640 Postal: Xerox Corp. 1641 Mail stop ESAE-231 1642 701 S. Aviation Blvd. 1643 El Segundo, CA 90245 1645 Tel: (301)333-6413 1646 Fax: (301)333-5514 1647 E-mail: hastings@cp10.es.xerox.com 1649 Send questions and comments to the Printer Working Group (PWG) 1650 using the Job Monitoring Project (JMP) Mailing List: 1651 jmp@pwg.org 1653 For further information, including how to subscribe to the 1654 jmp mailing list, access the PWG web page under 'JMP': 1656 http://www.pwg.org/ 1658 Implementers of this specification are encouraged to join the 1659 jmp mailing list in order to participate in discussions on any 1660 clarifications needed and registration proposals being reviewed 1661 in order to achieve consensus." 1662 DESCRIPTION 1663 "The MIB module for monitoring job in servers, printers, and 1664 other devices. 1666 Version: 1.0" 1667 ::= { enterprises pwg(2699) mibs(1) jobmonMIB(1) } 1669 -- Textual conventions for this MIB module 1671 JmUTF8StringTC ::= TEXTUAL-CONVENTION 1672 DISPLAY-HINT "255a" 1673 STATUS current 1674 DESCRIPTION 1675 "To facilitate internationalization, this TC represents 1676 information taken from the ISO/IEC IS 10646-1 character set, 1677 encoded as an octet string using the UTF-8 character encoding 1678 scheme." 1679 REFERENCE 1680 "See section 3.6.1, entitled: 'Text generated by the server or 1681 device'." 1682 SYNTAX OCTET STRING (SIZE (0..63)) 1684 JmJobStringTC ::= TEXTUAL-CONVENTION 1685 STATUS current 1686 DESCRIPTION 1687 "To facilitate internationalization, this TC represents 1688 information using any coded character set registered by IANA as 1689 specified in section 3.7. While it is recommended that the 1690 coded character set be UTF-8 [UTF-8], the actual coded 1691 character set SHALL be indicated by the value of the 1692 jobCodedCharSet(8) attribute for the job." 1693 REFERENCE 1694 "See section 3.6.2, entitled: 'Text supplied by the job 1695 submitter'." 1696 SYNTAX OCTET STRING (SIZE (0..63)) 1698 JmNaturalLanguageTagTC ::= TEXTUAL-CONVENTION 1699 STATUS current 1700 DESCRIPTION 1701 "An IETF RFC 1766-compliant 'language tag', with zero or more 1702 sub-tags that identify a natural language. While RFC 1766 1703 specifies that the US-ASCII values are case-insensitive, this 1704 MIB specification requires that all characters SHALL be lower 1705 case in order to simplify comparing by management 1706 applications." 1707 REFERENCE 1708 "See section 3.6.1, entitled: 'Text generated by the server or 1709 device' and section 3.6.2, entitled: 'Text supplied by the job 1710 submitter'." 1711 SYNTAX OCTET STRING (SIZE (0..63)) 1713 JmTimeStampTC ::= TEXTUAL-CONVENTION 1714 STATUS current 1715 DESCRIPTION 1716 "The simple time at which an event took place. The units SHALL 1717 be in seconds since the system was booted. 1719 NOTE - JmTimeStampTC is defined in units of seconds, rather 1720 than 100ths of seconds, so as to be simpler for agents to 1721 implement (even if they have to implement the 100ths of a 1722 second to comply with implementing sysUpTime in MIB-II[mib- 1723 II].) 1725 NOTE - JmTimeStampTC is defined as an Integer32 so that it can 1726 be used as a value of an attribute, i.e., as a value of the 1727 jmAttributeValueAsInteger object. The TimeStamp textual- 1728 convention defined in SNMPv2-TC [SMIv2-TC] is defined as an 1729 APPLICATION 3 IMPLICIT INTEGER tag, not an Integer32 which is 1730 defined in SNMPv2-SMI [SMIv2-TC] as UNIVERSAL 2 IMPLICIT 1731 INTEGER, so cannot be used in this MIB as one of the values of 1732 jmAttributeValueAsInteger." 1733 SYNTAX INTEGER (0..2147483647) 1735 JmJobSourcePlatformTypeTC ::= TEXTUAL-CONVENTION 1736 STATUS current 1737 DESCRIPTION 1738 "The source platform type that can submit jobs to servers or 1739 devices in any of the 3 configurations." 1740 REFERENCE 1741 "This is a type 2 enumeration. See Section 3.7.1.2. See also 1742 IANA operating-system-names registry." 1743 SYNTAX INTEGER { 1744 other(1), 1745 unknown(2), 1746 sptUNIX(3), -- UNIX 1747 sptOS2(4), -- OS/2 1748 sptPCDOS(5), -- DOS 1749 sptNT(6), -- NT 1750 sptMVS(7), -- MVS 1751 sptVM(8), -- VM 1752 sptOS400(9), -- OS/400 1753 sptVMS(10), -- VMS 1754 sptWindows(11), -- Windows 1755 sptNetWare(12) -- NetWare 1756 } 1758 JmFinishingTC ::= TEXTUAL-CONVENTION 1759 STATUS current 1760 DESCRIPTION 1761 "The type of finishing operation. 1763 These values are the same as the enum values of the IPP 1764 'finishings' attribute. See Section 3.7.1.2. 1766 other(1), 1767 Some other finishing operation besides one of the specified 1768 or registered values. 1770 unknown(2), 1771 The finishing is unknown. 1773 none(3), 1774 Perform no finishing. 1776 staple(4), 1777 Bind the document(s) with one or more staples. The exact 1778 number and placement of the staples is site-defined. 1780 punch(5), 1781 This value indicates that holes are required in the 1782 finished document. The exact number and placement of the 1783 holes is site-defined The punch specification MAY be 1784 satisfied (in a site- and implementation-specific manner) 1785 either by drilling/punching, or by substituting pre-drilled 1786 media. 1788 cover(6), 1789 This value is specified when it is desired to select a non- 1790 printed (or pre-printed) cover for the document. This does 1791 not supplant the specification of a printed cover (on cover 1792 stock medium) by the document itself. 1794 bind(7) 1795 This value indicates that a binding is to be applied to the 1796 document; the type and placement of the binding is product- 1797 specific." 1798 REFERENCE 1799 "This is a type 2 enumeration. See Section 3.7.1.2." 1800 SYNTAX INTEGER { 1801 other(1), 1802 unknown(2), 1803 none(3), 1804 staple(4), 1805 punch(5), 1806 cover(6), 1807 bind(7) 1808 } 1810 JmPrintQualityTC ::= TEXTUAL-CONVENTION 1811 STATUS current 1812 DESCRIPTION 1813 "Print quality settings. 1815 These values are the same as the enum values of the IPP 'print- 1816 quality' attribute. See Section 3.7.1.2." 1817 REFERENCE 1818 "This is a type 2 enumeration. See Section 3.7.1.2." 1819 SYNTAX INTEGER { 1820 other(1), -- Not one of the specified or registered 1821 -- values. 1822 unknown(2), -- The actual value is unknown. 1823 draft(3), -- Lowest quality available on the printer. 1824 normal(4), -- Normal or intermediate quality on the 1825 -- printer. 1826 high(5) -- Highest quality available on the printer. 1827 } 1829 JmPrinterResolutionTC ::= TEXTUAL-CONVENTION 1830 STATUS current 1831 DESCRIPTION 1832 "Printer resolutions. 1834 Nine octets consisting of two 4-octet SIGNED-INTEGERs followed 1835 by a SIGNED-BYTE. The values are the same as those specified 1836 in the Printer MIB [printmib]. The first SIGNED-INTEGER 1837 contains the value of prtMarkerAddressabilityXFeedDir. The 1838 second SIGNED-INTEGER contains the value of 1839 prtMarkerAddressabilityFeedDir. The SIGNED-BYTE contains the 1840 value of prtMarkerAddressabilityUnit. 1842 Note: the latter value is either 3 (tenThousandsOfInches) or 4 1843 (micrometers) and the addressability is in 10,000 units of 1844 measure. Thus the SIGNED-INTEGERs represent integral values in 1845 either dots-per-inch or dots-per-centimeter. 1847 The syntax is the same as the IPP 'printer-resolution' 1848 attribute. See Section 3.7.1.2." 1849 SYNTAX OCTET STRING (SIZE(9)) 1851 JmTonerEconomyTC ::= TEXTUAL-CONVENTION 1852 STATUS current 1853 DESCRIPTION 1854 "Toner economy settings." 1855 REFERENCE 1856 "This is a type 2 enumeration. See Section 3.7.1.2." 1857 SYNTAX INTEGER { 1858 unknown(2), -- unknown. 1859 off(3), -- Off. Normal. Use full toner. 1860 on(4) -- On. Use less toner than normal. 1861 } 1863 JmBooleanTC ::= TEXTUAL-CONVENTION 1864 STATUS current 1865 DESCRIPTION 1866 "Boolean true or false value." 1867 REFERENCE 1868 "This is a type 2 enumeration. See Section 3.7.1.2." 1869 SYNTAX INTEGER { 1870 unknown(2), -- unknown. 1871 false(3), -- FALSE. 1872 true(4) -- TRUE. 1873 } 1875 JmMediumTypeTC ::= TEXTUAL-CONVENTION 1876 STATUS current 1877 DESCRIPTION 1878 "Identifies the type of medium. 1880 other(1), 1881 The type is neither one of the values listed in this 1882 specification nor a registered value. 1884 unknown(2), 1885 The type is not known. 1887 stationery(3), 1888 Separately cut sheets of an opaque material. 1890 transparency(4), 1891 Separately cut sheets of a transparent material. 1893 envelope(5), 1894 Envelopes that can be used for conventional mailing 1895 purposes. 1897 envelopePlain(6), 1898 Envelopes that are not preprinted and have no windows. 1900 envelopeWindow(7), 1901 Envelopes that have windows for addressing purposes. 1903 continuousLong(8), 1904 Continuously connected sheets of an opaque material 1905 connected along the long edge. 1907 continuousShort(9), 1908 Continuously connected sheets of an opaque material 1909 connected along the short edge. 1911 tabStock(10), 1912 Media with tabs. 1914 multiPartForm(11), 1915 Form medium composed of multiple layers not pre-attached to 1916 one another; each sheet MAY be drawn separately from an 1917 input source. 1919 labels(12), 1920 Label-stock. 1922 multiLayer(13) 1923 Form medium composed of multiple layers which are pre- 1924 attached to one another, e.g. for use with impact 1925 printers." 1926 REFERENCE 1927 "This is a type 2 enumeration. See Section 3.7.1.2. These 1928 enum values correspond to the keyword name strings of the 1929 prtInputMediaType object in the Printer MIB [print-mib]. There 1930 is no printer description attribute in IPP/1.0 that represents 1931 these values." 1932 SYNTAX INTEGER { 1933 other(1), 1934 unknown(2), 1935 stationery(3), 1936 transparency(4), 1937 envelope(5), 1938 envelopePlain(6), 1939 envelopeWindow(7), 1940 continuousLong(8), 1941 continuousShort(9), 1942 tabStock(10), 1943 multiPartForm(11), 1944 labels(12), 1945 multiLayer(13) 1946 } 1948 JmJobCollationTypeTC ::= TEXTUAL-CONVENTION 1949 STATUS current 1950 DESCRIPTION 1951 "This value is the type of job collation. Implementations that 1952 don't support multiple documents or don't support multiple 1953 copies SHALL NOT support the uncollatedDocuments(5) value." 1954 REFERENCE 1955 "This is a type 2 enumeration. See Section 3.7.1.2. See also 1956 Section 3.4, entitled 'Monitoring Job Progress'." 1957 SYNTAX INTEGER { 1958 other(1), 1959 unknown(2), 1960 uncollatedSheets(3), -- sheets within each document copy 1961 -- are not collated: 1 1 ..., 2 2 ..., 1962 collatedDocuments(4), -- internal collated sheets, 1963 -- documents: A, B, A, B, ... 1964 uncollatedDocuments(5) -- internal collated sheets, 1965 -- documents: A, A, ..., B, B, ... 1966 } 1968 JmJobSubmissionIDTypeTC ::= TEXTUAL-CONVENTION 1969 STATUS current 1970 DESCRIPTION 1971 "Identifies the format type of a job submission ID. 1973 Each job submission ID is a fixed-length, 48-octet printable 1974 US-ASCII [US-ASCII] coded character string containing no 1975 control characters, consisting of the following fields: 1977 octet 1: The format letter identifying the format. The US- 1978 ASCII characters '0-9', 'A-Z', and 'a-z' are assigned in 1979 order giving 62 possible formats. 1980 octets 2-40: A 39-character, US-ASCII trailing SPACE filled 1981 field specified by the format letter, if the data is less 1982 than 39 ASCII characters. 1983 octets 41-48: A sequential or random US-ASCII number to make 1984 the ID quasi-unique. 1986 If the client does not supply a job submission ID in the job 1987 submission protocol, then the agent SHALL assign a job 1988 submission ID using any of the standard formats that are 1989 reserved for the agent. Clients SHALL not use formats that are 1990 reserved for agents and agents SHALL NOT use formats that are 1991 reserved for clients, in order to reduce conflicts in ID 1992 generation. See the description for which formats are reserved 1993 for clients or for agents. 1995 Registration of additional formats may be done following the 1996 procedures described in Section 3.7.3. 1998 The format values defined at the time of completion of this 1999 specification are: 2001 Format 2002 Letter Description 2003 ------ ------------ 2004 '0' Job Owner generated by the server/device 2005 octets 2-40: The last 39 bytes of the jmJobOwner object. 2006 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2007 assigned by the agent. 2008 This format is reserved for agents. 2010 NOTE - Clients wishing to use a job submission ID that 2011 incorporates the job owner, SHALL use format '8', not 2012 format '0'. 2014 '1' Job Name 2015 octets 2-40: The last 39 bytes of the jobName attribute. 2016 octets 41-48: The US-ASCII 8-decimal-digit random number 2017 assigned by the client. 2018 This format is reserved for clients. 2020 '2' Client MAC address 2021 octets 2-40: The client MAC address: in hexadecimal with each 2022 nibble of the 6 octet address being '0'-'9' or 'A' - 'F' 2023 (uppercase only). Most significant octet first. 2024 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2025 assigned by the client. 2026 This format is reserved for clients. 2028 '3' Client URL 2029 octets 2-40: The last 39 bytes of the client URL [URI-spec]. 2030 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2031 assigned by the client. 2032 This format is reserved for clients. 2034 '4' Job URI 2035 octets 2-40: The last 39 bytes of the URI [URI-spec] assigned 2036 by the server or device to the job when the job was 2037 submitted for processing. 2038 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2039 assigned by the agent. 2040 This format is reserved for agents. 2042 '5' POSIX User Number 2043 octets 2-40: The last 39 bytes of a user number, such as POSIX 2044 user number. 2045 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2046 assigned by the client. 2047 This format is reserved for clients. 2049 '6' User Account Number 2050 octets 2-40: The last 39 bytes of the user account number. 2051 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2052 assigned by the client. 2053 This format is reserved for clients. 2055 '7' DTMF Incoming FAX routing number 2056 octets 2-40: The last 39 bytes of the DTMF incoming FAX 2057 routing number. 2058 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2059 assigned by the client. 2060 This format is reserved for clients. 2062 '8' Job Owner supplied by the client 2063 octets 2-40: The last 39 bytes of the job owner name (that the 2064 agent returns in the jmJobOwner object). 2065 octets 41-48: The US-ASCII 8-decimal-digit sequential number 2066 assigned by the client. 2067 This format is reserved for clients. See format '0' which is 2068 reserved for agents. 2070 '9' Host Name 2071 octets 2-40: The last 39 bytes of the host name with trailing 2072 SPACES that submitted the job to this server/device using a 2073 protocol, such as LPD [RFC-1179] which includes the host 2074 name in the job submission protocol. 2075 octets 41-48: The US-ASCII 8-decimal-digit leading zero 2076 representation of the job id generated by the submitting 2077 server (configuration 3) or the client (configuration 1 and 2078 2), such as in the LPD protocol. 2079 This format is reserved for clients. 2081 'A' AppleTalk Protocol 2082 octets 2-40: Contains the AppleTalk printer name, with the 2083 first character of the name in octet 2. AppleTalk printer 2084 names are a maximum of 31 characters. Any unused portion 2085 of this field shall be filled with spaces. 2086 octets 41-48: '00000XXX', where 'XXX' is the 3-digit US-ASCII 2087 decimal representation of the Connection Id. 2088 This format is reserved for agents. 2090 'B' NetWare PServer 2091 octets 2-40: Contains the Directory Path Name as recorded by 2092 the Novell File Server in the queue directory. If the 2093 string is less than 40 octets, the left-most character in 2094 the string shall appear in octet position 2. Otherwise, 2095 only the last 39 bytes shall be included. Any unused 2096 portion of this field shall be filled with spaces. 2097 octets 41-48: '000XXXXX' The US-ASCII representation of the 2098 Job Number as per the NetWare File Server Queue Management 2099 Services. 2100 This format is reserved for agents. 2102 'C' Server Message Block protocol (SMB) 2103 octets 2-40: Contains a decimal (US-ASCII coded) 2104 representation of the 16 bit SMB Tree Id field, which 2105 uniquely identifies the connection that submitted the job 2106 to the printer. The most significant digit of the numeric 2107 string shall be placed in octet position 2. All unused 2108 portions of this field shall be filled with spaces. The 2109 SMB Tree Id has a maximum value of 65,535. 2110 octets 41-48: The US-ASCII 8-decimal-digit leading zero 2111 representation of the File Handle returned from the device 2112 to the client in response to a Create Print File command. 2113 This format is reserved for agents. 2115 'D' Transport Independent Printer/System Interface (TIP/SI) 2116 octets 2-40: Contains the Job Name from the Job Control-Start 2117 Job (JC-SJ) command. If the Job Name portion is less than 2118 40 octets, the left-most character in the string shall 2119 appear in octet position 2. Any unused portion of this 2120 field shall be filled with spaces. Otherwise, only the 2121 last 39 bytes shall be included. 2122 octets 41-48: The US-ASCII 8-decimal-digit leading zero 2123 representation of the jmJobIndex assigned by the agent. 2124 This format is reserved for agents, since the agent supplies 2125 octets 41-48, though the client supplies the job name. See 2126 format '1' reserved to clients to submit job name ids in 2127 which they supply octets 41-48. 2129 'E' IPDS on the MVS or VSE platform 2131 octets 2-40: Contains bytes 2-27 of the XOH Define Group 2132 Boundary Group ID triplet. Octet position 2 MUST carry the 2133 value x.01.. Bytes 28-40 MUST be filled with spaces. 2134 octets 41-48: The US-ASCII 8-decimal-digit leading zero 2135 representation of the jmJobIndex assigned by the agent. 2136 This format is reserved for agents, since the agent supplies 2137 octets 41-48, though the client supplies the job name. 2139 'F' IPDS on the VM platform 2140 octets 2-40: Contains bytes 2-31 of the XOH Define Group 2141 Boundary Group ID triplet. Octet position 2 MUST carry the 2142 value x.02.. Bytes 32-40 MUST be filled with spaces. 2143 octets 41-48: The US-ASCII 8-decimal-digit leading zero 2144 representation of the jmJobIndex assigned by the agent. 2145 This format is reserved for agents, since the agent supplies 2146 octets 41-48, though the client supplies the file name. 2148 'G' IPDS on the OS/400 platform 2149 octets 2-40: Contains bytes 2-36 of the XOH Define Group 2150 Boundary Group ID triplet. Octet position 2 MUST carry the 2151 value x.03.. Bytes 37-40 MUST be filled with spaces. 2152 octets 41-48: The US-ASCII 8-decimal-digit leading zero 2153 representation of the jmJobIndex assigned by the agent. 2154 This format is reserved for agents, since the agent supplies 2155 octets 41-48, though the client supplies the job name. 2157 NOTE - the job submission id is only intended to be unique 2158 between a limited set of clients for a limited duration of 2159 time, namely, for the life time of the job in the context of 2160 the server or device that is processing the job. Some of the 2161 formats include something that is unique per client and a 2162 random number so that the same job submitted by the same client 2163 will have a different job submission id. For other formats, 2164 where part of the id is guaranteed to be unique for each 2165 client, such as the MAC address or URL, a sequential number 2166 SHOULD suffice for each client (and may be easier for each 2167 client to manage). Therefore, the length of the job submission 2168 id has been selected to reduce the probability of collision to 2169 an extremely low number, but is not intended to be an absolute 2170 guarantee of uniqueness. None-the-less, collisions are 2171 remotely possible, but without bad consequences, since this MIB 2172 is intended to be used only for monitoring jobs, not for 2173 controlling and managing them." 2174 REFERENCE 2175 "This is like a type 2 enumeration. See section 3.7.3." 2176 SYNTAX OCTET STRING(SIZE(1)) -- ASCII '0'-'9', 'A'-'Z', 'a'-'z' 2178 JmJobStateTC ::= TEXTUAL-CONVENTION 2179 STATUS current 2180 DESCRIPTION 2181 "The current state of the job (pending, processing, completed, 2182 etc.). 2184 The following figure shows the normal job state transitions: 2186 +----> canceled(7) 2187 / 2188 +---> pending(3) -------> processing(5) ------+------> completed(9) 2189 | ^ ^ \ 2190 --->+ | | +----> aborted(8) 2191 | v v / 2192 +---> pendingHeld(4) processingStopped(6) ---+ 2194 Figure 4 - Normal Job State Transitions 2196 Normally a job progresses from left to right. Other state 2197 transitions are unlikely, but are not forbidden. Not shown are 2198 the transitions to the canceled state from the pending, 2199 pendingHeld, and processingStopped states. 2201 Jobs in the pending, processing, and processingStopped states 2202 are called 'active', while jobs in the pendingHeld, canceled, 2203 aborted, and completed states are called 'inactive'. Jobs 2204 reach one of the three terminal states: completed, canceled, or 2205 aborted, after the jobs have completed all activity, and all 2206 MIB objects and attributes have reached their final values for 2207 the job. 2209 These values are the same as the enum values of the IPP 'job- 2210 state' job attribute. See Section 3.7.1.2. 2212 unknown(2), 2213 The job state is not known, or its state is indeterminate. 2215 pending(3), 2216 The job is a candidate to start processing, but is not yet 2217 processing. 2219 pendingHeld(4), 2220 The job is not a candidate for processing for any number of 2221 reasons but will return to the pending state as soon as the 2222 reasons are no longer present. The job's 2223 jmJobStateReasons1 object and/or jobStateReasonsN (N=2..4) 2224 attributes SHALL indicate why the job is no longer a 2225 candidate for processing. The reasons are represented as 2226 bits in the jmJobStateReasons1 object and/or 2227 jobStateReasonsN (N=2..4) attributes. See the 2228 JmJobStateReasonsNTC (N=1..4) textual convention for the 2229 specification of each reason. 2231 processing(5), 2232 One or more of: 2234 1. the job is using, or is attempting to use, one or more 2235 purely software processes that are analyzing, creating, or 2236 interpreting a PDL, etc., 2238 2. the job is using, or is attempting to use, one or more 2239 hardware devices that are interpreting a PDL, making marks 2240 on a medium, and/or performing finishing, such as stapling, 2241 etc., 2243 OR 2245 3. (configuration 2) the server has made the job ready for 2246 printing, but the output device is not yet printing it, 2247 either because the job hasn't reached the output device or 2248 because the job is queued in the output device or some 2249 other spooler, awaiting the output device to print it. 2251 When the job is in the processing state, the entire job 2252 state includes the detailed status represented in the 2253 device MIB indicated by the hrDeviceIndex value of the 2254 job's physicalDevice attribute, if the agent implements 2255 such a device MIB. 2257 Implementations MAY, though they NEED NOT, include 2258 additional values in the job's jmJobStateReasons1 object to 2259 indicate the progress of the job, such as adding the 2260 jobPrinting value to indicate when the device is actually 2261 making marks on a medium and/or the processingToStopPoint 2262 value to indicate that the server or device is in the 2263 process of canceling or aborting the job. 2265 processingStopped(6), 2266 The job has stopped while processing for any number of 2267 reasons and will return to the processing state as soon as 2268 the reasons are no longer present. 2270 The job's jmJobStateReasons1 object and/or the job's 2271 jobStateReasonsN (N=2..4) attributes MAY indicate why the 2272 job has stopped processing. For example, if the output 2273 device is stopped, the deviceStopped value MAY be included 2274 in the job's jmJobStateReasons1 object. 2276 NOTE - When an output device is stopped, the device usually 2277 indicates its condition in human readable form at the 2278 device. The management application can obtain more 2279 complete device status remotely by querying the appropriate 2280 device MIB using the job's deviceIndex attribute(s), if the 2281 agent implements such a device MIB 2283 canceled(7), 2284 A client has canceled the job and the server or device has 2285 completed canceling the job AND all MIB objects and 2286 attributes have reached their final values for the job. 2287 While the server or device is canceling the job, the job's 2288 jmJobStateReasons1 object SHOULD contain the 2289 processingToStopPoint value and one of the canceledByUser, 2290 canceledByOperator, or canceledAtDevice values. The 2291 canceledByUser, canceledByOperator, or canceledAtDevice 2292 values remain while the job is in the canceled state. 2294 aborted(8), 2295 The job has been aborted by the system, usually while the 2296 job was in the processing or processingStopped state and 2297 the server or device has completed aborting the job AND all 2298 MIB objects and attributes have reached their final values 2299 for the job. While the server or device is aborting the 2300 job, the job's jmJobStateReasons1 object MAY contain the 2301 processingToStopPoint and abortedBySystem values. If 2302 implemented, the abortedBySystem value SHALL remain while 2303 the job is in the aborted state. 2305 completed(9) 2306 The job has completed successfully or with warnings or 2307 errors after processing and all of the media have been 2308 successfully stacked in the appropriate output bin(s) AND 2309 all MIB objects and attributes have reached their final 2310 values for the job. The job's jmJobStateReasons1 object 2311 SHOULD contain one of: completedSuccessfully, 2312 completedWithWarnings, or completedWithErrors values." 2313 REFERENCE 2314 "This is a type 2 enumeration. See Section 3.7.1.2." 2315 SYNTAX INTEGER { 2316 unknown(2), 2317 pending(3), 2318 pendingHeld(4), 2319 processing(5), 2320 processingStopped(6), 2321 canceled(7), 2322 aborted(8), 2323 completed(9) 2324 } 2326 JmAttributeTypeTC ::= TEXTUAL-CONVENTION 2327 STATUS current 2328 DESCRIPTION 2329 "The type of the attribute which identifies the attribute. 2331 In the following definitions of the enums, each description 2332 indicates whether the useful value of the attribute SHALL be 2333 represented using the jmAttributeValueAsInteger or the 2334 jmAttributeValueAsOctets objects by the initial tag: 'INTEGER:' 2335 or 'OCTETS:', respectively. 2337 Some attributes allow the agent implementer a choice of useful 2338 values of either an integer, an octets representation, or both, 2339 depending on implementation. These attributes are indicated 2340 with 'INTEGER:' AND/OR 'OCTETS:' tags. 2342 A very few attributes require both objects at the same time to 2343 represent a pair of useful values (see mediumConsumed(171)). 2344 These attributes are indicated with 'INTEGER:' AND 'OCTETS:' 2345 tags. See the jmAttributeGroup for the descriptions of these 2346 two MANDATORY objects. 2348 NOTE - The enum assignments are grouped logically with values 2349 assigned in groups of 20, so that additional values may be 2350 registered in the future and assigned a value that is part of 2351 their logical grouping. 2353 Values in the range 2**30 to 2**31-1 are reserved for private 2354 or experimental usage. This range corresponds to the same 2355 range reserved in IPP. Implementers are warned that use of 2356 such values may conflict with other implementations. 2357 Implementers are encouraged to request registration of enum 2358 values following the procedures in Section 3.7.1. 2360 NOTE: No attribute name exceeds 31 characters. 2362 The standard attribute types defined at the time of completion 2363 of the specification are:" 2365 -- jmAttributeTypeIndex Datatype 2366 -- -------------------- -------- 2368 -- other(1), Integer32 (-2..2147483647) 2369 -- AND/OR 2370 -- OCTET STRING(SIZE(0..63)) 2371 -- INTEGER: and/or OCTETS: An attribute that is not in the 2372 -- list and/or that has not been approved and registered with 2373 -- the PWG. 2375 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2376 -- + Job State attributes 2377 -- + 2378 -- + The following attributes specify the state of a job. 2379 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2381 -- jobStateReasons2(3), JmJobStateReasons2TC 2382 -- INTEGER: Additional information about the job's current 2383 -- state that augments the jmJobState object. See the 2384 -- description under the JmJobStateReasons1TC textual- 2385 -- convention. 2387 -- jobStateReasons3(4), JmJobStateReasons3TC 2388 -- INTEGER: Additional information about the job's current 2389 -- state that augments the jmJobState object. See the 2390 -- description under JmJobStateReasons1TC textual-convention. 2392 -- jobStateReasons4(5), JmJobStateReasons4TC 2393 -- INTEGER: Additional information about the job's current 2394 -- state that augments the jmJobState object. See the 2395 -- description under JmJobStateReasons1TC textual-convention. 2397 -- processingMessage(6), JmUTF8StringTC (SIZE(0..63)) 2398 -- OCTETS: MULTI-ROW: A coded character set message that is 2399 -- generated by the server or device during the processing of 2400 -- the job as a simple form of processing log to show progress 2401 -- and any problems. The natural language of each value is 2402 -- specified by the corresponding 2403 -- processingMessageNaturalLangTag(7) value. 2405 -- NOTE - This attribute is intended for such conditions as 2406 -- interpreter messages, rather than being the printable form 2407 -- of the jmJobState and jmJobStateReasons1 objects and 2408 -- jobStateReasons2, jobStateReasons3, and jobStateReasons4 2409 -- attributes. In order to produce a localized printable form 2410 -- of these job state objects/attribute, a management 2411 -- application SHOULD produce a message from their enum and 2412 -- bit values. 2414 -- NOTE - There is no job description attribute in IPP/1.0 2415 -- that corresponds to this attribute and this attribute does 2416 -- not correspond to the IPP/1.0 'job-state-message' job 2417 -- description attribute, which is just a printable form of 2418 -- the IPP 'job-state' and 'job-state-reasons' job attributes. 2420 -- There is no restriction for the same message occurring in 2421 -- multiple rows. 2423 -- processingMessageNaturalLangTag(7), OCTET STRING(SIZE(0..63)) 2424 -- OCTETS: MULTI-ROW: The natural language of the 2425 -- corresponding processingMessage(6) attribute value. See 2426 -- section 3.6.1, entitled 'Text generated by the server or 2427 -- device'. 2429 -- If the agent does not know the natural language of the job 2430 -- processing message, the agent SHALL either (1) return a 2431 -- zero length string value for the 2432 -- processingMessageNaturalLangTag(7) attribute or (2) not 2433 -- return the processingMessageNaturalLangTag(7) attribute for 2434 -- the job. 2436 -- There is no restriction for the same tag occurring in 2437 -- multiple rows, since when this attribute is implemented, it 2438 -- SHOULD have a value row for each corresponding 2439 -- processingMessage(6) attribute value row. 2441 -- jobCodedCharSet(8), CodedCharSet 2442 -- INTEGER: The MIBenum identifier of the coded character set 2443 -- that the agent is using to represent coded character set 2444 -- objects and attributes of type 'JmJobStringTC'. These 2445 -- coded character set objects and attributes are either: (1) 2446 -- supplied by the job submitting client or (2) defaulted by 2447 -- the server or device when omitted by the job submitting 2448 -- client. The agent SHALL represent these objects and 2449 -- attributes in the MIB either (1) in the coded character set 2450 -- as they were submitted or (2) MAY convert the coded 2451 -- character set to another coded character set or encoding 2452 -- scheme as identified by the jobCodedCharSet(8) attribute. 2453 -- See section 3.6.2, entitled 'Text supplied by the job 2454 -- submitter'. 2456 -- These MIBenum values are assigned by IANA [IANA-charsets] 2457 -- when the coded character sets are registered. The coded 2458 -- character set SHALL be one of the ones registered with IANA 2459 -- [IANA] and the enum value uses the CodedCharSet textual- 2460 -- convention from the Printer MIB. See the JmJobStringTC 2461 -- textual-convention. 2463 -- If the agent does not know what coded character set was 2464 -- used by the job submitting client, the agent SHALL either 2465 -- (1) return the 'unknown(2)' value for the 2466 -- jobCodedCharSet(8) attribute or (2) not return the 2467 -- jobCodedCharSet(8) attribute for the job. 2469 -- jobNaturalLanguageTag(9), OCTET STRING(SIZE(0..63)) 2470 -- OCTETS: The natural language of the job attributes supplied 2471 -- by the job submitter or defaulted by the server or device 2472 -- for the job, i.e., all objects and attributes represented 2473 -- by the 'JmJobStringTC' textual-convention, such as jobName, 2474 -- mediumRequested, etc. See Section 3.6.2, entitled 'Text 2475 -- supplied by the job submitter'. 2477 -- If the agent does not know what natural language was used 2478 -- by the job submitting client, the agent SHALL either (1) 2479 -- return a zero length string value for the 2480 -- jobNaturalLanguageTag(9) attribute or (2) not return 2481 -- jobNaturalLanguageTag(9) attribute for the job. 2483 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2484 -- + Job Identification attributes 2485 -- + 2486 -- + The following attributes help an end user, a system 2487 -- + operator, or an accounting program identify a job. 2488 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2490 -- jobURI(20), OCTET STRING(SIZE(0..63)) 2491 -- OCTETS: MULTI-ROW: The job's Universal Resource 2492 -- Identifier (URI) [RFC-1738]. See IPP [ipp-model] for 2493 -- example usage. 2495 -- NOTE - The agent may be able to generate this value on each 2496 -- SNMP Get operation from smaller values, rather than having 2497 -- to store the entire URI. 2499 -- If the URI exceeds 63 octets, the agent SHALL use multiple 2500 -- values, with the next 63 octets coming in the second value, 2501 -- etc. 2503 -- NOTE - IPP [ipp-model] has a 1023-octet maximum length for 2504 -- a URI, though the URI standard itself and HTTP/1.1 specify 2505 -- no maximum length. 2507 -- jobAccountName(21), OCTET STRING(SIZE(0..63)) 2508 -- OCTETS: Arbitrary binary information which MAY be coded 2509 -- character set data or encrypted data supplied by the 2510 -- submitting user for use by accounting services to allocate 2511 -- or categorize charges for services provided, such as a 2512 -- customer account name or number. 2514 -- NOTE: This attribute NEED NOT be printable characters. 2516 -- serverAssignedJobName(22), JmJobStringTC (SIZE(0..63)) 2517 -- OCTETS: Configuration 3 only: The human readable string 2518 -- name, number, or ID of the job as assigned by the server 2519 -- that submitted the job to the device that the agent is 2520 -- providing access to with this MIB. 2522 -- NOTE - This attribute is intended for enabling a user to 2523 -- find his/her job that a server submitted to a device when 2524 -- either the client does not support the jmJobSubmissionID or 2525 -- the server does not pass the jmJobSubmissionID through to 2526 -- the device. 2528 -- jobName(23), JmJobStringTC (SIZE(0..63)) 2529 -- OCTETS: The human readable string name of the job as 2530 -- assigned by the submitting user to help the user 2531 -- distinguish between his/her various jobs. This name does 2532 -- not need to be unique. 2534 -- This attribute is intended for enabling a user or the 2535 -- user's application to convey a job name that MAY be printed 2536 -- on a start sheet, returned in a query result, or used in 2537 -- notification or logging messages. 2539 -- In order to assist users to find their jobs for job 2540 -- submission protocols that don't supply a jmJobSubmissionID, 2541 -- the agent SHOULD maintain the jobName attribute for the 2542 -- time specified by the jmGeneralJobPersistence object, 2543 -- rather than the (shorter) jmGeneralAttributePersistence 2544 -- object. 2546 -- If this attribute is not specified when the job is 2547 -- submitted, no job name is assumed, but implementation 2548 -- specific defaults are allowed, such as the value of the 2549 -- documentName attribute of the first document in the job or 2550 -- the fileName attribute of the first document in the job. 2552 -- The jobName attribute is distinguished from the jobComment 2553 -- attribute, in that the jobName attribute is intended to 2554 -- permit the submitting user to distinguish between different 2555 -- jobs that he/she has submitted. The jobComment attribute 2556 -- is intended to be free form additional information that a 2557 -- user might wish to use to communicate with himself/herself, 2558 -- such as a reminder of what to do with the results or to 2559 -- indicate a different set of input parameters were tried in 2560 -- several different job submissions. 2562 -- jobServiceTypes(24), JmJobServiceTypesTC 2563 -- INTEGER: Specifies the type(s) of service to which the job 2564 -- has been submitted (print, fax, scan, etc.). The service 2565 -- type is bit encoded with each job service type so that more 2566 -- general and arbitrary services can be created, such as 2567 -- services with more than one destination type, or ones with 2568 -- only a source or only a destination. For example, a job 2569 -- service might scan, faxOut, and print a single job. In 2570 -- this case, three bits would be set in the jobServiceTypes 2571 -- attribute, corresponding to the hexadecimal values: 0x8 + 2572 -- 0x20 + 0x4, respectively, yielding: 0x2C. 2574 -- Whether this attribute is set from a job attribute supplied 2575 -- by the job submission client or is set by the recipient job 2576 -- submission server or device depends on the job submission 2577 -- protocol. This attribute SHALL be implemented if the 2578 -- server or device has other types in addition to or instead 2579 -- of printing. 2581 -- One of the purposes of this attribute is to permit a 2582 -- requester to filter out jobs that are not of interest. For 2583 -- example, a printer operator may only be interested in jobs 2584 -- that include printing. 2586 -- jobSourceChannelIndex(25), Integer32 (0..2147483647) 2587 -- INTEGER: The index of the row in the associated Printer 2588 -- MIB[print-mib] of the channel which is the source of the 2589 -- print job. 2591 -- jobSourcePlatformType(26), JmJobSourcePlatformTypeTC 2592 -- INTEGER: The source platform type of the immediate 2593 -- upstream submitter that submitted the job to the server 2594 -- (configuration 2) or device (configuration 1 and 3) to 2595 -- which the agent is providing access. For configuration 1, 2596 -- this is the type of the client that submitted the job to 2597 -- the device; for configuration 2, this is the type of the 2598 -- client that submitted the job to the server; and for 2599 -- configuration 3, this is the type of the server that 2600 -- submitted the job to the device. 2602 -- submittingServerName(27), JmJobStringTC (SIZE(0..63)) 2603 -- OCTETS: For configuration 3 only: The administrative name 2604 -- of the server that submitted the job to the device. 2606 -- submittingApplicationName(28), JmJobStringTC (SIZE(0..63)) 2607 -- OCTETS: The name of the client application (not the server 2608 -- in configuration 3) that submitted the job to the server or 2609 -- device. 2611 -- jobOriginatingHost(29), JmJobStringTC (SIZE(0..63)) 2612 -- OCTETS: The name of the client host (not the server host 2613 -- name in configuration 3) that submitted the job to the 2614 -- server or device. 2616 -- deviceNameRequested(30), JmJobStringTC (SIZE(0..63)) 2617 -- OCTETS: The administratively defined coded character set 2618 -- name of the target device requested by the submitting user. 2619 -- For configuration 1, its value corresponds to the Printer 2620 -- MIB[print-mib]: prtGeneralPrinterName object. For 2621 -- configuration 2 and 3, its value is the name of the logical 2622 -- or physical device that the user supplied to indicate to 2623 -- the server on which device(s) they wanted the job to be 2624 -- processed. 2626 -- queueNameRequested(31), JmJobStringTC (SIZE(0..63)) 2627 -- OCTETS: The administratively defined coded character set 2628 -- name of the target queue requested by the submitting user. 2629 -- For configuration 1, its value corresponds to the queue in 2630 -- the device for which the agent is providing access. For 2631 -- configuration 2 and 3, its value is the name of the queue 2632 -- that the user supplied to indicate to the server on which 2633 -- device(s) they wanted the job to be processed. 2635 -- NOTE - typically an implementation SHOULD support either 2636 -- the deviceNameRequested or queueNameRequested attribute, 2637 -- but not both. 2639 -- physicalDevice(32), hrDeviceIndex 2640 -- AND/OR 2641 -- JmUTF8StringTC (SIZE(0..63)) 2642 -- INTEGER: MULTI-ROW: The index of the physical device MIB 2643 -- instance requested/used, such as the Printer MIB[print- 2644 -- mib]. This value is an hrDeviceIndex value. See the Host 2645 -- Resources MIB[hr-mib]. 2647 -- AND/OR 2649 -- OCTETS: MULTI-ROW: The name of the physical device to 2650 -- which the job is assigned. 2652 -- numberOfDocuments(33), Integer32 (-2..2147483647) 2653 -- INTEGER: The number of documents in this job. 2655 -- The agent SHOULD return this attribute if the job has more 2656 -- than one document. 2658 -- fileName(34), JmJobStringTC (SIZE(0..63)) 2659 -- OCTETS: MULTI-ROW: The coded character set file name or 2660 -- URI[URI-spec] of the document. 2662 -- There is no restriction on the same file name occurring in 2663 -- multiple rows. 2665 -- documentName(35), JmJobStringTC (SIZE(0..63)) 2666 -- OCTETS: MULTI-ROW: The coded character set name of the 2667 -- document. 2669 -- There is no restriction on the same document name occurring 2670 -- in multiple rows. 2672 -- jobComment(36), JmJobStringTC (SIZE(0..63)) 2673 -- OCTETS: An arbitrary human-readable coded character text 2674 -- string supplied by the submitting user or the job 2675 -- submitting application program for any purpose. For 2676 -- example, a user might indicate what he/she is going to do 2677 -- with the printed output or the job submitting application 2678 -- program might indicate how the document was produced. 2680 -- The jobComment attribute is not intended to be a name; see 2681 -- the jobName attribute. 2683 -- documentFormatIndex(37), Integer32 (0..2147483647) 2684 -- INTEGER: MULTI-ROW: The index in the prtInterpreterTable 2685 -- in the Printer MIB[print-mib] of the page description 2686 -- language (PDL) or control language interpreter that this 2687 -- job requires/uses. A document or a job MAY use more than 2688 -- one PDL or control language. 2690 -- NOTE - As with all intensive attributes where multiple rows 2691 -- are allowed, there SHALL be only one distinct row for each 2692 -- distinct interpreter; there SHALL be no duplicates. 2694 -- NOTE - This attribute type is intended to be used with an 2695 -- agent that implements the Printer MIB and SHALL not be used 2696 -- if the agent does not implement the Printer MIB. Such an 2697 -- agent SHALL use the documentFormat attribute instead. 2699 -- documentFormat(38), PrtInterpreterLangFamilyTC 2700 -- AND/OR 2701 -- OCTET STRING(SIZE(0..63)) 2702 -- INTEGER: MULTI-ROW: The interpreter language family 2703 -- corresponding to the Printer MIB[print-mib] 2704 -- prtInterpreterLangFamily object, that this job 2705 -- requires/uses. A document or a job MAY use more than one 2706 -- PDL or control language. 2708 -- AND/OR 2710 -- OCTETS: MULTI-ROW: The document format registered as a 2711 -- media type[iana-media-types], i.e., the name of the MIME 2712 -- content-type/subtype. Examples: 'application/postscript', 2713 -- 'application/vnd.hp-PCL', 'application/pdf', 'text/plain' 2714 -- (US-ASCII SHALL be assumed), 'text/plain; charset=iso-8859- 2715 -- 1', and 'application/octet-stream'. The IPP 'document- 2716 -- format' job attribute uses these same values with the same 2717 -- semantics. See the IPP [ipp-model] 'mimeMediaType' 2718 -- attribute syntax and the document-format attribute for 2719 -- further examples and explanation. 2721 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2722 -- + Job Parameter attributes 2723 -- + 2724 -- + The following attributes represent input parameters 2725 -- + supplied by the submitting client in the job submission 2726 -- + protocol. 2727 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2729 -- jobPriority(50), Integer32 (-2..100) 2730 -- INTEGER: The priority for scheduling the job. It is used 2731 -- by servers and devices that employ a priority-based 2732 -- scheduling algorithm. 2734 -- A higher value specifies a higher priority. The value 1 is 2735 -- defined to indicate the lowest possible priority (a job 2736 -- which a priority-based scheduling algorithm SHALL pass over 2737 -- in favor of higher priority jobs). The value 100 is 2738 -- defined to indicate the highest possible priority. 2739 -- Priority is expected to be evenly or 'normally' distributed 2740 -- across this range. The mapping of vendor-defined priority 2741 -- over this range is implementation-specific. -2 indicates 2742 -- unknown. 2744 -- jobProcessAfterDateAndTime(51), DateAndTime (SNMPv2-TC) 2745 -- OCTETS: The calendar date and time of day after which the 2746 -- job SHALL become a candidate to be scheduled for 2747 -- processing. If the value of this attribute is in the 2748 -- future, the server SHALL set the value of the job's 2749 -- jmJobState object to pendingHeld and add the 2750 -- jobProcessAfterSpecified bit value to the job's 2751 -- jmJobStateReasons1 object. When the specified date and 2752 -- time arrives, the server SHALL remove the 2753 -- jobProcessAfterSpecified bit value from the job's 2754 -- jmJobStateReasons1 object and, if no other reasons remain, 2755 -- SHALL change the job's jmJobState object to pending. 2757 -- jobHold(52), JmBooleanTC 2758 -- INTEGER: If the value is 'true(4)', a client has 2759 -- explicitly specified that the job is to be held until 2760 -- explicitly released. Until the job is explicitly released 2761 -- by a client, the job SHALL be in the pendingHeld state with 2762 -- the jobHoldSpecified value in the jmJobStateReasons1 2763 -- attribute. 2765 -- jobHoldUntil(53), JmJobStringTC (SIZE(0..63)) 2766 -- OCTETS: The named time period during which the job SHALL 2767 -- become a candidate for processing, such as 'evening', 2768 -- 'night', 'weekend', 'second-shift', 'third-shift', etc., as 2769 -- defined by the system administrator. See IPP [ipp-model] 2770 -- for the standard keyword values. Until that time period 2771 -- arrives, the job SHALL be in the pendingHeld state with the 2772 -- jobHoldUntilSpecified value in the jmJobStateReasons1 2773 -- object. The value 'no-hold' SHALL indicate explicitly that 2774 -- no time period has been specified; the absence of this 2775 -- attribute SHALL indicate implicitly that no time period has 2776 -- been specified. 2778 -- outputBin(54), Integer32 (0..2147483647) 2779 -- AND/OR 2780 -- JmJobStringTC (SIZE(0..63)) 2781 -- INTEGER: MULTI-ROW: The output subunit index in the 2782 -- Printer MIB[print-mib] 2784 -- AND/OR 2786 -- OCTETS: MULTI-ROW: the name or number (represented as 2787 -- ASCII digits) of the output bin to which all or part of the 2788 -- job is placed in. 2790 -- sides(55), Integer32 (-2..2) 2791 -- INTEGER: MULTI-ROW: The number of sides, '1' or '2', that 2792 -- any document in this job requires/used. 2794 -- finishing(56), JmFinishingTC 2795 -- INTEGER: MULTI-ROW: Type of finishing that any document 2796 -- in this job requires/used. 2798 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2799 -- + Image Quality attributes (requested and consumed) 2800 -- + 2801 -- + For devices that can vary the image quality. 2802 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2804 -- printQualityRequested(70), JmPrintQualityTC 2805 -- INTEGER: MULTI-ROW: The print quality selection requested 2806 -- for a document in the job for printers that allow quality 2807 -- differentiation. 2809 -- printQualityUsed(71), JmPrintQualityTC 2810 -- INTEGER: MULTI-ROW: The print quality selection actually 2811 -- used by a document in the job for printers that allow 2812 -- quality differentiation. 2814 -- printerResolutionRequested(72), JmPrinterResolutionTC 2815 -- OCTETS: MULTI-ROW: The printer resolution requested for a 2816 -- document in the job for printers that support resolution 2817 -- selection. 2819 -- printerResolutionUsed(73), JmPrinterResolutionTC 2820 -- OCTETS: MULTI-ROW: The printer resolution actually used 2821 -- by a document in the job for printers that support 2822 -- resolution selection. 2824 -- tonerEcomonyRequested(74), JmTonerEconomyTC 2825 -- INTEGER: MULTI-ROW: The toner economy selection requested 2826 -- for documents in the job for printers that allow toner 2827 -- economy differentiation. 2829 -- tonerEcomonyUsed(75), JmTonerEconomyTC 2830 -- INTEGER: MULTI-ROW: The toner economy selection actually 2831 -- used by documents in the job for printers that allow toner 2832 -- economy differentiation. 2834 -- tonerDensityRequested(76), Integer32 (-2..100) 2835 -- INTEGER: MULTI-ROW: The toner density requested for a 2836 -- document in this job for devices that can vary toner 2837 -- density levels. Level 1 is the lowest density and level 2838 -- 100 is the highest density level. Devices with a smaller 2839 -- range, SHALL map the 1-100 range evenly onto the 2840 -- implemented range. 2842 -- tonerDensityUsed(77), Integer32 (-2..100) 2843 -- INTEGER: MULTI-ROW: The toner density used by documents 2844 -- in this job for devices that can vary toner density levels. 2845 -- Level 1 is the lowest density and level 100 is the highest 2846 -- density level. Devices with a smaller range, SHALL map the 2847 -- 1-100 range evenly onto the implemented range. 2849 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2850 -- + Job Progress attributes (requested and consumed) 2851 -- + 2852 -- + Pairs of these attributes can be used by monitoring 2853 -- + applications to show an indication of relative progress 2854 -- + to users. See section 3.4, entitled 2855 -- + 'Monitoring Job Progress'. 2856 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2858 -- jobCopiesRequested(90), Integer32 (-2..2147483647) 2859 -- INTEGER: The number of copies of the entire job that are 2860 -- to be produced. 2862 -- jobCopiesCompleted(91), Integer32 (-2..2147483647) 2863 -- INTEGER: The number of copies of the entire job that have 2864 -- been completed so far. 2866 -- documentCopiesRequested(92), Integer32 (-2..2147483647) 2867 -- INTEGER: The total count of the number of document copies 2868 -- requested for the job as a whole. If there are documents 2869 -- A, B, and C, and document B is specified to produce 4 2870 -- copies, the number of document copies requested is 6 for 2871 -- the job. 2873 -- This attribute SHALL be used only when a job has multiple 2874 -- documents. The jobCopiesRequested attribute SHALL be used 2875 -- when the job has only one document. 2877 -- documentCopiesCompleted(93), Integer32 (-2..2147483647) 2878 -- INTEGER: The total count of the number of document copies 2879 -- completed so far for the job as a whole. If there are 2880 -- documents A, B, and C, and document B is specified to 2881 -- produce 4 copies, the number of document copies starts a 0 2882 -- and runs up to 6 for the job as the job processes. 2884 -- This attribute SHALL be used only when a job has multiple 2885 -- documents. The jobCopiesCompleted attribute SHALL be used 2886 -- when the job has only one document. 2888 -- jobKOctetsTransferred(94), Integer32 (-2..2147483647) 2889 -- INTEGER: The number of K (1024) octets transferred to the 2890 -- server or device to which the agent is providing access. 2891 -- This count is independent of the number of copies of the 2892 -- job or documents that will be produced, but it is only a 2893 -- measure of the number of bytes transferred to the server or 2894 -- device. 2896 -- The agent SHALL round the actual number of octets 2897 -- transferred up to the next higher K. Thus 0 octets SHALL 2898 -- be represented as '0', 1-1024 octets SHALL BE represented 2899 -- as '1', 1025-2048 SHALL be '2', etc. When the job 2900 -- completes, the values of the jmJobKOctetsPerCopyRequested 2901 -- object and the jobKOctetsTransferred attribute SHALL be 2902 -- equal. 2904 -- NOTE - The jobKOctetsTransferred can be used with the 2905 -- jmJobKOctetsPerCopyRequested object in order to produce a 2906 -- relative indication of the progress of the job for agents 2907 -- that do not implement the jmJobKOctetsProcessed object. 2909 -- sheetCompletedCopyNumber(95), Integer32 (-2..2147483647) 2910 -- INTEGER: The number of the copy being stacked for the 2911 -- current document. This number starts at 0, is set to 1 2912 -- when the first sheet of the first copy for each document is 2913 -- being stacked and is equal to n where n is the nth sheet 2914 -- stacked in the current document copy. See section 3.4 , 2915 -- entitled 'Monitoring Job Progress'. 2917 -- sheetCompletedDocumentNumber(96), Integer32 (-2..2147483647) 2918 -- INTEGER: The ordinal number of the document in the job 2919 -- that is currently being stacked. This number starts at 0, 2920 -- increments to 1 when the first sheet of the first document 2921 -- in the job is being stacked, and is equal to n where n is 2922 -- the nth document in the job, starting with 1. 2924 -- Implementations that only support one document jobs SHOULD 2925 -- NOT implement this attribute. 2927 -- jobCollationType(97), JmJobCollationTypeTC 2928 -- INTEGER: The type of job collation. See also Section 3.4, 2929 -- entitled 'Monitoring Job Progress'. 2931 -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2932 -- + Impression attributes 2933 -- + 2934 -- + See the definition of the terms 'impression', 'sheet', 2935 -- + and 'page' in Section 2. 2936 -- + 2937 -- + See also jmJobImpressionsPerCopyRequested and 2938 -- + jmJobImpressionsCompleted objects in the jmJobTable. 2939 -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2941 -- impressionsSpooled(110), Integer32 (-2..2147483647) 2942 -- INTEGER: The number of impressions spooled to the server 2943 -- or device for the job so far. 2945 -- impressionsSentToDevice(111), Integer32 (-2..2147483647) 2946 -- INTEGER: The number of impressions sent to the device for 2947 -- the job so far. 2949 -- impressionsInterpreted(112), Integer32 (-2..2147483647) 2950 -- INTEGER: The number of impressions interpreted for the job 2951 -- so far. 2953 -- impressionsCompletedCurrentCopy(113), 2954 -- Integer32 (-2..2147483647) 2955 -- INTEGER: The number of impressions completed by the device 2956 -- for the current copy of the current document so far. For 2957 -- printing, the impressions completed includes interpreting, 2958 -- marking, and stacking the output. For other types of job 2959 -- services, the number of impressions completed includes the 2960 -- number of impressions processed. 2962 -- This value SHALL be reset to 0 for each document in the job 2963 -- and for each document copy. 2965 -- fullColorImpressionsCompleted(114), Integer32 (-2..2147483647) 2966 -- INTEGER: The number of full color impressions completed by 2967 -- the device for this job so far. For printing, the 2968 -- impressions completed includes interpreting, marking, and 2969 -- stacking the output. For other types of job services, the 2970 -- number of impressions completed includes the number of 2971 -- impressions processed. Full color impressions are typically 2972 -- defined as those requiring 3 or more colorants, but this 2973 -- MAY vary by implementation. In any case, the value of this 2974 -- attribute counts by 1 for each side that has full color, 2975 -- not by the number of colors per side (and the other 2976 -- impression counters are incremented, except 2977 -- highlightColorImpressionsCompleted(115)). 2979 -- highlightColorImpressionsCompleted(115), 2980 -- Integer32 (-2..2147483647) 2981 -- INTEGER: The number of highlight color impressions 2982 -- completed by the device for this job so far. For printing, 2983 -- the impressions completed includes interpreting, marking, 2984 -- and stacking the output. For other types of job services, 2985 -- the number of impressions completed includes the number of 2986 -- impressions processed. Highlight color impressions are 2987 -- typically defined as those requiring black plus one other 2988 -- colorant, but this MAY vary by implementation. In any 2989 -- case, the value of this attribute counts by 1 for each side 2990 -- that has highlight color (and the other impression counters 2991 -- are incremented, except 2992 -- fullColorImpressionsCompleted(114)). 2994 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2995 -- + Page attributes 2996 -- + 2997 -- + See the definition of 'impression', 'sheet', and 'page' 2998 -- + in Section 2. 2999 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3001 -- pagesRequested(130), Integer32 (-2..2147483647) 3002 -- INTEGER: The number of logical pages requested by the job 3003 -- to be processed. 3005 -- pagesCompleted(131), Integer32 (-2..2147483647) 3006 -- INTEGER: The number of logical pages completed for this 3007 -- job so far. 3009 -- For implementations where multiple copies are produced by 3010 -- the interpreter with only a single pass over the data, the 3011 -- final value SHALL be equal to the value of the 3012 -- pagesRequested object. For implementations where multiple 3013 -- copies are produced by the interpreter by processing the 3014 -- data for each copy, the final value SHALL be a multiple of 3015 -- the value of the pagesRequested object. 3017 -- NOTE - See the impressionsCompletedCurrentCopy and 3018 -- pagesCompletedCurrentCopy attributes for attributes that 3019 -- are reset on each document copy. 3021 -- NOTE - The pagesCompleted object can be used with the 3022 -- pagesRequested object to provide an indication of the 3023 -- relative progress of the job, provided that the 3024 -- multiplicative factor is taken into account for some 3025 -- implementations of multiple copies. 3027 -- pagesCompletedCurrentCopy(132), Integer32 (-2..2147483647) 3028 -- INTEGER: The number of logical pages completed for the 3029 -- current copy of the document so far. This value SHALL be 3030 -- reset to 0 for each document in the job and for each 3031 -- document copy. 3033 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3034 -- + Sheet attributes 3035 -- + 3036 -- + See the definition of 'impression', 'sheet', and 'page' 3037 -- + in Section 2. 3038 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3040 -- sheetsRequested(150), Integer32 (-2..2147483647) 3041 -- INTEGER: The total number of medium sheets requested to be 3042 -- produced for this job. 3044 -- Unlike the jmJobKOctetsPerCopyRequested and 3045 -- jmJobImpressionsPerCopyRequested attributes, the 3046 -- sheetsRequested(150) attribute SHALL include the 3047 -- multiplicative factor contributed by the number of copies 3048 -- and so is the total number of sheets to be produced by the 3049 -- job, as opposed to the size of the document(s) submitted. 3051 -- sheetsCompleted(151), Integer32 (-2..2147483647) 3052 -- INTEGER: The total number of medium sheets that have 3053 -- completed marking and stacking for the entire job so far 3054 -- whether those sheets have been processed on one side or on 3055 -- both. 3057 -- sheetsCompletedCurrentCopy(152), Integer32 (-2..2147483647) 3058 -- INTEGER: The number of medium sheets that have completed 3059 -- marking and stacking for the current copy of a document in 3060 -- the job so far whether those sheets have been processed on 3061 -- one side or on both. 3063 -- The value of this attribute SHALL be 0 before the job 3064 -- starts processing and SHALL be reset to 1 after the first 3065 -- sheet of each document and document copy in the job is 3066 -- processed and stacked. 3068 -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3069 -- + Resources attributes (requested and consumed) 3070 -- + 3071 -- + Pairs of these attributes can be used by monitoring 3072 -- + applications to show an indication of relative usage to 3073 -- + users. 3074 -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3076 -- mediumRequested(170), JmMediumTypeTC 3077 -- AND/OR 3078 -- JmJobStringTC (SIZE(0..63)) 3079 -- INTEGER: MULTI-ROW: The type 3080 -- AND/OR 3081 -- OCTETS: MULTI-ROW: the name of the medium that is 3082 -- required by the job. 3084 -- NOTE - The name (JmJobStringTC) values correspond to the 3085 -- prtInputMediaName object in the Printer MIB [print-mib] and 3086 -- the values of the IPP 'media' attribute. 3088 -- mediumConsumed(171), Integer32 (-2..2147483647) 3089 -- AND 3090 -- JmJobStringTC (SIZE(0..63)) 3091 -- INTEGER: MULTI-ROW: The number of sheets 3092 -- AND 3093 -- OCTETS: MULTI-ROW: the name of the medium that has been 3094 -- consumed so far whether those sheets have been processed on 3095 -- one side or on both. 3097 -- This attribute SHALL have both Integer32 and OCTET STRING 3098 -- (represented as JmJobStringTC) values. 3100 -- NOTE - The name (JmJobStringTC) values correspond to the 3101 -- name values of the prtInputMediaName object in the Printer 3102 -- MIB [print-mib]. 3104 -- colorantRequested(172), Integer32 (-2..2147483647) 3105 -- AND/OR 3106 -- JmJobStringTC (SIZE(0..63)) 3107 -- INTEGER: MULTI-ROW: The index (prtMarkerColorantIndex) in 3108 -- the Printer MIB[print-mib] 3109 -- AND/OR 3110 -- OCTETS: MULTI-ROW: the name of the colorant requested. 3112 -- NOTE - The name (JmJobStringTC) values correspond to the 3113 -- name values of the prtMarkerColorantValue object in the 3114 -- Printer MIB. Examples are: red, blue. 3116 -- colorantConsumed(173), Integer32 (-2..2147483647) 3117 -- AND/OR 3118 -- JmJobStringTC (SIZE(0..63)) 3119 -- INTEGER: MULTI-ROW: The index (prtMarkerColorantIndex) in 3120 -- the Printer MIB[print-mib] 3121 -- AND/OR 3122 -- OCTETS: MULTI-ROW: the name of the colorant consumed. 3124 -- NOTE - The name (JmJobStringTC) values correspond to the 3125 -- name values of the prtMarkerColorantValue object in the 3126 -- Printer MIB. Examples are: red, blue 3128 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3129 -- + Time attributes (set by server or device) 3130 -- + 3131 -- + This section of attributes are ones that are set by the 3132 -- + server or device that accepts jobs. Two forms of time are 3133 -- + provided. Each form is represented in a separate attribute. 3134 -- + See section 3.1.2 and section 3.1.3 for the 3135 -- + conformance requirements for time attribute for agents and 3136 -- + monitoring applications, respectively. The two forms are: 3137 -- + 3138 -- + 'DateAndTime' is an 8 or 11 octet binary encoded year, 3139 -- + month, day, hour, minute, second, deci-second with 3140 -- + optional offset from UTC. See SNMPv2-TC [SMIv2-TC]. 3141 -- + 3142 -- + NOTE: 'DateAndTime' is not printable characters; it is 3143 -- + binary. 3144 -- + 3145 -- + 'JmTimeStampTC' is the time of day measured in the number of 3146 -- + seconds since the system was booted. 3147 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3149 -- jobSubmissionToServerTime(190), JmTimeStampTC 3150 -- AND/OR 3151 -- DateAndTime 3152 -- INTEGER: Configuration 3 only: The time 3153 -- AND/OR 3154 -- OCTETS: the date and time that the job was submitted to 3155 -- the server (as distinguished from the device which uses 3156 -- jobSubmissionTime). 3158 -- jobSubmissionTime(191), JmTimeStampTC 3159 -- AND/OR 3160 -- DateAndTime 3161 -- INTEGER: Configurations 1, 2, and 3: The time 3162 -- AND/OR 3163 -- OCTETS: the date and time that the job was submitted to 3164 -- the server or device to which the agent is providing 3165 -- access. 3167 -- jobStartedBeingHeldTime(192), JmTimeStampTC 3168 -- AND/OR 3169 -- DateAndTime 3170 -- INTEGER: The time 3171 -- AND/OR 3172 -- OCTETS: the date and time that the job last entered the 3173 -- pendingHeld state. If the job has never entered the 3174 -- pendingHeld state, then the value SHALL be '0' or the 3175 -- attribute SHALL not be present in the table. 3177 -- jobStartedProcessingTime(193), JmTimeStampTC 3178 -- AND/OR 3179 -- DateAndTime 3180 -- INTEGER: The time 3181 -- AND/OR 3182 -- OCTETS: the date and time that the job started processing. 3184 -- jobCompletionTime(194), JmTimeStampTC 3185 -- AND/OR 3186 -- DateAndTime 3187 -- INTEGER: The time 3188 -- AND/OR 3189 -- OCTETS: the date and time that the job entered the 3190 -- completed, canceled, or aborted state. 3192 -- jobProcessingCPUTime(195) Integer32 (-2..2147483647) 3193 -- UNITS 'seconds' 3194 -- INTEGER: The amount of CPU time in seconds that the job 3195 -- has been in the processing state. If the job enters the 3196 -- processingStopped state, that elapsed time SHALL not be 3197 -- included. In other words, the jobProcessingCPUTime value 3198 -- SHOULD be relatively repeatable when the same job is 3199 -- processed again on the same device." 3201 REFERENCE 3202 "See Section 3.2 entitled 'The Attribute Mechanism' for a 3203 description of this textual-convention and its use in the 3204 jmAttributeTable. 3206 This is a type 2 enumeration. See Section 3.7.1.2." 3207 SYNTAX INTEGER { 3208 other(1), 3210 -- Job State attributes: 3211 jobStateReasons2(3), 3212 jobStateReasons3(4), 3213 jobStateReasons4(5), 3214 processingMessage(6), 3215 processingMessageNaturalLangTag(7), 3216 jobCodedCharSet(8), 3217 jobNaturalLanguageTag(9), 3218 -- Job Identification attributes: 3219 jobURI(20), 3220 jobAccountName(21), 3221 serverAssignedJobName(22), 3222 jobName(23), 3223 jobServiceTypes(24), 3224 jobSourceChannelIndex(25), 3225 jobSourcePlatformType(26), 3226 submittingServerName(27), 3227 submittingApplicationName(28), 3228 jobOriginatingHost(29), 3229 deviceNameRequested(30), 3230 queueNameRequested(31), 3231 physicalDevice(32), 3232 numberOfDocuments(33), 3233 fileName(34), 3234 documentName(35), 3235 jobComment(36), 3236 documentFormatIndex(37), 3237 documentFormat(38), 3239 -- Job Parameter attributes: 3240 jobPriority(50), 3241 jobProcessAfterDateAndTime(51), 3242 jobHold(52), 3243 jobHoldUntil(53), 3244 outputBin(54), 3245 sides(55), 3246 finishing(56), 3248 -- Image Quality attributes: 3249 printQualityRequested(70), 3250 printQualityUsed(71), 3251 printerResolutionRequested(72), 3252 printerResolutionUsed(73), 3253 tonerEcomonyRequested(74), 3254 tonerEcomonyUsed(75), 3255 tonerDensityRequested(76), 3256 tonerDensityUsed(77), 3258 -- Job Progress attributes: 3259 jobCopiesRequested(90), 3260 jobCopiesCompleted(91), 3261 documentCopiesRequested(92), 3262 documentCopiesCompleted(93), 3263 jobKOctetsTransferred(94), 3264 sheetCompletedCopyNumber(95), 3265 sheetCompletedDocumentNumber(96), 3266 jobCollationType(97), 3267 -- Impression attributes: 3268 impressionsSpooled(110), 3269 impressionsSentToDevice(111), 3270 impressionsInterpreted(112), 3271 impressionsCompletedCurrentCopy(113), 3272 fullColorImpressionsCompleted(114), 3273 highlightColorImpressionsCompleted(115), 3275 -- Page attributes: 3276 pagesRequested(130), 3277 pagesCompleted(131), 3278 pagesCompletedCurrentCopy(132), 3280 -- Sheet attributes: 3281 sheetsRequested(150), 3282 sheetsCompleted(151), 3283 sheetsCompletedCurrentCopy(152), 3285 -- Resource attributes: 3286 mediumRequested(170), 3287 mediumConsumed(171), 3288 colorantRequested(172), 3289 colorantConsumed(173), 3291 -- Time attributes: 3292 jobSubmissionToServerTime(190), 3293 jobSubmissionTime(191), 3294 jobStartedBeingHeldTime(192), 3295 jobStartedProcessingTime(193), 3296 jobCompletionTime(194), 3297 jobProcessingCPUTime(195) 3298 } 3300 JmJobServiceTypesTC ::= TEXTUAL-CONVENTION 3301 STATUS current 3302 DESCRIPTION 3303 "Specifies the type(s) of service to which the job has been 3304 submitted (print, fax, scan, etc.). The service type is 3305 represented as an enum that is bit encoded with each job 3306 service type so that more general and arbitrary services can be 3307 created, such as services with more than one destination type, 3308 or ones with only a source or only a destination. For example, 3309 a job service might scan, faxOut, and print a single job. In 3310 this case, three bits would be set in the jobServiceTypes 3311 attribute, corresponding to the hexadecimal values: 0x8 + 0x20 3312 + 0x4, respectively, yielding: 0x2C. 3314 Whether this attribute is set from a job attribute supplied by 3315 the job submission client or is set by the recipient job 3316 submission server or device depends on the job submission 3317 protocol. With either implementation, the agent SHALL return a 3318 non-zero value for this attribute indicating the type of the 3319 job. 3321 One of the purposes of this attribute is to permit a requester 3322 to filter out jobs that are not of interest. For example, a 3323 printer operator MAY only be interested in jobs that include 3324 printing. That is why the attribute is in the job 3325 identification category. 3327 The following service component types are defined (in 3328 hexadecimal) and are assigned a separate bit value for use with 3329 the jobServiceTypes attribute: 3331 other 0x1 3332 The job contains some instructions that are not one of the 3333 identified types. 3335 unknown 0x2 3336 The job contains some instructions whose type is unknown to 3337 the agent. 3339 print 0x4 3340 The job contains some instructions that specify printing 3342 scan 0x8 3343 The job contains some instructions that specify scanning 3345 faxIn 0x10 3346 The job contains some instructions that specify receive fax 3348 faxOut 0x20 3349 The job contains some instructions that specify sending fax 3351 getFile 0x40 3352 The job contains some instructions that specify accessing 3353 files or documents 3355 putFile 0x80 3356 The job contains some instructions that specify storing 3357 files or documents 3359 mailList 0x100 3360 The job contains some instructions that specify 3361 distribution of documents using an electronic mail system." 3362 REFERENCE 3363 "These bit definitions are the equivalent of a type 2 enum 3364 except that combinations of them MAY be used together. See 3365 section 3.7.1.2." 3366 SYNTAX INTEGER (0..2147483647) -- 31 bits, all but sign bit 3368 JmJobStateReasons1TC ::= TEXTUAL-CONVENTION 3369 STATUS current 3370 DESCRIPTION 3371 "The JmJobStateReasonsNTC (N=1..4) textual-conventions are used 3372 with the jmJobStateReasons1 object and jobStateReasonsN 3373 (N=2..4), respectively, to provide additional information 3374 regarding the current jmJobState object value. These values 3375 MAY be used with any job state or states for which the reason 3376 makes sense. 3378 NOTE - While values cannot be added to the jmJobState object 3379 without impacting deployed clients that take actions upon 3380 receiving jmJobState values, it is the intent that additional 3381 JmJobStateReasonsNTC enums can be defined and registered 3382 without impacting such deployed clients. In other words, the 3383 jmJobStateReasons1 object and jobStateReasonsN attributes are 3384 intended to be extensible. 3386 NOTE - The Job Monitoring MIB contains a superset of the IPP 3387 values[ipp-model] for the IPP 'job-state-reasons' attribute, 3388 since the Job Monitoring MIB is intended to cover other job 3389 submission protocols as well. Also some of the names of the 3390 reasons have been changed from 'printer' to 'device', since the 3391 Job Monitoring MIB is intended to cover additional types of 3392 devices, including input devices, such as scanners. 3394 The following standard values are defined (in hexadecimal) as 3395 powers of two, since multiple values MAY be used at the same 3396 time. For ease of understanding, the JmJobStateReasons1TC 3397 reasons are presented in the order in which the reasons are 3398 likely to occur (if implemented), starting with the 3399 'jobIncoming' value and ending with the 3400 'jobCompletedWithErrors' value. 3402 other 0x1 3403 The job state reason is not one of the standardized or 3404 registered reasons. 3406 unknown 0x2 3407 The job state reason is not known to the agent or is 3408 indeterminent. 3410 jobIncoming 0x4 3411 The job has been accepted by the server or device, but the 3412 server or device is expecting (1) additional operations 3413 from the client to finish creating the job and/or (2) is 3414 accessing/accepting document data. 3416 submissionInterrupted 0x8 3417 The job was not completely submitted for some unforeseen 3418 reason, such as: (1) the server has crashed before the job 3419 was closed by the client, (2) the server or the document 3420 transfer method has crashed in some non-recoverable way 3421 before the document data was entirely transferred to the 3422 server, (3) the client crashed or failed to close the job 3423 before the time-out period. 3425 jobOutgoing 0x10 3426 Configuration 2 only: The server is transmitting the job 3427 to the device. 3429 jobHoldSpecified 0x20 3430 The value of the job's jobHold(52) attribute is TRUE. The 3431 job SHALL NOT be a candidate for processing until this 3432 reason is removed and there are no other reasons to hold 3433 the job. 3435 jobHoldUntilSpecified 0x40 3436 The value of the job's jobHoldUntil(53) attribute specifies 3437 a time period that is still in the future. The job SHALL 3438 NOT be a candidate for processing until this reason is 3439 removed and there are no other reasons to hold the job. 3441 jobProcessAfterSpecified 0x80 3442 The value of the job's jobProcessAfterDateAndTime(51) 3443 attribute specifies a time that is still in the future. 3444 The job SHALL NOT be a candidate for processing until this 3445 reason is removed and there are no other reasons to hold 3446 the job. 3448 resourcesAreNotReady 0x100 3449 At least one of the resources needed by the job, such as 3450 media, fonts, resource objects, etc., is not ready on any 3451 of the physical devices for which the job is a candidate. 3452 This condition MAY be detected when the job is accepted, or 3453 subsequently while the job is pending or processing, 3454 depending on implementation. 3456 deviceStoppedPartly 0x200 3457 One or more, but not all, of the devices to which the job 3458 is assigned are stopped. If all of the devices are stopped 3459 (or the only device is stopped), the deviceStopped reason 3460 SHALL be used. 3462 deviceStopped 0x400 3463 The device(s) to which the job is assigned is (are all) 3464 stopped. 3466 jobInterpreting 0x800 3467 The device to which the job is assigned is interpreting the 3468 document data. 3470 jobPrinting 0x1000 3471 The output device to which the job is assigned is marking 3472 media. This value is useful for servers and output devices 3473 which spend a great deal of time processing (1) when no 3474 marking is happening and then want to show that marking is 3475 now happening or (2) when the job is in the process of 3476 being canceled or aborted while the job remains in the 3477 processing state, but the marking has not yet stopped so 3478 that impression or sheet counts are still increasing for 3479 the job. 3481 jobCanceledByUser 0x2000 3482 The job was canceled by the owner of the job, i.e., by a 3483 user whose name is the same as the value of the job's 3484 jmJobOwner object, or by some other authorized end-user, 3485 such as a member of the job owner's security group. 3487 jobCanceledByOperator 0x4000 3488 The job was canceled by the operator, i.e., by a user who 3489 has been authenticated as having operator privileges 3490 (whether local or remote). 3492 jobCanceledAtDevice 0x8000 3493 The job was canceled by an unidentified local user, i.e., a 3494 user at a console at the device. 3496 abortedBySystem 0x10000 3497 The job (1) is in the process of being aborted, (2) has 3498 been aborted by the system and placed in the 'aborted' 3499 state, or (3) has been aborted by the system and placed in 3500 the 'pendingHeld' state, so that a user or operator can 3501 manually try the job again. 3503 processingToStopPoint 0x20000 3504 The requester has issued an operation to cancel or 3505 interrupt the job or the server/device has aborted the job, 3506 but the server/device is still performing some actions on 3507 the job until a specified stop point occurs or job 3508 termination/cleanup is completed. 3510 This reason is recommended to be used in conjunction with 3511 the processing job state to indicate that the server/device 3512 is still performing some actions on the job while the job 3513 remains in the processing state. After all the job's 3514 resources consumed counters have stopped incrementing, the 3515 server/device moves the job from the processing state to 3516 the canceled or aborted job states. 3518 serviceOffLine 0x40000 3519 The service or document transform is off-line and accepting 3520 no jobs. All pending jobs are put into the pendingHeld 3521 state. This situation could be true if the service's or 3522 document transform's input is impaired or broken. 3524 jobCompletedSuccessfully 0x80000 3525 The job completed successfully. 3527 jobCompletedWithWarnings 0x100000 3528 The job completed with warnings. 3530 jobCompletedWithErrors 0x200000 3531 The job completed with errors (and possibly warnings too). 3533 The following additional job state reasons have been added to 3534 represent job states that are in ISO DPA[iso-dpa] and other job 3535 submission protocols: 3537 jobPaused 0x400000 3538 The job has been indefinitely suspended by a client issuing 3539 an operation to suspend the job so that other jobs may 3540 proceed using the same devices. The client MAY issue an 3541 operation to resume the paused job at any time, in which 3542 case the agent SHALL remove the jobPaused values from the 3543 job's jmJobStateReasons1 object and the job is eventually 3544 resumed at or near the point where the job was paused. 3546 jobInterrupted 0x800000 3547 The job has been interrupted while processing by a client 3548 issuing an operation that specifies another job to be run 3549 instead of the current job. The server or device will 3550 automatically resume the interrupted job when the 3551 interrupting job completes. 3553 jobRetained 0x1000000 3554 The job is being retained by the server or device with all 3555 of the job's document data (and submitted resources, such 3556 as fonts, logos, and forms, if any). Thus a client could 3557 issue an operation to the server or device to either (1) 3558 re-do the job (or a copy of the job) on the same server or 3559 device or (2) resubmit the job to another server or device. 3560 When a client could no longer re-do/resubmit the job, such 3561 as after the document data has been discarded, the agent 3562 SHALL remove the jobRetained value from the 3563 jmJobStateReasons1 object." 3564 REFERENCE 3565 "These bit definitions are the equivalent of a type 2 enum 3566 except that combinations of bits may be used together. See 3567 section 3.7.1.2. The remaining bits are reserved for future 3568 standardization and/or registration." 3569 SYNTAX INTEGER (0..2147483647) -- 31 bits, all but sign bit 3571 JmJobStateReasons2TC ::= TEXTUAL-CONVENTION 3572 STATUS current 3573 DESCRIPTION 3574 "This textual-convention is used with the jobStateReasons2 3575 attribute to provides additional information regarding the 3576 jmJobState object. See the description under 3577 JmJobStateReasons1TC for additional information that applies to 3578 all reasons. 3580 The following standard values are defined (in hexadecimal) as 3581 powers of two, since multiple values may be used at the same 3582 time: 3584 cascaded 0x1 3585 An outbound gateway has transmitted all of the job's job 3586 and document attributes and data to another spooling 3587 system. 3589 deletedByAdministrator 0x2 3590 The administrator has deleted the job. 3592 discardTimeArrived 0x4 3593 The job has been deleted due to the fact that the time 3594 specified by the job's job-discard-time attribute has 3595 arrived. 3597 postProcessingFailed 0x8 3598 The post-processing agent failed while trying to log 3599 accounting attributes for the job; therefore the job has 3600 been placed into the completed state with the jobRetained 3601 jmJobStateReasons1 object value for a system-defined period 3602 of time, so the administrator can examine it, resubmit it, 3603 etc. 3605 jobTransforming 0x10 3606 The server/device is interpreting document data and 3607 producing another electronic representation. 3609 maxJobFaultCountExceeded 0x20 3610 The job has faulted several times and has exceeded the 3611 administratively defined fault count limit. 3613 devicesNeedAttentionTimeOut 0x40 3614 One or more document transforms that the job is using needs 3615 human intervention in order for the job to make progress, 3616 but the human intervention did not occur within the site- 3617 settable time-out value. 3619 needsKeyOperatorTimeOut 0x80 3620 One or more devices or document transforms that the job is 3621 using need a specially trained operator (who may need a key 3622 to unlock the device and gain access) in order for the job 3623 to make progress, but the key operator intervention did not 3624 occur within the site-settable time-out value. 3626 jobStartWaitTimeOut 0x100 3627 The server/device has stopped the job at the beginning of 3628 processing to await human action, such as installing a 3629 special cartridge or special non-standard media, but the 3630 job was not resumed within the site-settable time-out value 3631 and the server/device has transitioned the job to the 3632 pendingHeld state. 3634 jobEndWaitTimeOut 0x200 3635 The server/device has stopped the job at the end of 3636 processing to await human action, such as removing a 3637 special cartridge or restoring standard media, but the job 3638 was not resumed within the site-settable time-out value and 3639 the server/device has transitioned the job to the completed 3640 state. 3642 jobPasswordWaitTimeOut 0x400 3643 The server/device has stopped the job at the beginning of 3644 processing to await input of the job's password, but the 3645 password was not received within the site-settable time-out 3646 value. 3648 deviceTimedOut 0x800 3649 A device that the job was using has not responded in a 3650 period specified by the device's site-settable attribute. 3652 connectingToDeviceTimeOut 0x1000 3653 The server is attempting to connect to one or more devices 3654 which may be dial-up, polled, or queued, and so may be busy 3655 with traffic from other systems, but server was unable to 3656 connect to the device within the site-settable time-out 3657 value. 3659 transferring 0x2000 3660 The job is being transferred to a down stream server or 3661 downstream device. 3663 queuedInDevice 0x4000 3664 The server/device has queued the job in a down stream 3665 server or downstream device. 3667 jobQueued 0x8000 3668 The server/device has queued the document data. 3670 jobCleanup 0x10000 3671 The server/device is performing cleanup activity as part of 3672 ending normal processing. 3674 jobPasswordWait 0x20000 3675 The server/device has selected the job to be next to 3676 process, but instead of assigning resources and starting 3677 the job processing, the server/device has transitioned the 3678 job to the pendingHeld state to await entry of a password 3679 (and dispatched another job, if there is one). 3681 validating 0x40000 3682 The server/device is validating the job after accepting the 3683 job. 3685 queueHeld 0x80000 3686 The operator has held the entire job set or queue. 3688 jobProofWait 0x100000 3689 The job has produced a single proof copy and is in the 3690 pendingHeld state waiting for the requester to issue an 3691 operation to release the job to print normally, obeying any 3692 job and document copy attributes that were originally 3693 submitted. 3695 heldForDiagnostics 0x200000 3696 The system is running intrusive diagnostics, so that all 3697 jobs are being held. 3699 noSpaceOnServer 0x800000 3700 There is no room on the server to store all of the job. 3702 pinRequired 0x1000000 3703 The System Administrator settable device policy is (1) to 3704 require PINs, and (2) to hold jobs that do not have a pin 3705 supplied as an input parameter when the job was created. 3707 exceededAccountLimit 0x2000000 3708 The account for which this job is drawn has exceeded its 3709 limit. This condition SHOULD be detected before the job is 3710 scheduled so that the user does not wait until his/her job 3711 is scheduled only to find that the account is overdrawn. 3712 This condition MAY also occur while the job is processing 3713 either as processing begins or part way through processing. 3715 heldForRetry 0x4000000 3716 The job encountered some errors that the server/device 3717 could not recover from with its normal retry procedures, 3718 but the error might not be encountered if the job is 3719 processed again in the future. Example cases are phone 3720 number busy or remote file system in-accessible. For such 3721 a situation, the server/device SHALL transition the job 3722 from the processing to the pendingHeld, rather than to the 3723 aborted state. 3725 The following values are from the X/Open PSIS draft standard: 3727 canceledByShutdown 0x8000000 3728 The job was canceled because the server or device was 3729 shutdown before completing the job. 3731 deviceUnavailable 0x10000000 3732 This job was aborted by the system because the device is 3733 currently unable to accept jobs. 3735 wrongDevice 0x20000000 3736 This job was aborted by the system because the device is 3737 unable to handle this particular job; the spooler SHOULD 3738 try another device or the user should submit the job to 3739 another device. 3741 badJob 0x40000000 3742 This job was aborted by the system because this job has a 3743 major problem, such as an ill-formed PDL; the spooler 3744 SHOULD not even try another device. " 3745 REFERENCE 3746 "These bit definitions are the equivalent of a type 2 enum 3747 except that combinations of them may be used together. See 3748 section 3.7.1.2. See the description under 3749 JmJobStateReasons1TC and the jobStateReasons2 attribute." 3750 SYNTAX INTEGER (0..2147483647) -- 31 bits, all but sign bit 3752 JmJobStateReasons3TC ::= TEXTUAL-CONVENTION 3753 STATUS current 3754 DESCRIPTION 3755 "This textual-convention is used with the jobStateReasons3 3756 attribute to provides additional information regarding the 3757 jmJobState object. See the description under 3758 JmJobStateReasons1TC for additional information that applies to 3759 all reasons. 3761 The following standard values are defined (in hexadecimal) as 3762 powers of two, since multiple values may be used at the same 3763 time: 3765 jobInterruptedByDeviceFailure 0x1 3766 A device or the print system software that the job was 3767 using has failed while the job was processing. The server 3768 or device is keeping the job in the pendingHeld state until 3769 an operator can determine what to do with the job." 3770 REFERENCE 3771 "These bit definitions are the equivalent of a type 2 enum 3772 except that combinations of them may be used together. See 3773 section 3.7.1.2. The remaining bits are reserved for future 3774 standardization and/or registration. See the description under 3775 JmJobStateReasons1TC and the jobStateReasons3 attribute." 3776 SYNTAX INTEGER (0..2147483647) -- 31 bits, all but sign bit 3778 JmJobStateReasons4TC ::= TEXTUAL-CONVENTION 3779 STATUS current 3780 DESCRIPTION 3781 "This textual-convention is used in the jobStateReasons4 3782 attribute to provides additional information regarding the 3783 jmJobState object. See the description under 3784 JmJobStateReasons1TC for additional information that applies to 3785 all reasons. 3787 The following standard values are defined (in hexadecimal) as 3788 powers of two, since multiple values may be used at the same 3789 time: 3791 none yet defined. These bits are reserved for future 3792 standardization and/or registration." 3793 REFERENCE 3794 "These bit definitions are the equivalent of a type 2 enum 3795 except that combinations of them may be used together. See 3796 section 3.7.1.2. See the description under 3797 JmJobStateReasons1TC and the jobStateReasons4 attribute." 3798 SYNTAX INTEGER (0..2147483647) -- 31 bits, all but sign bit 3800 jobmonMIBObjects OBJECT IDENTIFIER ::= { jobmonMIB 1 } 3802 -- The General Group (MANDATORY) 3804 -- The jmGeneralGroup consists entirely of the jmGeneralTable. 3806 jmGeneral OBJECT IDENTIFIER ::= { jobmonMIBObjects 1 } 3808 jmGeneralTable OBJECT-TYPE 3809 SYNTAX SEQUENCE OF JmGeneralEntry 3810 MAX-ACCESS not-accessible 3811 STATUS current 3812 DESCRIPTION 3813 "The jmGeneralTable consists of information of a general nature 3814 that are per-job-set, but are not per-job. See Section 2 3815 entitled 'Terminology and Job Model' for the definition of a 3816 job set." 3817 REFERENCE 3818 "The MANDATORY-GROUP macro specifies that this group is 3819 MANDATORY." 3820 ::= { jmGeneral 1 } 3822 jmGeneralEntry OBJECT-TYPE 3823 SYNTAX JmGeneralEntry 3824 MAX-ACCESS not-accessible 3825 STATUS current 3826 DESCRIPTION 3827 "Information about a job set (queue). 3829 An entry SHALL exist in this table for each job set." 3830 INDEX { jmGeneralJobSetIndex } 3831 ::= { jmGeneralTable 1 } 3833 JmGeneralEntry ::= SEQUENCE { 3834 jmGeneralJobSetIndex Integer32 (1..32767), 3835 jmGeneralNumberOfActiveJobs Integer32 (0..2147483647), 3836 jmGeneralOldestActiveJobIndex Integer32 (0..2147483647), 3837 jmGeneralNewestActiveJobIndex Integer32 (0..2147483647), 3838 jmGeneralJobPersistence Integer32 (15..2147483647), 3839 jmGeneralAttributePersistence Integer32 (15..2147483647), 3840 jmGeneralJobSetName JmUTF8StringTC (SIZE(0..63)) 3841 } 3842 jmGeneralJobSetIndex OBJECT-TYPE 3843 SYNTAX Integer32 (1..32767) 3844 MAX-ACCESS not-accessible 3845 STATUS current 3846 DESCRIPTION 3847 "A unique value for each job set in this MIB. The jmJobTable 3848 and jmAttributeTable tables have this same index as their 3849 primary index. 3851 The value(s) of the jmGeneralJobSetIndex SHALL be persistent 3852 across power cycles, so that clients that have retained 3853 jmGeneralJobSetIndex values will access the same job sets upon 3854 subsequent power-up. 3856 An implementation that has only one job set, such as a printer 3857 with a single queue, SHALL hard code this object with the value 3858 1." 3859 REFERENCE 3860 "See Section 2 entitled 'Terminology and Job Model' for the 3861 definition of a job set. 3862 Corresponds to the first index in jmJobTable and 3863 jmAttributeTable." 3864 ::= { jmGeneralEntry 1 } 3866 jmGeneralNumberOfActiveJobs OBJECT-TYPE 3867 SYNTAX Integer32 (0..2147483647) 3868 MAX-ACCESS read-only 3869 STATUS current 3870 DESCRIPTION 3871 "The current number of 'active' jobs in the jmJobIDTable, 3872 jmJobTable, and jmAttributeTable, i.e., the total number of 3873 jobs that are in the pending, processing, or processingStopped 3874 states. See the JmJobStateTC textual-convention for the exact 3875 specification of the semantics of the job states." 3876 DEFVAL { 0 } -- no jobs 3877 ::= { jmGeneralEntry 2 } 3879 jmGeneralOldestActiveJobIndex OBJECT-TYPE 3880 SYNTAX Integer32 (0..2147483647) 3881 MAX-ACCESS read-only 3882 STATUS current 3883 DESCRIPTION 3884 "The jmJobIndex of the oldest job that is still in one of the 3885 'active' states (pending, processing, or processingStopped). 3886 In other words, the index of the 'active' job that has been in 3887 the job tables the longest. 3889 If there are no active jobs, the agent SHALL set the value of 3890 this object to 0." 3891 REFERENCE 3892 "See Section 3.2 entitled 'The Job Tables and the Oldest Active 3893 and Newest Active Indexes' for a description of the usage of 3894 this object." 3895 DEFVAL { 0 } -- no active jobs 3896 ::= { jmGeneralEntry 3 } 3898 jmGeneralNewestActiveJobIndex OBJECT-TYPE 3899 SYNTAX Integer32 (0..2147483647) 3900 MAX-ACCESS read-only 3901 STATUS current 3902 DESCRIPTION 3903 "The jmJobIndex of the newest job that is in one of the 3904 'active' states (pending, processing, or processingStopped). 3905 In other words, the index of the 'active' job that has been 3906 most recently added to the job tables. 3908 When all jobs become 'inactive', i.e., enter the pendingHeld, 3909 completed, canceled, or aborted states, the agent SHALL set the 3910 value of this object to 0." 3911 REFERENCE 3912 "See Section 3.2 entitled 'The Job Tables and the Oldest Active 3913 and Newest Active Indexes' for a description of the usage of 3914 this object." 3915 DEFVAL { 0 } -- no active jobs 3916 ::= { jmGeneralEntry 4 } 3918 jmGeneralJobPersistence OBJECT-TYPE 3919 SYNTAX Integer32 (15..2147483647) 3920 UNITS "seconds" 3921 MAX-ACCESS read-only 3922 STATUS current 3923 DESCRIPTION 3924 "The minimum time in seconds for this instance of the Job Set 3925 that an entry SHALL remain in the jmJobIDTable and jmJobTable 3926 after processing has completed, i.e., the minimum time in 3927 seconds starting when the job enters the completed, canceled, 3928 or aborted state. 3930 Configuring this object is implementation-dependent. 3932 This value SHALL be equal to or greater than the value of 3933 jmGeneralAttributePersistence. This value SHOULD be at least 3934 60 which gives a monitoring application one minute in which to 3935 poll for job data." 3936 DEFVAL { 60 } -- one minute 3937 ::= { jmGeneralEntry 5 } 3939 jmGeneralAttributePersistence OBJECT-TYPE 3940 SYNTAX Integer32 (15..2147483647) 3941 UNITS "seconds" 3942 MAX-ACCESS read-only 3943 STATUS current 3944 DESCRIPTION 3945 "The minimum time in seconds for this instance of the Job Set 3946 that an entry SHALL remain in the jmAttributeTable after 3947 processing has completed , i.e., the time in seconds starting 3948 when the job enters the completed, canceled, or aborted state. 3950 Configuring this object is implementation-dependent. 3952 This value SHOULD be at least 60 which gives a monitoring 3953 application one minute in which to poll for job data." 3954 DEFVAL { 60 } -- one minute 3955 ::= { jmGeneralEntry 6 } 3957 jmGeneralJobSetName OBJECT-TYPE 3958 SYNTAX JmUTF8StringTC (SIZE(0..63)) 3959 MAX-ACCESS read-only 3960 STATUS current 3961 DESCRIPTION 3962 "The human readable name of this job set assigned by the system 3963 administrator (by means outside of this MIB). Typically, this 3964 name SHOULD be the name of the job queue. If a server or 3965 device has only a single job set, this object can be the 3966 administratively assigned name of the server or device itself. 3967 This name does not need to be unique, though each job set in a 3968 single Job Monitoring MIB SHOULD have distinct names. 3970 NOTE - If the job set corresponds to a single printer and the 3971 Printer MIB is implemented, this value SHOULD be the same as 3972 the prtGeneralPrinterName object in the draft Printer MIB 3973 [print-mib-draft]. If the job set corresponds to an IPP 3974 Printer, this value SHOULD be the same as the IPP 'printer- 3975 name' Printer attribute. 3977 NOTE - The purpose of this object is to help the user of the 3978 job monitoring application distinguish between several job sets 3979 in implementations that support more than one job set." 3980 REFERENCE 3981 "See the OBJECT compliance macro for the minimum maximum length 3982 required for conformance." 3983 DEFVAL { ''H } -- empty string 3984 ::= { jmGeneralEntry 7 } 3986 -- The Job ID Group (MANDATORY) 3988 -- The jmJobIDGroup consists entirely of the jmJobIDTable. 3990 jmJobID OBJECT IDENTIFIER ::= { jobmonMIBObjects 2 } 3992 jmJobIDTable OBJECT-TYPE 3993 SYNTAX SEQUENCE OF JmJobIDEntry 3994 MAX-ACCESS not-accessible 3995 STATUS current 3996 DESCRIPTION 3997 "The jmJobIDTable provides a correspondence map (1) between the 3998 job submission ID that a client uses to refer to a job and (2) 3999 the jmGeneralJobSetIndex and jmJobIndex that the Job Monitoring 4000 MIB agent assigned to the job and that are used to access the 4001 job in all of the other tables in the MIB. If a monitoring 4002 application already knows the jmGeneralJobSetIndex and the 4003 jmJobIndex of the job it is querying, that application NEED NOT 4004 use the jmJobIDTable." 4005 REFERENCE 4006 "The MANDATORY-GROUP macro specifies that this group is 4007 MANDATORY." 4008 ::= { jmJobID 1 } 4010 jmJobIDEntry OBJECT-TYPE 4011 SYNTAX JmJobIDEntry 4012 MAX-ACCESS not-accessible 4013 STATUS current 4014 DESCRIPTION 4015 "The map from (1) the jmJobSubmissionID to (2) the 4016 jmGeneralJobSetIndex and jmJobIndex. 4018 An entry SHALL exist in this table for each job currently known 4019 to the agent for all job sets and job states. There MAY be 4020 more than one jmJobIDEntry that maps to a single job. This 4021 many to one mapping can occur when more than one network entity 4022 along the job submission path supplies a job submission ID. 4023 See Section 3.5. However, each job SHALL appear once and in 4024 one and only one job set." 4025 INDEX { jmJobSubmissionID } 4026 ::= { jmJobIDTable 1 } 4028 JmJobIDEntry ::= SEQUENCE { 4029 jmJobSubmissionID OCTET STRING(SIZE(48)), 4030 jmJobIDJobSetIndex Integer32 (0..32767), 4031 jmJobIDJobIndex Integer32 (0..2147483647) 4032 } 4033 jmJobSubmissionID OBJECT-TYPE 4034 SYNTAX OCTET STRING(SIZE(48)) 4035 MAX-ACCESS not-accessible 4036 STATUS current 4037 DESCRIPTION 4038 "A quasi-unique 48-octet fixed-length string ID which 4039 identifies the job within a particular client-server 4040 environment. There are multiple formats for the 4041 jmJobSubmissionID. Each format SHALL be uniquely identified. 4042 See the JmJobSubmissionIDTypeTC textual convention. Each 4043 format SHALL be registered using the procedures of a type 2 4044 enum. See section 3.7.3 entitled: 'PWG Registration of Job 4045 Submission Id Formats'. 4047 If the requester (client or server) does not supply a job 4048 submission ID in the job submission protocol, then the 4049 recipient (server or device) SHALL assign a job submission ID 4050 using any of the standard formats that have been reserved for 4051 agents and adding the final 8 octets to distinguish the ID from 4052 others submitted from the same requester. 4054 The monitoring application, whether in the client or running 4055 separately, MAY use the job submission ID to help identify 4056 which jmJobIndex was assigned by the agent, i.e., in which row 4057 the job information is in the other tables. 4059 NOTE - fixed-length is used so that a management application 4060 can use a shortened GetNext varbind (in SNMPv1 and SNMPv2) in 4061 order to get the next submission ID, disregarding the remainder 4062 of the ID in order to access jobs independent of the trailing 4063 identifier part, e.g., to get all jobs submitted by a 4064 particular jmJobOwner or submitted from a particular MAC 4065 address." 4066 REFERENCE 4067 "See the JmJobSubmissionIDTypeTC textual convention. 4068 See APPENDIX B - Support of Job Submission Protocols." 4069 ::= { jmJobIDEntry 1 } 4071 jmJobIDJobSetIndex OBJECT-TYPE 4072 SYNTAX Integer32 (0..32767) 4073 MAX-ACCESS read-only 4074 STATUS current 4075 DESCRIPTION 4076 "This object contains the value of the jmGeneralJobSetIndex for 4077 the job with the jmJobSubmissionID value, i.e., the job set 4078 index of the job set in which the job was placed when that 4079 server or device accepted the job. This 16-bit value in 4080 combination with the jmJobIDJobIndex value permits the 4081 management application to access the other tables to obtain the 4082 job-specific objects for this job." 4083 REFERENCE 4084 "See jmGeneralJobSetIndex in the jmGeneralTable." 4085 DEFVAL { 0 } -- 0 indicates no job set index 4086 ::= { jmJobIDEntry 2 } 4088 jmJobIDJobIndex OBJECT-TYPE 4089 SYNTAX Integer32 (0..2147483647) 4090 MAX-ACCESS read-only 4091 STATUS current 4092 DESCRIPTION 4093 "This object contains the value of the jmJobIndex for the job 4094 with the jmJobSubmissionID value, i.e., the job index for the 4095 job when the server or device accepted the job. This value, in 4096 combination with the jmJobIDJobSetIndex value, permits the 4097 management application to access the other tables to obtain the 4098 job-specific objects for this job." 4099 REFERENCE 4100 "See jmJobIndex in the jmJobTable." 4101 DEFVAL { 0 } -- 0 indicates no jmJobIndex value. 4102 ::= { jmJobIDEntry 3 } 4104 -- The Job Group (MANDATORY) 4106 -- The jmJobGroup consists entirely of the jmJobTable. 4108 jmJob OBJECT IDENTIFIER ::= { jobmonMIBObjects 3 } 4110 jmJobTable OBJECT-TYPE 4111 SYNTAX SEQUENCE OF JmJobEntry 4112 MAX-ACCESS not-accessible 4113 STATUS current 4114 DESCRIPTION 4115 "The jmJobTable consists of basic job state and status 4116 information for each job in a job set that (1) monitoring 4117 applications need to be able to access in a single SNMP Get 4118 operation, (2) that have a single value per job, and (3) that 4119 SHALL always be implemented." 4120 REFERENCE 4121 "The MANDATORY-GROUP macro specifies that this group is 4122 MANDATORY." 4123 ::= { jmJob 1 } 4125 jmJobEntry OBJECT-TYPE 4126 SYNTAX JmJobEntry 4127 MAX-ACCESS not-accessible 4128 STATUS current 4129 DESCRIPTION 4130 "Basic per-job state and status information. 4132 An entry SHALL exist in this table for each job, no matter what 4133 the state of the job is. Each job SHALL appear in one and only 4134 one job set." 4135 REFERENCE 4136 "See Section 3.2 entitled 'The Job Tables'." 4137 INDEX { jmGeneralJobSetIndex, jmJobIndex } 4138 ::= { jmJobTable 1 } 4140 JmJobEntry ::= SEQUENCE { 4141 jmJobIndex Integer32 (1..2147483647), 4142 jmJobState JmJobStateTC, 4143 jmJobStateReasons1 JmJobStateReasons1TC, 4144 jmNumberOfInterveningJobs Integer32 (-2..2147483647), 4145 jmJobKOctetsPerCopyRequested Integer32 (-2..2147483647), 4146 jmJobKOctetsProcessed Integer32 (-2..2147483647), 4147 jmJobImpressionsPerCopyRequested Integer32 (-2..2147483647), 4148 jmJobImpressionsCompleted Integer32 (-2..2147483647), 4149 jmJobOwner JmJobStringTC (SIZE(0..63)) 4150 } 4151 jmJobIndex OBJECT-TYPE 4152 SYNTAX Integer32 (1..2147483647) 4153 MAX-ACCESS not-accessible 4154 STATUS current 4155 DESCRIPTION 4156 "The sequential, monatonically increasing identifier index for 4157 the job generated by the server or device when that server or 4158 device accepted the job. This index value permits the 4159 management application to access the other tables to obtain the 4160 job-specific row entries." 4161 REFERENCE 4162 "See Section 3.2 entitled 'The Job Tables and the Oldest Active 4163 and Newest Active Indexes'. 4164 See Section 3.5 entitled 'Job Identification'. 4165 See also 4167 jmGeneralNewestActiveJobIndex for the largest value of 4168 jmJobIndex. 4169 See JmJobSubmissionIDTypeTC for a limit on the size of this 4170 index if the agent represents it as an 8-digit decimal number." 4171 ::= { jmJobEntry 1 } 4173 jmJobState OBJECT-TYPE 4174 SYNTAX JmJobStateTC 4175 MAX-ACCESS read-only 4176 STATUS current 4177 DESCRIPTION 4178 "The current state of the job (pending, processing, completed, 4179 etc.). Agents SHALL implement only those states which are 4180 appropriate for the particular implementation. However, 4181 management applications SHALL be prepared to receive all the 4182 standard job states. 4184 The final value for this object SHALL be one of: completed, 4185 canceled, or aborted. The minimum length of time that the 4186 agent SHALL maintain MIB data for a job in the completed, 4187 canceled, or aborted state before removing the job data from 4188 the jmJobIDTable and jmJobTable is specified by the value of 4189 the jmGeneralJobPersistence object." 4190 DEFVAL { unknown } -- default is unknown 4191 ::= { jmJobEntry 2 } 4193 jmJobStateReasons1 OBJECT-TYPE 4194 SYNTAX JmJobStateReasons1TC 4195 MAX-ACCESS read-only 4196 STATUS current 4197 DESCRIPTION 4198 "Additional information about the job's current state, i.e., 4199 information that augments the value of the job's jmJobState 4200 object. 4202 Implementation of any reason values is OPTIONAL, but an agent 4203 SHOULD return any reason information available. These values 4204 MAY be used with any job state or states for which the reason 4205 makes sense. Since the Job State Reasons will be more dynamic 4206 than the Job State, it is recommended that a job monitoring 4207 application read this object every time jmJobState is read. 4208 When the agent cannot provide a reason for the current state of 4209 the job, the value of the jmJobStateReasons1 object and 4210 jobStateReasonsN attributes SHALL be 0." 4211 REFERENCE 4212 "The jobStateReasonsN (N=2..4) attributes provide further 4213 additional information about the job's current state." 4214 DEFVAL { 0 } -- no reasons 4215 ::= { jmJobEntry 3 } 4217 jmNumberOfInterveningJobs OBJECT-TYPE 4218 SYNTAX Integer32 (-2..2147483647) 4219 MAX-ACCESS read-only 4220 STATUS current 4221 DESCRIPTION 4222 "The number of jobs that are expected to complete processing 4223 before this job has completed processing according to the 4224 implementation's queuing algorithm, if no other jobs were to be 4225 submitted. In other words, this value is the job's queue 4226 position. The agent SHALL return a value of 0 for this 4227 attribute when the job is the next job to complete processing 4228 (or has completed processing)." 4229 DEFVAL { 0 } -- default is no intervening jobs. 4230 ::= { jmJobEntry 4 } 4232 jmJobKOctetsPerCopyRequested OBJECT-TYPE 4233 SYNTAX Integer32 (-2..2147483647) 4234 MAX-ACCESS read-only 4235 STATUS current 4236 DESCRIPTION 4237 "The total size in K (1024) octets of the document(s) being 4238 requested to be processed in the job. The agent SHALL round 4239 the actual number of octets up to the next highest K. Thus 0 4240 octets SHALL be represented as '0', 1-1024 octets SHALL be 4241 represented as '1', 1025-2048 SHALL be represented as '2', etc. 4243 In computing this value, the server/device SHALL not include 4244 the multiplicative factors contributed by (1) the number of 4245 document copies, and (2) the number of job copies, independent 4246 of whether the device can process multiple copies of the job or 4247 document without making multiple passes over the job or 4248 document data and independent of whether the output is collated 4249 or not. Thus the server/device computation is independent of 4250 the implementation and indicates the size of the document(s) 4251 measured in K octets independent of the number of copies." 4252 DEFVAL { -2 } -- the default is unknown(-2) 4253 ::= { jmJobEntry 5 } 4255 jmJobKOctetsProcessed OBJECT-TYPE 4256 SYNTAX Integer32 (-2..2147483647) 4257 MAX-ACCESS read-only 4258 STATUS current 4259 DESCRIPTION 4260 "The total number of octets processed by the server or device 4261 measured in units of K (1024) octets so far. The agent SHALL 4262 round the actual number of octets processed up to the next 4263 higher K. Thus 0 octets SHALL be represented as '0', 1-1024 4264 octets SHALL be represented as '1', 1025-2048 octets SHALL be 4265 '2', etc. For printing devices, this value is the number 4266 interpreted by the page description language interpreter rather 4267 than what has been marked on media. 4269 For implementations where multiple copies are produced by the 4270 interpreter with only a single pass over the data, the final 4271 value SHALL be equal to the value of the 4272 jmJobKOctetsPerCopyRequested object. For implementations where 4273 multiple copies are produced by the interpreter by processing 4274 the data for each copy, the final value SHALL be a multiple of 4275 the value of the jmJobKOctetsPerCopyRequested object. 4277 NOTE - See the impressionsCompletedCurrentCopy and 4278 pagesCompletedCurrentCopy attributes for attributes that are 4279 reset on each document copy. 4281 NOTE - The jmJobKOctetsProcessed object can be used with the 4282 jmJobKOctetsPerCopyRequested object to provide an indication of 4283 the relative progress of the job, provided that the 4284 multiplicative factor is taken into account for some 4285 implementations of multiple copies." 4286 DEFVAL { 0 } -- default is no octets processed. 4287 ::= { jmJobEntry 6 } 4289 jmJobImpressionsPerCopyRequested OBJECT-TYPE 4290 SYNTAX Integer32 (-2..2147483647) 4291 MAX-ACCESS read-only 4292 STATUS current 4293 DESCRIPTION 4294 "The total size in number of impressions of the document(s) 4295 submitted. 4297 In computing this value, the server/device SHALL not include 4298 the multiplicative factors contributed by (1) the number of 4299 document copies, and (2) the number of job copies, independent 4300 of whether the device can process multiple copies of the job or 4301 document without making multiple passes over the job or 4302 document data and independent of whether the output is collated 4303 or not. Thus the server/device computation is independent of 4304 the implementation and reflects the size of the document(s) 4305 measured in impressions independent of the number of copies." 4306 REFERENCE 4307 "See the definition of the term 'impression' in Section 2." 4308 DEFVAL { -2 } -- default is unknown(-2) 4309 ::= { jmJobEntry 7 } 4311 jmJobImpressionsCompleted OBJECT-TYPE 4312 SYNTAX Integer32 (-2..2147483647) 4313 MAX-ACCESS read-only 4314 STATUS current 4315 DESCRIPTION 4316 "The total number of impressions completed for this job so far. 4317 For printing devices, the impressions completed includes 4318 interpreting, marking, and stacking the output. For other 4319 types of job services, the number of impressions completed 4320 includes the number of impressions processed. 4322 NOTE - See the impressionsCompletedCurrentCopy and 4323 pagesCompletedCurrentCopy attributes for attributes that are 4324 reset on each document copy. 4326 NOTE - The jmJobImpressionsCompleted object can be used with 4327 the jmJobImpressionsPerCopyRequested object to provide an 4328 indication of the relative progress of the job, provided that 4329 the multiplicative factor is taken into account for some 4330 implementations of multiple copies." 4332 REFERENCE 4333 "See the definition of the term 'impression' in Section 2 and 4334 the counting example in Section 3.4 entitled 'Monitoring Job 4335 Progress'." 4336 DEFVAL { 0 } -- default is no octets 4337 ::= { jmJobEntry 8 } 4339 jmJobOwner OBJECT-TYPE 4340 SYNTAX JmJobStringTC (SIZE(0..63)) 4341 MAX-ACCESS read-only 4342 STATUS current 4343 DESCRIPTION 4344 "The coded character set name of the user that submitted the 4345 job. The method of assigning this user name will be system 4346 and/or site specific but the method MUST insure that the name 4347 is unique to the network that is visible to the client and 4348 target device. 4350 This value SHOULD be the most authenticated name of the user 4351 submitting the job." 4352 REFERENCE 4353 "See the OBJECT compliance macro for the minimum maximum length 4354 required for conformance." 4355 DEFVAL { ''H } -- empty string 4356 ::= { jmJobEntry 9 } 4358 -- The Attribute Group (MANDATORY) 4360 -- The jmAttributeGroup consists entirely of the jmAttributeTable. 4361 -- 4362 -- Implementation of the objects in this group is MANDATORY. 4363 -- See Section 3.1 entitled 'Conformance Considerations'. 4364 -- An agent SHALL implement any attribute if (1) the server or device 4365 -- supports the functionality represented by the attribute and (2) the 4366 -- information is available to the agent. 4368 jmAttribute OBJECT IDENTIFIER ::= { jobmonMIBObjects 4 } 4370 jmAttributeTable OBJECT-TYPE 4371 SYNTAX SEQUENCE OF JmAttributeEntry 4372 MAX-ACCESS not-accessible 4373 STATUS current 4374 DESCRIPTION 4375 "The jmAttributeTable SHALL contain attributes of the job and 4376 document(s) for each job in a job set. Instead of allocating 4377 distinct objects for each attribute, each attribute is 4378 represented as a separate row in the jmAttributeTable." 4379 REFERENCE 4380 "The MANDATORY-GROUP macro specifies that this group is 4381 MANDATORY. An agent SHALL implement any attribute if (1) the 4382 server or device supports the functionality represented by the 4383 attribute and (2) the information is available to the agent. " 4384 ::= { jmAttribute 1 } 4386 jmAttributeEntry OBJECT-TYPE 4387 SYNTAX JmAttributeEntry 4388 MAX-ACCESS not-accessible 4389 STATUS current 4390 DESCRIPTION 4391 "Attributes representing information about the job and 4392 document(s) or resources required and/or consumed. 4394 Each entry in the jmAttributeTable is a per-job entry with an 4395 extra index for each type of attribute (jmAttributeTypeIndex) 4396 that a job can have and an additional index 4397 (jmAttributeInstanceIndex) for those attributes that can have 4398 multiple instances per job. The jmAttributeTypeIndex object 4399 SHALL contain an enum type that indicates the type of attribute 4400 (see the JmAttributeTypeTC textual-convention). The value of 4401 the attribute SHALL be represented in either the 4402 jmAttributeValueAsInteger or jmAttributeValueAsOctets objects, 4403 and/or both, as specified in the JmAttributeTypeTC textual- 4404 convention. 4406 The agent SHALL create rows in the jmAttributeTable as the 4407 server or device is able to discover the attributes either from 4408 the job submission protocol itself or from the document PDL. 4409 As the documents are interpreted, the interpreter MAY discover 4410 additional attributes and so the agent adds additional rows to 4411 this table. As the attributes that represent resources are 4412 actually consumed, the usage counter contained in the 4413 jmAttributeValueAsInteger object is incremented according to 4414 the units indicated in the description of the JmAttributeTypeTC 4415 enum. 4417 The agent SHALL maintain each row in the jmJobTable for at 4418 least the minimum time after a job completes as specified by 4419 the jmGeneralAttributePersistence object. 4421 Zero or more entries SHALL exist in this table for each job in 4422 a job set." 4423 REFERENCE 4424 "See Section 3.3 entitled 'The Attribute Mechanism' for a 4425 description of the jmAttributeTable." 4426 INDEX { jmGeneralJobSetIndex, jmJobIndex, jmAttributeTypeIndex, 4427 jmAttributeInstanceIndex } 4428 ::= { jmAttributeTable 1 } 4430 JmAttributeEntry ::= SEQUENCE { 4431 jmAttributeTypeIndex JmAttributeTypeTC, 4432 jmAttributeInstanceIndex Integer32 (1..32767), 4433 jmAttributeValueAsInteger Integer32 (-2..2147483647), 4434 jmAttributeValueAsOctets OCTET STRING(SIZE(0..63)) 4435 } 4436 jmAttributeTypeIndex OBJECT-TYPE 4437 SYNTAX JmAttributeTypeTC 4438 MAX-ACCESS not-accessible 4439 STATUS current 4440 DESCRIPTION 4441 "The type of attribute that this row entry represents. 4443 The type MAY identify information about the job or document(s) 4444 or MAY identify a resource required to process the job before 4445 the job start processing and/or consumed by the job as the job 4446 is processed. 4448 Examples of job attributes (i.e., apply to the job as a whole) 4449 that have only one instance per job include: 4450 jobCopiesRequested(90), documentCopiesRequested(92), 4451 jobCopiesCompleted(91), documentCopiesCompleted(93), while 4452 examples of job attributes that may have more than one instance 4453 per job include: documentFormatIndex(37), and 4454 documentFormat(38). 4456 Examples of document attributes (one instance per document) 4457 include: fileName(34), and documentName(35). 4459 Examples of required and consumed resource attributes include: 4460 pagesRequested(130), mediumRequested(170), pagesCompleted(131), 4461 and mediumConsumed(171), respectively." 4462 ::= { jmAttributeEntry 1 } 4464 jmAttributeInstanceIndex OBJECT-TYPE 4465 SYNTAX Integer32 (1..32767) 4466 MAX-ACCESS not-accessible 4467 STATUS current 4468 DESCRIPTION 4469 "A running 16-bit index of the attributes of the same type for 4470 each job. For those attributes with only a single instance per 4471 job, this index value SHALL be 1. For those attributes that 4472 are a single value per document, the index value SHALL be the 4473 document number, starting with 1 for the first document in the 4474 job. Jobs with only a single document SHALL use the index 4475 value of 1. For those attributes that can have multiple values 4476 per job or per document, such as documentFormatIndex(37) or 4477 documentFormat(38), the index SHALL be a running index for the 4478 job as a whole, starting at 1." 4479 ::= { jmAttributeEntry 2 } 4481 jmAttributeValueAsInteger OBJECT-TYPE 4482 SYNTAX Integer32 (-2..2147483647) 4483 MAX-ACCESS read-only 4484 STATUS current 4485 DESCRIPTION 4486 "The integer value of the attribute. The value of the 4487 attribute SHALL be represented as an integer if the enum 4488 description in the JmAttributeTypeTC textual-convention 4489 definition has the tag: 'INTEGER:'. 4491 Depending on the enum definition, this object value MAY be an 4492 integer, a counter, an index, or an enum, depending on the 4493 jmAttributeTypeIndex value. The units of this value are 4494 specified in the enum description. 4496 For those attributes that are accumulating job consumption as 4497 the job is processed as specified in the JmAttributeTypeTC 4498 textual-convention, SHALL contain the final value after the job 4499 completes processing, i.e., this value SHALL indicate the total 4500 usage of this resource made by the job. 4502 A monitoring application is able to copy this value to a 4503 suitable longer term storage for later processing as part of an 4504 accounting system. 4506 Since the agent MAY add attributes representing resources to 4507 this table while the job is waiting to be processed or being 4508 processed, which can be a long time before any of the resources 4509 are actually used, the agent SHALL set the value of the 4510 jmAttributeValueAsInteger object to 0 for resources that the 4511 job has not yet consumed. 4513 Attributes for which the concept of an integer value is 4514 meaningless, such as fileName(34), jobName, and 4515 processingMessage, do not have the 'INTEGER:' tag in the 4516 JmAttributeTypeTC definition and so an agent SHALL always 4517 return a value of '-1' to indicate 'other' for the value of the 4518 jmAttributeValueAsInteger object for these attributes. 4520 For attributes which do have the 'INTEGER:' tag in the 4521 JmAttributeTypeTC definition, if the integer value is not (yet) 4522 known, the agent either (1) SHALL not materialize the row in 4523 the jmAttributeTable until the value is known or (2) SHALL 4524 return a '-2' to represent an 'unknown' counting integer value, 4525 a '0' to represent an 'unknown' index value, and a '2' to 4526 represent an 'unknown(2)' enum value." 4527 DEFVAL { -2 } -- default value is unknown(-2) 4528 ::= { jmAttributeEntry 3 } 4530 jmAttributeValueAsOctets OBJECT-TYPE 4531 SYNTAX OCTET STRING(SIZE(0..63)) 4532 MAX-ACCESS read-only 4533 STATUS current 4534 DESCRIPTION 4535 "The octet string value of the attribute. The value of the 4536 attribute SHALL be represented as an OCTET STRING if the enum 4537 description in the JmAttributeTypeTC textual-convention 4538 definition has the tag: 'OCTETS:'. 4540 Depending on the enum definition, this object value MAY be a 4541 coded character set string (text), such as 'JmUTF8StringTC', or 4542 a binary octet string, such as 'DateAndTime'. 4544 Attributes for which the concept of an octet string value is 4545 meaningless, such as pagesCompleted, do not have the tag 4546 'OCTETS:' in the JmAttributeTypeTC definition and so the agent 4547 SHALL always return a zero length string for the value of the 4548 jmAttributeValueAsOctets object. 4550 For attributes which do have the 'OCTETS:' tag in the 4551 JmAttributeTypeTC definition, if the OCTET STRING value is not 4552 (yet) known, the agent either SHALL not materialize the row in 4553 the jmAttributeTable until the value is known or SHALL return a 4554 zero-length string." 4555 DEFVAL { ''H } -- empty string 4556 ::= { jmAttributeEntry 4 } 4558 -- Notifications and Trapping 4559 -- Reserved for the future 4561 jobmonMIBNotifications OBJECT IDENTIFIER ::= { jobmonMIB 2 } 4563 -- Conformance Information 4565 jmMIBConformance OBJECT IDENTIFIER ::= { jobmonMIB 3 } 4567 -- compliance statements 4568 jmMIBCompliance MODULE-COMPLIANCE 4569 STATUS current 4570 DESCRIPTION 4571 "The compliance statement for agents that implement the 4572 job monitoring MIB." 4573 MODULE -- this module 4574 MANDATORY-GROUPS { 4575 jmGeneralGroup, jmJobIDGroup, jmJobGroup, jmAttributeGroup } 4577 OBJECT jmGeneralJobSetName 4578 SYNTAX JmUTF8StringTC (SIZE(0..8)) 4579 DESCRIPTION 4580 "Only 8 octets maximum string length NEED be supported by the 4581 agent." 4583 OBJECT jmJobOwner 4584 SYNTAX JmJobStringTC (SIZE(0..16)) 4585 DESCRIPTION 4586 "Only 16 octets maximum string length NEED be supported by the 4587 agent." 4589 -- There are no CONDITIONALLY MANDATORY or OPTIONAL groups. 4591 ::= { jmMIBConformance 1 } 4593 jmMIBGroups OBJECT IDENTIFIER ::= { jmMIBConformance 2 } 4595 jmGeneralGroup OBJECT-GROUP 4596 OBJECTS { 4597 jmGeneralNumberOfActiveJobs, jmGeneralOldestActiveJobIndex, 4598 jmGeneralNewestActiveJobIndex, jmGeneralJobPersistence, 4599 jmGeneralAttributePersistence, jmGeneralJobSetName} 4600 STATUS current 4601 DESCRIPTION 4602 "The general group." 4603 ::= { jmMIBGroups 1 } 4605 jmJobIDGroup OBJECT-GROUP 4606 OBJECTS { 4607 jmJobIDJobSetIndex, jmJobIDJobIndex } 4608 STATUS current 4609 DESCRIPTION 4610 "The job ID group." 4611 ::= { jmMIBGroups 2 } 4613 jmJobGroup OBJECT-GROUP 4614 OBJECTS { 4615 jmJobState, jmJobStateReasons1, jmNumberOfInterveningJobs, 4616 jmJobKOctetsPerCopyRequested, jmJobKOctetsProcessed, 4617 jmJobImpressionsPerCopyRequested, jmJobImpressionsCompleted, 4618 jmJobOwner } 4619 STATUS current 4620 DESCRIPTION 4621 "The job group." 4622 ::= { jmMIBGroups 3 } 4624 jmAttributeGroup OBJECT-GROUP 4625 OBJECTS { 4626 jmAttributeValueAsInteger, jmAttributeValueAsOctets } 4627 STATUS current 4628 DESCRIPTION 4629 "The attribute group." 4630 ::= { jmMIBGroups 4 } 4632 END 4633 5. Appendix A - Implementing the Job Life Cycle 4635 The job object has well-defined states and client operations that 4636 affect the transition between the job states. Internal server and 4637 device actions also affect the transitions of the job between the job 4638 states. These states and transitions are referred to as the job's life 4639 cycle. 4641 Not all implementations of job submission protocols have all of the 4642 states of the job model specified here. The job model specified here 4643 is intended to be a superset of most implementations. It is the 4644 purpose of the agent to map the particular implementation's job life 4645 cycle onto the one specified here. The agent MAY omit any states not 4646 implemented. Only the processing and completed states are required to 4647 be implemented by an agent. However, a conforming management 4648 application SHALL be prepared to accept any of the states in the job 4649 life cycle specified here, so that the management application can 4650 interoperate with any conforming agent. 4652 The job states are intended to be user visible. The agent SHALL make 4653 these states visible in the MIB, but only for the subset of job states 4654 that the implementation has. Some implementations MAY need to have 4655 sub-states of these user-visible states. The jmJobStateReasons1 object 4656 and the jobStateReasonsN (N=2..4) attributes can be used to represent 4657 the sub-states of the jobs. 4659 Job states are intended to last a user-visible length of time in most 4660 implementations. However, some jobs may pass through some states in 4661 zero time in some situations and/or in some implementations. 4663 The job model does not specify how accounting and auditing is 4664 implemented, except to assume that accounting and auditing logs are 4665 separate from the job life cycle and last longer than job entries in 4666 the MIB. Jobs in the completed, aborted, or canceled states are not 4667 logs, since jobs in these states are accessible via SNMP protocol 4668 operations and SHALL be removed from the Job Monitoring MIB tables 4669 after a site-settable or implementation-defined period of time. An 4670 accounting application MAY copy accounting information incrementally to 4671 an accounting log as a job processes, or MAY be copied while the job is 4672 in the canceled, aborted, or completed states, depending on 4673 implementation. The same is true for auditing logs. 4675 The jmJobState object specifies the standard job states. The normal 4676 job state transitions are shown in the state transition diagram 4677 presented in Table 1. 4679 6. APPENDIX B - Support of Job Submission Protocols 4681 A companion PWG document, entitled "Job Submission Protocol Mapping 4682 Recommendations for the Job Monitoring MIB" [protomap] contains the 4683 recommended usage of each of the objects and attributes in this MIB 4684 with a number of job submission protocols. In particular, which job 4685 submission ID format should be used is indicated for each job 4686 submission protocol. 4688 Some job submission protocols have support for the client to specify a 4689 job submission ID. A second approach is to enhance the document format 4690 to embed the job submission ID in the document data. This second 4691 approach is independent of the job submission protocol. This appendix 4692 lists some examples of these approaches. 4694 Some PJL implementations wrap a banner page as a PJL job around a job 4695 submitted by a client. If this results in multiple job submission IDs, 4696 the agent SHALL create multiple jmJobIDEntry rows in the jmJobIDTable 4697 that each point to the same job entry in the job tables. See the 4698 specification of the jmJobIDEntry. 4700 7. References 4702 [char-set-policy] Harald Avelstrand, "IETF Policy on Character Sets and 4703 Language", June 1997. Latest draft: 4706 [GB2312] GB 2312-1980, "Chinese People's Republic of China (PRC) mixed 4707 one byte and two byte coded character set" 4709 [hr-mib] P. Grillo, S. Waldbusser, "Host Resources MIB", RFC 1514, 4710 September 1993 4712 [iana] J. Reynolds, and J. Postel, "Assigned Numbers", STD 2, RFC 1700, 4713 ISI, October 1994. 4715 [IANA-charsets] Coded Character Sets registered by IANA and assigned an 4716 enum value for use in the CodedCharSet textual convention imported from 4717 the Printer MIB. See ftp://ftp.isi.edu/in- 4718 notes/iana/assignments/character-sets 4720 [iana-media-types] IANA Registration of MIME media types (MIME content 4721 types/subtypes). See ftp://ftp.isi.edu/in-notes/iana/assignments/ 4723 [ISO-639] ISO 639:1988 (E/F) - Code for Representation of names of 4724 languages - The International Organization for Standardization, 1st 4725 edition, 1988. 4727 [ISO 646] ISO/IEC 646:1991, "Information technology -- ISO 7-bit coded 4728 character set for information interchange", JTC1/SC2. 4730 [ISO 8859] ISO/IEC 8859-1:1987, "Information technology -- 8-bit single 4731 byte coded graphic character sets - Part 1: Latin alphabet No. 1, 4732 JTC1/SC2." 4734 [ISO 2022] ISO/IEC 2022:1994 - "Information technology -- Character 4735 code structure and extension techniques", JTC1/SC2. 4737 [ISO-3166] ISO 3166:1988 (E/F) - Codes for representation of names of 4738 countries - The International Organization for Standardization, 3rd 4739 edition, 1988-08-15." 4741 [ISO-10646] ISO/IEC 10646-1:1993, "Information technology -- Universal 4742 Multiple-Octet Coded Character Set (UCS) - Part 1: Architecture and 4743 Basic Multilingual Plane, JTC1/SC2. 4745 [iso-dpa] ISO/IEC 10175 Document Printing Application (DPA). See 4746 ftp://ftp.pwg.org/pub/pwg/dpa/ 4748 [ipp-model] Internet Printing Protocol/1.0: Model and Semantics, work 4749 in progress on the IETF standards track. See draft-ietf-ipp-model- 4750 09.txt. See also http://www.pwg.org/ipp/index.html 4752 [JIS X0208] JIS X0208-1990, "Japanese two byte coded character set." 4754 [mib-II] MIB-II, RFC 1213. 4756 [print-mib] Smith, R., Wright, F., Hastings, T., Zilles, S. and 4757 Gyllenskog, J., "Printer MIB", RFC 1759, proposed IETF standard, March 4758 1995. See also [print-mib-draft]. 4760 [print-mib-draft] Turner, R., "Printer MIB", work in progress, on the 4761 standards track as a draft standard: , October 15, 1997. 4764 [protomap] Bergman, R., "Job Submission Protocol Mapping 4765 Recommendations for the Job Monitoring MIB," work in progress as an 4766 informational RFC. See , 4767 January 12, 1998. 4769 [pwg] The Printer Working Group is a printer industry consortium open 4770 to any individuals. For more information, access the PWG web page: 4771 http://www.pwg.org 4773 [req-words] S. Bradner, "Keywords for use in RFCs to Indicate 4774 Requirement Levels", RFC 2119, March 1997. 4776 [rfc 1738] Berners-Lee, T., Masinter, L., McCahill, M., "Uniform 4777 Resource Locators (URL)", RFC 1738, December 1994. 4779 [RFC-1766] Avelstrand, H., "Tags for the Identification of Languages", 4780 RFC 1766, March 1995. 4782 [rfc 2130] C. Weider, C. Preston, K. Simonsen, H. Alvestrand, R. 4783 Atkinson, M. Crispin, and P. Svanberg, "The Report of the IAB Character 4784 Set Workshop held 29 Feb-1 March, 1997", April 1997, RFC 2130. 4786 [SMIv2-SMI] J. Case, et al. .Structure of Management Information for 4787 Version 2 of the Simple Network Management Protocol (SNMPv2)., RFC 4788 1902, January 1996. 4790 [SMIv2-TC] J. Case, et al. .Textual Conventions for Version 2 of the 4791 Simple Network Management Protocol (SNMPv2)., RFC 1903, January 1996. 4793 [tipsi] IEEE 1284.1, Transport-independent Printer System Interface 4794 (TIPSI). 4796 [URI-spec] Berners-Lee, T., Masinter, L., McCahill, M. , "Uniform 4797 Resource Locators (URL)", RFC 1738, December, 1994. 4799 [US-ASCII] Coded Character Set - 7-bit American Standard Code for 4800 Information Interchange, ANSI X3.4-1986. 4802 [UTF-8] F. Yergeau, "UTF-8, a transformation format of Unicode and ISO 4803 10646", RFC 2044, October 1996. 4805 8. Author's Addresses 4806 Ron Bergman 4807 Dataproducts Corp. 4808 1757 Tapo Canyon Road 4809 Simi Valley, CA 93063-3394 4811 Phone: 805-578-4421 4812 Fax: 805-578-4001 4813 Email: rbergman@dpc.com 4815 Tom Hastings 4816 Xerox Corporation, ESAE-231 4817 701 S. Aviation Blvd. 4818 El Segundo, CA 90245 4820 Phone: 310-333-6413 4821 Fax: 310-333-5514 4822 EMail: hastings@cp10.es.xerox.com 4824 Scott A. Isaacson 4825 Novell, Inc. 4826 122 E 1700 S 4827 Provo, UT 84606 4829 Phone: 801-861-7366 4830 Fax: 801-861-4025 4831 EMail: scott_isaacson@novell.com 4833 Harry Lewis 4834 IBM Corporation 4835 6300 Diagonal Hwy 4836 Boulder, CO 80301 4838 Phone: (303) 924-5337 4839 Fax: 4840 Email: harryl@us.ibm.com 4842 Send questions and comments to the Printer Working Group (PWG) 4843 using the Job Monitoring Project (JMP) Mailing List: jmp@pwg.org 4845 To learn how to subscribe, send email to: jmp-request@pwg.org 4847 Implementers of this specification are encouraged to join the jmp 4848 mailing list in order to participate in discussions on any 4849 clarifications needed and registration proposals for additional 4850 attributes and values being reviewed in order to achieve consensus. 4852 For further information, access the PWG web page under "JMP": 4854 http://www.pwg.org/ 4856 Other Participants: 4857 Chuck Adams - Tektronix 4858 Jeff Barnett - IBM 4859 Keith Carter, IBM Corporation 4860 Jeff Copeland - QMS 4861 Andy Davidson - Tektronix 4862 Roger deBry - IBM 4863 Mabry Dozier - QMS 4864 Lee Ferrel - Canon 4865 Steve Gebert - IBM 4866 Robert Herriot - Sun Microsystems Inc. 4867 Shige Kanemitsu - Kyocera 4868 David Kellerman - Northlake Software 4869 Rick Landau - Digital 4870 Pete Loya - HP 4871 Ray Lutz - Cognisys 4872 Jay Martin - Underscore 4873 Mike MacKay, Novell, Inc. 4874 Stan McConnell - Xerox 4875 Carl-Uno Manros, Xerox, Corp. 4876 Pat Nogay - IBM 4877 Bob Pentecost - HP 4878 Rob Rhoads - Intel 4879 David Roach - Unisys 4880 Stuart Rowley - Kyocera 4881 Hiroyuki Sato - Canon 4882 Bob Setterbo - Adobe 4883 Gail Songer, EFI 4884 Mike Timperman - Lexmark 4885 Randy Turner - Sharp 4886 William Wagner - Digital Products 4887 Jim Walker - Dazel 4888 Chris Wellens - Interworking Labs 4889 Rob Whittle - Novell 4890 Don Wright - Lexmark 4891 Lloyd Young - Lexmark 4892 Atsushi Yuki - Kyocera 4893 Peter Zehler, Xerox, Corp. 4895 9. INDEX 4897 This index includes the textual conventions, the objects, and the 4898 attributes. Textual conventions all start with the prefix: "JM" and 4899 end with the suffix: "TC". Objects all starts with the prefix: "jm" 4900 followed by the group name. Attributes are identified with enums, and 4901 so start with any lower case letter and have no special prefix. 4903 colorantConsumed 68 4904 colorantRequested 67 4905 deviceNameRequested 57 4906 documentCopiesCompleted 62 4907 documentCopiesRequested 62 4908 documentFormat 59 4909 documentFormatIndex 58 4910 documentName 58 4911 fileName 58 4912 finishing 61 4913 fullColorImpressionsCompleted 64 4914 highlightColorImpressionsCompleted 65 4915 impressionsCompletedCurrentCopy 64 4916 impressionsInterpreted 64 4917 impressionsSentToDevice 64 4918 impressionsSpooled 64 4919 jmAttributeInstanceIndex 98 4920 jmAttributeTypeIndex 98 4921 JmAttributeTypeTC 51 4922 jmAttributeValueAsInteger 99 4923 jmAttributeValueAsOctets 100 4924 JmBooleanTC 41 4925 JmFinishingTC 39 4926 jmGeneralAttributePersistence 85 4927 jmGeneralJobPersistence 85 4928 jmGeneralJobSetIndex 83 4929 jmGeneralJobSetName 86 4930 jmGeneralNewestActiveJobIndex 84 4931 jmGeneralNumberOfActiveJobs 83 4932 jmGeneralOldestActiveJobIndex 84 4933 jmJobIDJobIndex 89 4934 jmJobIDJobSetIndex 89 4935 jmJobImpressionsCompleted 94 4936 jmJobImpressionsPerCopyRequested 94 4937 jmJobIndex 91 4938 jmJobKOctetsPerCopyRequested 93 4939 jmJobKOctetsProcessed 93 4940 jmJobOwner 95 4941 JmJobServiceTypesTC 72 4942 JmJobSourcePlatformTypeTC 38 4943 jmJobState 91 4944 jmJobStateReasons1 92 4945 JmJobStateReasons1TC 73 4946 JmJobStateReasons2TC 77 4947 JmJobStateReasons3TC 81 4948 JmJobStateReasons4TC 81 4949 JmJobStateTC 48 4950 JmJobStringTC 37 4951 jmJobSubmissionID 88 4952 JmJobSubmissionIDTypeTC 43 4953 JmMediumTypeTC 41 4954 JmNaturalLanguageTagTC 37 4955 jmNumberOfInterveningJobs 92 4956 JmPrinterResolutionTC 40 4957 JmPrintQualityTC 40 4958 JmTimeStampTC 38 4959 JmTonerEconomyTC 41 4960 JmUTF8StringTC 37 4961 jobAccountName 54 4962 jobCodedCharSet 53 4963 jobCollationType 63 4964 jobComment 58 4965 jobCompletionTime 69 4966 jobCopiesCompleted 62 4967 jobCopiesRequested 62 4968 jobHold 60 4969 jobHoldUntil 60 4970 jobKOctetsTransferred 63 4971 jobName 55 4972 jobNaturalLanguageTag 54 4973 jobOriginatingHost 57 4974 jobPriority 59 4975 jobProcessAfterDateAndTime 60 4976 jobProcessingCPUTime 69 4977 jobServiceTypes 56 4978 jobSourceChannelIndex 56 4979 jobSourcePlatformType 56 4980 jobStartedBeingHeldTime 69 4981 jobStartedProcessingTime 69 4982 jobStateReasons2 52 4983 jobStateReasons3 52 4984 jobStateReasons4 52 4985 jobSubmissionTime 68 4986 jobSubmissionToServerTime 68 4987 jobURI 54 4988 mediumConsumed 67 4989 mediumRequested 67 4990 numberOfDocuments 57 4991 other 51 4992 outputBin 60 4993 pagesCompleted 65 4994 pagesCompletedCurrentCopy 66 4995 pagesRequested 65 4996 physicalDevice 57 4997 printerResolutionRequested 61 4998 printerResolutionUsed 61 4999 printQualityRequested 61 5000 printQualityUsed 61 5001 processingMessage 52 5002 processingMessageNaturalLangTag 53 5003 queueNameRequested 57 5004 serverAssignedJobName 55 5005 sheetCompletedCopyNumber 63 5006 sheetCompletedDocumentNumber 63 5007 sheetsCompleted 66 5008 sheetsCompletedCurrentCopy 66 5009 sheetsRequested 66 5010 sides 61 5011 submittingApplicationName 56 5012 submittingServerName 56 5013 tonerDensityRequested 61 5014 tonerDensityUsed 62 5015 tonerEcomonyRequested 61 5016 tonerEcomonyUsed 61