idnits 2.17.1 draft-ietf-printmib-job-monitor-00.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-27) 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 76 longer pages, the longest (page 73) being 62 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 391 has weird spacing: '...ure for monit...' == Line 463 has weird spacing: '...ication is th...' == Line 760 has weird spacing: '...nt each condi...' == Line 975 has weird spacing: '...tion of jmJob...' == Line 1614 has weird spacing: '...tention devi...' == (8 more instances...) -- 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 (Oct 24, 1997) is 9682 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Missing reference section? '2' on line 3879 looks like a reference -- Missing reference section? '1' on line 3875 looks like a reference -- Missing reference section? '4' on line 3890 looks like a reference -- Missing reference section? '5' on line 3892 looks like a reference -- Missing reference section? '6' on line 3894 looks like a reference -- Missing reference section? '3' on line 3882 looks like a reference Summary: 6 errors (**), 0 flaws (~~), 8 warnings (==), 9 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Job Monitoring MIB, V0.81 April 24, 1997 3 INTERNET-DRAFT 4 Ron Bergman 5 Dataproducts Corp. 6 Tom Hastings 7 Xerox Corporation 8 Scott Isaacson 9 Novell, Inc. 10 Harry Lewis 11 IBM Corp. 12 April 1997 14 Job Monitoring MIB - V0.81 15 16 Expires Oct 24, 1997 18 Status of this Memo 20 This document is an Internet-Draft. Internet-Drafts are working 21 documents of the Internet Engineering Task Force (IETF), its areas, 22 and its working groups. Note that other groups may also distribute 23 working documents as Internet-Drafts. 25 Internet-Drafts are draft documents valid for a maximum of six 26 months and may be updated, replaced, or obsoleted by other 27 documents at any time. It is inappropriate to use Internet-Drafts 28 as reference material or to cite them other than as "work in 29 progress." 31 To learn the current status of any Internet-Draft, please check the 32 "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow 33 Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), 34 munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or 35 ftp.isi.edu (US West Coast). 36 Abstract 38 This Internet-Draft specifies a set of 13 SNMP MIB objects for (1) 39 monitoring the status and progress of print jobs (2) obtaining 40 resource requirements before a job is processed, (3) monitoring 41 resource consumption while a job is being processed and (4) 42 collecting resource accounting data after the completion of a job. 43 This MIB is intended to be implemented (1) in a printer or (2) in a 44 server that supports one or more printers. Use of the object set 45 is not limited to printing. However, support for services other 46 than printing is outside the scope of this Job Monitoring MIB. 47 Future extensions to this MIB may include, but are not limited to, 48 fax machines and scanners. 50 Job Monitoring MIB, V0.81 April 24, 1997 52 TABLE OF CONTENTS 54 1. INTRODUCTION 6 56 1.1 Types of Information in the MIB 6 58 1.2 Types of Job Monitoring Applications 7 60 2. TERMINOLOGY AND JOB MODEL 8 62 3. SYSTEM CONFIGURATIONS FOR THE JOB MONITORING MIB 10 64 3.1 Configuration 1 - client-printer 11 66 3.2 Configuration 2 - client-server-printer - agent in the server 11 68 3.3 Configuration 3 - client-server-printer - client monitors printer 69 agent and server 13 71 4. CONFORMANCE CONSIDERATIONS 14 73 4.1 Conformance Terminology 14 75 4.2 Agent Conformance Requirements 14 77 4.3 Job Monitoring Application Conformance Requirements 15 79 5. JOB IDENTIFICATION 15 81 6. INTERNATIONALIZATION CONSIDERATIONS 16 83 7. IANA CONSIDERATIONS 17 85 7.1 IANA Registration of enums 17 87 7.2 IANA Registration of type 2 bit values 18 89 7.3 IANA Registration of Job Submission Id Formats 18 91 8. SECURITY CONSIDERATIONS 18 93 8.1 Read-Write objects 18 95 8.2 Read-Only Objects In Other User's Jobs 19 97 9. RETURNING OBJECTS WITH NO VALUE IN MANDATORY GROUPS 19 99 10. NOTIFICATION AND TRAPS 19 101 11. MIB SPECIFICATION 19 103 Textual conventions for this MIB module 20 104 JmTimeStampTC - simple time in seconds 20 105 JmJobSourcePlatformTypeTC - operating system platform definitions21 106 Job Monitoring MIB, V0.81 April 24, 1997 108 JmFinishingTC - device finishing definitions 21 109 JmPrintQualityTC - print quality 23 110 JmTonerEconomyTC - toner economy setting 23 111 JmMediumTypeTC - medium type definitions 23 112 JmJobStateTC - job state definitions 24 113 JmAttributeTypeTC - attribute type definitions 27 114 other 29 115 unknown 30 116 Job State attributes 30 117 jobState (mandatory) 30 118 jobStateAssociatedValue 30 119 jobStateReasons1 31 120 jobStateReasons2 31 121 jobStateReasons3 31 122 jobStateReasons4 31 123 numberOfInterveningJobs (mandatory) 32 124 deviceAlertCode (mandatory) 32 125 processingMessage 32 126 Job Identification attributes 32 127 serverAssignedJobName 32 128 jobName 32 129 jobServiceTypes 33 130 jobOwner 33 131 jobAccountName 33 132 jobSourceChannelIndex 34 133 jobSourcePlatformType 34 134 submittingServerName 34 135 submittingApplicationName 34 136 deviceNameRequested 34 137 queueNameRequested 34 138 physicalDeviceIndex 35 139 physicalDeviceName 35 140 numberOfDocuments 35 141 fileName 35 142 documentName 35 143 jobComment 35 144 documentFormatIndex 35 145 documentFormatType 36 146 Job Parameter attributes 36 147 jobPriority 36 148 jobProcessAfterDateAndTime 36 149 jobHoldUntil 37 150 outputBinIndex 37 151 outputBinName (mandatory) 37 152 sides 37 153 finishing 37 154 Image Quality attributes (requested and used) 37 155 printQualityRequested 37 156 printQualityUsed 37 157 tonerEcomonyRequested 38 158 tonerEcomonyUsed 38 159 tonerDensityRequested 38 160 tonerDensityUsed 38 161 Job Progress attributes (requested and consumed) 38 162 jobCopiesRequested 38 163 Job Monitoring MIB, V0.81 April 24, 1997 165 jobCopiesCompleted 38 166 documentCopiesRequested 38 167 documentCopiesCompleted 38 168 jobKOctetsRequested (mandatory) 39 169 jobKOctetsTransferred (mandatory) 39 170 jobKOctetsCompleted (mandatory) 40 171 Impression attributes (requested and consumed) 40 172 impressionsSpooled 40 173 impressionsSentToDevice 41 174 impressionsInterpreted 41 175 impressionsRequested (mandatory) 41 176 impressionsCompleted (mandatory) 41 177 impressionsCompletedCurrentCopy 41 178 Page attributes (requested and consumed) 41 179 pagesRequested 41 180 pagesCompleted 41 181 pagesCompletedCurrentCopy 41 182 Sheet attributes (requested and consumed) 42 183 sheetsRequested 42 184 sheetsCompleted 42 185 sheetsCompletedCurrentCopy 42 186 Resource attributes (requested and consumed) 42 187 mediumRequestedType 42 188 mediumRequestedName 42 189 mediumConsumedName 42 190 colorantRequestedIndex 42 191 colorantRequestedName 43 192 colorantConsumedIndex 43 193 colorantConsumedName 43 194 Time attributes (set by server or device) 43 195 jobSubmissionToServerDateAndTime 43 196 jobSubmissionToDeviceDateAndTime 43 197 jobSubmissionToDeviceTimeStamp 43 198 jobStartedBeingHeldTimeStamp 43 199 jobStartedProcessingDateAndTime 43 200 jobStartedProcessingTimeStamp 44 201 jobCompletedDateAndTime 44 202 jobCompletedTimeStamp 44 203 jobProcessingCPUTime 44 204 JmJobServiceTypesTC - bit encoded job service type definitions 44 205 JmJobStateReasons1TC - additional information about job states 45 206 JmJobStateReasons2TC - More additional information about job states 207 48 208 JmJobStateReasons3TC - More additional information about job states 209 53 210 JmJobStateReasons4TC - More additional information about job states 211 54 213 The General Group (Mandatory) 56 214 jmGeneralNumberOfActiveJobs 56 215 jmGeneralOldestActiveJobIndex 57 216 jmGeneralNewestActiveJobIndex 57 217 jmGeneralJobPersistence 58 218 jmGeneralAttributePersistence 58 219 jmGeneralJobSetName 58 220 Job Monitoring MIB, V0.81 April 24, 1997 222 The Job ID Group (Mandatory) 59 223 jmJobSubmissionIDIndex 60 224 jmJobSetIndex 61 225 jmJobIndex 61 227 The Job State Group (Mandatory) 61 228 jmJobState 62 229 jmJobStateKOctetsCompleted 63 230 jmJobStateImpressionsCompleted 63 231 jmJobStateAssociatedValue 63 233 The Attribute Group (Mandatory) 64 234 jmAttributeTypeIndex 65 235 jmAttributeInstanceIndex 66 236 jmAttributeValueAsInteger 66 237 jmAttributeValueAsOctets 67 239 12. JOB LIFE CYCLE 70 241 13. BIBLIOGRAPHY 71 243 14. AUTHOR'S ADDRESSES 71 245 15. INDEX 74 246 Job Monitoring MIB, V0.81 April 24, 1997 248 Job Monitoring MIB 250 1. Introduction 252 The Job Monitoring MIB consists of a 5-object General Group, a 2-object 253 Job Submission ID Group, a 4-object Job State Group, and a 2-object 254 Attribute Group. Each group is a table. The General Group contains 255 general information that applies to all jobs in a job set. The Job 256 Submission ID table maps the job submission ID that the client uses to 257 identify a job to the jmJobIndex that the Job Monitoring Agent uses to 258 identify jobs in the Job State and Attribute tables. The Job State 259 table contains the job state and copies of three salient attributes for 260 each job's current state. The Attribute table consists of multiple 261 entries per job that specify (1) job and document identification and 262 parameters, (2) requested resources, and (3) consumed resources during 263 and after job processing/printing. The Job Monitoring MIB is intended 264 to be instrumented by an agent within a printer or the first server 265 closest to the printer, where the printer is either directly connected 266 to the server only or the printer does not contain the job monitoring 267 MIB agent. It is recommended that implementations place the SNMP agent 268 as close as possible to the processing of the print job. This MIB 269 applies to printers with and without spooling capabilities. This MIB is 270 designed to be compatible with most current commonly-used job submission 271 protocols. In most environments that support high function job 272 submission/job control protocols, like ISO DPA[2], those protocols would 273 be used to monitor and manage print jobs rather than using the Job 274 Monitoring MIB. 276 1.1 Types of Information in the MIB 278 The job MIB is intended to provide the following information for the 279 indicated Role Models in the Printer MIB[1] (Refer to RFC 1759, Appendix 280 D - Roles of Users). 282 User: 284 Provide the ability to identify the least busy printer. The user 285 will be able to determine the number and size of jobs waiting for 286 each printer. No attempt is made to actually predict the length 287 of time that jobs will take. 289 Provide the ability to identify the current status of the job 290 (user queries). 292 Provide a timely notification that the job has completed and where 293 it can be found. 295 Provide error and diagnostic information for jobs that did not 296 successfully complete. 298 Operator: 300 Provide a presentation of the state of all the jobs in the print 301 system. 303 Job Monitoring MIB, V0.81 April 24, 1997 305 Provide the ability to identify the user that submitted the print 306 job. 308 Provide the ability to identify the resources required by each 309 job. 311 Provide the ability to define which physical printers are 312 candidates for the print job. 314 Provide some idea of how long each job will take. However, exact 315 estimates of time to process a job is not being attempted. 316 Instead, objects are included that allow the operator to be able 317 to make gross estimates. 319 Capacity Planner: 321 Provide the ability to determine printer utilization as a function 322 of time. 324 Provide the ability to determine how long jobs wait before 325 starting to print. 327 Accountant: 329 Provide information to allow the creation of a record of resources 330 consumed and printer usage data for charging users or groups for 331 resources consumed. 333 Provide information to allow the prediction of consumable usage 334 and resource need. 336 The MIB supports printers that can contain more than one job at a time, 337 but still be usable for low end printers that only contain a single job 338 at a time. In particular, the MIB supports the needs of Windows and 339 other PC environments for managing low-end networked devices without 340 unnecessary overhead or complexity, while also providing for higher end 341 systems and devices. 343 1.2 Types of Job Monitoring Applications 345 The Job Monitoring MIB is designed for the following types of monitoring 346 applications: 348 1.monitor a single job starting when the job is submitted and 349 finishing a defined period after the job completes. The Job 350 Submission ID table provides the map to find the specific job to be 351 monitored. 353 2.monitor all active of the jobs in a queue, which is generalized to 354 a job set. End users may use such a program when selecting a least 355 busy printer, so the MIB is designed for such a program to start up 356 quickly and find the information needed quickly without having to 357 read all (completed) jobs in order to find the active jobs. System 358 operators may also use such a program in which case it would be 359 running for a long period of time and may also be interested in the 360 Job Monitoring MIB, V0.81 April 24, 1997 362 jobs that have completed. Finally such a program may be co-located 363 with the printer to provide an enhanced console capability. 365 3.collect resource usage for accounting or system utilization 366 purposes that copy the completed job statistics to an accounting 367 system. It is recognized that depending on accounting programs to 368 copy MIB data during the job-retention period is somewhat 369 unreliable, since the accounting program may not be running (or may 370 have crashed). Such a program is expected to keep a shadow copy of 371 the entire Job Attribute table including canceled and completed 372 jobs which the program updates on each polling cycle. Such a 373 program polls at the rate of the persistence of the Attribute 374 table. The design is not optimized to help such an application 375 determine which jobs are completed or canceled. Instead, the 376 application shall query each job that the application's shadow copy 377 shows was not complete or canceled at the previous poll cycle to 378 see if it is now complete or canceled, plus any new jobs that have 379 been submitted. 381 The MIB provides a set of objects that represent a compatible subset of 382 job and document attributes of the ISO DPA standard[2], so that 383 coherence is maintained between the two protocols and information 384 presented to end users and system operators. However, the job 385 monitoring MIB is intended to be used with printers that implement other 386 job submitting and management protocols, such as IEEE 1284.1 (TIPSI)[4], 387 as well as with ones that do implement ISO DPA. So nothing in the job 388 monitoring MIB shall require implementation of the ISO DPA protocol. 390 The MIB is designed so that an additional MIB(s) can be specified in the 391 future for monitoring multi-function (scan, FAX, copy) jobs as an 392 augmentation to this MIB. 394 2. Terminology and Job Model 396 This section defines the terms that are used in this specification and 397 the general model for jobs. 399 NOTE - Existing systems use conflicting terms, so these terms are 400 drawn from the ISO 10175 Document Printing Application (DPA) 401 standard[2]. For example, PostScript systems use the term session for 402 what we call a job in this specification and the term job to mean what 403 we call a document in this paper. PJL systems use the term .. 405 A job is a unit of work whose results are expected together without 406 interjection of unrelated results. A client is able to specify job 407 instructions that apply to the job as a whole. Proscriptive 408 instructions specify how, when, and where the job is to be printed. 409 Descriptive instructions describe the job. A job contains one or more 410 documents. 412 A job set is a set of jobs that are queued and scheduled together 413 according to a specified scheduling algorithm for a specified device or 414 set of devices. For implementations that embed the SNMP agent in the 415 device, the MIB job set normally represents all the jobs known to the 416 device, so that the implementation only implements a single job set 417 Job Monitoring MIB, V0.81 April 24, 1997 419 which may be identified with a hard-coded value 1. If the SNMP agent is 420 implemented in a server that controls one or more devices, each MIB job 421 set represents a job queue for (1) a specific device or (2) set of 422 devices, if the server uses a single queue to load balance between 423 several devices. Each job set is disjoint; no job shall be represented 424 in more than one MIB job set. 426 A document is a sub-section within a job. A document contains print 427 data and document instructions that apply to just the document. The 428 client is able to specify document instructions separately for each 429 document in a job. Proscriptive instructions specify how the document 430 is to be processed and printed by the server. Descriptive instructions 431 describe the document. Server implementation of more than one document 432 per job is optional. 434 A client is the network entity that end users use to submit jobs to 435 spoolers, servers, or printers and other devices, depending on the 436 configuration, using any job submission protocol. 438 A server is a network entity that accepts jobs from clients and in turn 439 submits the jobs to printers and other devices. A server may be a 440 printer supervisor control program, or a print spooler. 442 A device is a hardware entity that (1) interfaces to humans in human 443 perceptible means, such as produces marks on paper, scans marks on paper 444 to produce an electronic representations, or writes CD-ROMs or (2) 445 interfaces to a network, such as sends FAX data to another FAX device. 447 A printer is a device that puts marks on media. 449 A supervisor is a server that contains a control program that controls a 450 printer or other device. A supervisor is a client to the printer or 451 other device. 453 A spooler is a server that accepts jobs, spools the data, and decides 454 when and on which printer to print the job. A spooler is a client to a 455 printer or a printer supervisor, depending on implementation. 457 Spooling is the act of a device or server of (1) accepting jobs and (2) 458 writing the job's attributes and document data on to secondary storage. 460 Queuing is the act of a device or server of ordering (queuing) the jobs 461 for the purposes of scheduling the jobs to be processed. 463 A monitor or job monitoring application is the network entity that End 464 Users, System Operators, Accountants, Asset Managers, and Capacity 465 Planners use to monitor jobs using SNMP. A monitor may be either a 466 separate application or may be part of the client that also submits 467 jobs. 469 An agent is the network entity that accepts SNMP requests from a monitor 470 and implements the Job Monitoring MIB. 472 A proxy is an agent that acts as a concentrator for one or more other 473 agents by accepting SNMP operations on the behalf of one or more other 474 Job Monitoring MIB, V0.81 April 24, 1997 476 agents, forwarding them on to those other agents, gathering responses 477 from those other agents and returning them to the original requesting 478 monitor. 480 A user is a person that uses a client or a monitor. 482 An end user is a user that uses a client to submit a print job. 484 A system operator is a user that uses a monitor to monitor the system 485 and carries out tasks to keep the system running. 487 A system administrator is a user that specifies policy for the system. 489 A job instruction is an instruction specifying how, when, or where the 490 job is to be processed. Job instructions may be passed in the job 491 submission protocol or may be embedded in the document data or a 492 combination depending on the job submission protocol and implementation. 494 A document instruction is an instruction specifying how to process the 495 document. Document instructions may be passed in the job submission 496 protocol separate from the actual document data, or may be embedded in 497 the document data or a combination, depending on the job submission 498 protocol and implementation. 500 An SNMP information object is a name, value-pair that specifies an 501 action, a status, or a condition in an SNMP MIB. Objects are identified 502 in SNMP by an OBJECT IDENTIFIER. 504 An attribute is a name, value-pair that specifies an instruction, a 505 status, or a condition of a job or a document that has been submitted to 506 a server or device. A particular attribute need not be present in each 507 job instance. In other words, attributes are present in a job instance 508 only when there is a need to express the value, either because (1) the 509 client supplied a value in the job submission protocol, (2) the document 510 data contained an embedded attribute, or (3) the server or device 511 supplied a default value. An agent shall represent an attribute as an 512 entry (row) in the attribute table in this MIB in which entries are 513 present only when necessary. Attributes are identified in this MIB by 514 an enum.. 516 Job monitoring using SNMP is (1) identifying jobs within the serial 517 streams of data being processed by the server, printer or other devices, 518 (2) creating "rows" in the job table for each job, and (3) recording 519 information, known by the agent, about the processing of the job in that 520 "row". 522 Job accounting is recording what happens to the job during the 523 processing and printing of the job. 525 3. System Configurations for the Job Monitoring MIB 527 This section enumerates the three configurations for which the Job 528 Monitoring MIB is intended to be used. To simplify the pictures, the 529 devices are shown as printers. See Goals section. 531 Job Monitoring MIB, V0.81 April 24, 1997 533 The diagram in the Printer MIB[1] entitled: "One Printer's View of the 534 Network" is assumed for this MIB as well. Please refer to that diagram 535 to aid in understand the following system configurations. 537 3.1 Configuration 1 - client-printer 539 In the client-printer configuration, the client(s) submit jobs directly 540 to the printer, either by some direct connect, or by network connection. 541 The client-printer configuration can accommodate multiple job submitting 542 clients in either of two ways: 544 1.if each client relinquishes control of the Print Job Delivery 545 Channel after each job (or after a number of jobs) 547 2.if the printer supports more than one Print Job Delivery Channel 549 The job submitting client and/or monitoring application monitor jobs by 550 communicating directly with an agent that is part of the printer. The 551 agent in the printer shall keep the job in the Job Monitoring MIB as 552 long as the job is in the Printer, and longer in order to implement the 553 completed state in which monitoring programs can copy out the accounting 554 data from the Job Monitoring MIB. 556 all end-user ######## SNMP query 557 +-------+ +--------+ ---- job submission 558 |monitor| | client | 559 +---#---+ +--#--+--+ 560 # # | 561 # ############ | 562 # # | 563 +==+===#=#=+==+ | 564 | | agent | | | 565 | +-------+ | | 566 | PRINTER <--------+ 567 | | Print Job Delivery Channel 568 | | 569 +=============+ 571 Figure 1 - Configuration 1 - client-printer - agent in the printer 573 The Job Monitoring MIB is designed to support the following 574 relationships (not shown in Figure 1): 575 1.Multiple clients may submit jobs to a printer. 576 2.Multiple clients may monitor a printer. 577 3.Multiple monitors may monitor a printer. 578 4.A client may submit jobs to multiple printers. 579 5.A monitor may monitor multiple printers. 581 3.2 Configuration 2 - client-server-printer - agent in the server 583 In the client-server-printer configuration 2, the client(s) submit jobs 584 to an intermediate server by some network connection, not directly to 585 Job Monitoring MIB, V0.81 April 24, 1997 587 the printer. While configuration 2 is included, the design center for 588 this MIB is configurations 1 and 3, 590 The job submitting client and/or monitoring application monitor job by 591 communicating directly with: 593 1.a Job Monitoring MIB agent that is part of the server (or a 594 front for the server) 596 There is no SNMP Job Monitoring MIB agent in the printer in 597 configuration 2, at least that the client or monitor are aware. In this 598 configuration, the agent shall return the current values of the objects 599 in the Job Monitoring MIB both for jobs the server keeps and jobs that 600 the server has submitted to the printer. In configuration 2, the server 601 keeps a copy of the job during the time that the server has submitted 602 the job to the printer. Only some time after the printer completes the 603 job, shall the server remove the representation of the job from the Job 604 Monitoring MIB in the server. The agent need not access the printer, 605 except when a monitor queries the agent using an SNMP Get for an object 606 in the Job Monitoring MIB. Or the agent can subscribe to the 607 notification events that the printer generates and keep the Job 608 Monitoring MIB update to date. The agent in the server shall keep the 609 job in the Job Monitoring MIB as long as the job is in the Printer, and 610 longer in order to implement the completed state in which monitoring 611 programs can copy out the accounting data from the Job Monitoring MIB. 613 all end-user 614 +-------+ +----------+ 615 |monitor| | client | ######## SNMP query 616 +---+---# +---#----+-+ **** non-SNMP cntrl 617 # # | ---- job submission 618 # # | 619 # # | 620 #=====#=+==v==+ 621 | agent | | 622 +-------+ | 623 | server | 624 +----+-----+--+ 625 control * | 626 ********** | 627 * | 628 +========v====+ | 629 | | | 630 | | | 631 | PRINTER <---------+ 632 | | Print Job Delivery Channel 633 | | 634 +=============+ 636 Figure 2 - Configuration 2 - client-server-printer - agent in the server 638 The Job Monitoring MIB is designed to support the following 639 relationships (not shown in Figure 2): 640 1.Multiple clients may submit jobs to a server. 642 Job Monitoring MIB, V0.81 April 24, 1997 644 2.Multiple clients may monitor a server. 645 3.Multiple monitors may monitor a server. 646 4.A client may submit jobs to multiple servers. 647 5.A monitor may monitor multiple servers. 648 6.Multiple servers may submit jobs to a printer. 649 7.Multiple servers may control a printer. 651 3.3 Configuration 3 - client-server-printer - client monitors printer 652 agent and server 654 In the client-server-printer configuration 3, the client(s) submit jobs 655 to an intermediate server by some network connection, not directly to 656 the printer. 658 The job submitting client and/or monitoring application monitor jobs by 659 communicating directly with: 661 1.the server using some protocol to monitor jobs in the server 662 that does not contain the Job Monitoring MIB AND 664 2.a Job Monitoring MIB agent that is part of the printer to 665 monitor jobs after the server passes the jobs to the printer. 666 In such configurations, the server deletes its copy of the job 667 from the server after submitting the job to the printer usually 668 almost immediately (before the job does much processing, if 669 any). 671 There is no SNMP Job Monitoring MIB agent in the server in configuration 672 3, at least that the client or monitor are aware. In this 673 configuration, the agent (in the printer) shall keep the values of the 674 objects in the Job Monitoring MIB that the agent implements updated for 675 a job that the server has submitted to the printer. The agent shall 676 obtain information about the jobs submitted to the printer from the 677 server (either in the job submission protocol, in the document data, or 678 by direct query of the server), in order to populate some of the objects 679 the Job Monitoring MIB in the printer. The agent in the printer shall 680 keep the job in the Job Monitoring MIB as long as the job is in the 681 Printer, and longer in order to implement the completed state in which 682 monitoring programs can copy out the accounting data from the Job 683 Monitoring MIB. 685 all end-user 686 +-------+ +----------+ 687 |monitor| | client | ######## SNMP query 688 +---+---* +---*----+-+ **** non-SNMP query 689 # * * | ---- job submission 690 # * * | 691 # * * | 692 # *=====v====v==+ 693 # | | 694 # | server | 695 # | | 696 # +----#-----+--+ 697 # optional# | 698 # ########## | 699 Job Monitoring MIB, V0.81 April 24, 1997 701 # # | 702 +==+=v===v=+==+ | 703 | | agent | | | 704 | +-------+ | | 705 | PRINTER <---------+ 706 | | Print Job Delivery Channel 707 | | 708 +=============+ 710 Figure 3 - Configuration 3 - client-server-printer - client monitors 711 printer agent and server 713 The Job Monitoring MIB is designed to support the following 714 relationships (not shown in Figure 3): 715 1.Multiple clients may submit jobs to a server. 716 2.Multiple clients may monitor a server. 717 3.Multiple monitors may monitor a server. 718 4.A client may submit jobs to multiple servers. 719 5.A monitor may monitor multiple servers. 720 6.Multiple servers may submit jobs to a printer. 721 7.Multiple servers may control a printer. 723 4. Conformance Considerations 725 In order to achieve interoperability between job monitoring applications 726 and job monitoring agents, this specification includes the conformance 727 requirements for both monitoring applications and agents. 729 4.1 Conformance Terminology 731 This specification uses the verbs: "shall", "should", "may", and "need 732 not" to specify conformance requirements as follows: 734 . "shall": indicates an action that the subject of the sentence must 735 implement in order to claim conformance to this specification 737 . "may": indicates an action that the subject of the sentence does 738 not have to implement in order to claim conformance to this 739 specification, in other words that action is an implementation 740 option 742 . "need not": indicates an action that the subject of the sentence 743 does not have to implement in order to claim conformance to this 744 specification. The verb "need not" is used instead of "may not", 745 since "may not" sounds like a prohibition. 747 . "should": indicates an action that is recommended for the subject 748 of the sentence to implement, but is not required, in order to 749 claim conformance to this specification. 751 4.2 Agent Conformance Requirements 753 A conforming agent: 755 Job Monitoring MIB, V0.81 April 24, 1997 757 1.shall implement all mandatory groups and attributes in this 758 specification. 760 2.shall implement each conditionally mandatory attributes, if the 761 server or device that the agent is instrumenting has the feature 762 represented by the conditionally mandatory attribute.. 764 3.need not implement both forms of a time attribute if it implements a 765 time attribute and is recommended not to provide both forms for a 766 particular time attribute. See page 43. 768 NOTE - This MIB, like the Printer MIB, is written following the 769 subset of SMIv2 that can be supported by SMIv1 and SNMPv1 770 implementations. 772 4.2.1 MIB II System Group objects 774 The Job Monitoring MIB agent shall implement all objects in the system 775 group of MIB-II (RFC 1213)[5], whether the Printer MIB[1] is implemented 776 or not. 778 4.2.2 MIB II Interface Group objects 780 The Job Monitoring MIB agent shall implement all objects in the 781 Interfaces Group of MIB-II (RFC 1213)[5], whether the Printer MIB[1] is 782 implemented or not. 784 4.2.3 Printer MIB objects 786 If the agent is instrumenting a device that is a printer, the agent 787 shall implement all of the mandatory objects in the Printer MIB[1] and 788 all the objects in other MIBs that conformance to the Printer MIB 789 requires, such as the Host Resources MIB (RFC 1514)[6]. If the agent is 790 instrumenting a server that controls one or more networked printers, the 791 agent need not implement the Printer MIB and need not implement the Host 792 Resources MIB. 794 4.3 Job Monitoring Application Conformance Requirements 796 A conforming job monitoring application: 798 1.shall accept all objects in all mandatory groups and all mandatory 799 and conditionally mandatory attributes that are required to be 800 implemented by an agent according to Section 4.2 and shall either 801 present them to the user or ignore them. 803 2.shall accept all enum and bit values specified in this standard and 804 additional ones that may be registered with IANA and shall either 805 present them to the user or ignore them. In particular, a conforming 806 job monitoring application shall not malfunction when receiving any 807 standard or registered enum or bit values. See Section 7 entitled 808 "IANA Considerations" on page 17. 810 Job Monitoring MIB, V0.81 April 24, 1997 812 3.shall accept either form of time attribute, if it supports a time 813 attribute, since agents are free to implement either time form. See 814 page 43. 816 5. Job Identification 818 There are a number of attributes that permit a user, operator or system 819 administrator to identify jobs of interest, such as jobOwner, jobName, 820 etc. In addition, there is a Job Submission ID object that allows a 821 monitoring application to quickly locate and identify a particular job 822 of interest that was submitted from a particular client by the user 823 invoking the monitoring application. The Job Monitoring MIB needs to 824 provide for identification of the job at both sides of the job 825 submission process. The primary identification point is the client 826 side. The Job Submission ID allows the monitoring application to 827 identify the job of interest from all the jobs currently "known" by the 828 server or device. The Job Submission ID can be assigned by either the 829 client's local system or a downstream server or device. The point of 830 assignment will be determined by the job submission protocol in use. 832 The server/device-side identifier, called the jmJobIndex object, will be 833 assigned by the server or device that accepts the jobs from submitting 834 clients. The MIB agent shall use the job identifier assigned by the 835 server or device to the job as the value of the jmJobIndex object that 836 defines the table rows (there are multiple tables) that contain the 837 information relating to the job. This object allows the interested 838 party to obtain all objects desired that relate to this job. The MIB 839 provides a mapping table that maps each Job Submission ID to the 840 corresponding jmJobIndex value, so that an application can determine the 841 correct value for the jmJobIndex value for the job of interest in a 842 single Get operation. See the jmJobIDGroup on page 59. 844 The jobName attribute provides a name that the user supplies an a job 845 attribute with the job. The jobName attribute is not necessarily 846 unique, even for one user, let alone across users. 848 6. Internationalization Considerations 850 There are a number of objects in this MIB that are represented as coded 851 character sets. The data type for such objects is OCTET STRING. Such 852 objects could be in different coded character sets and could be 853 localized in the language and country, i.e., could be localized. 854 However, for the Job Monitoring MIB, most of the objects are supplied as 855 job attributes by the client that submits the job to the server or 856 device and so are represented in the coded character set specified by 857 that client. Therefore, the agent is not able to provide for different 858 representations depending on the locale of the server, device, or user 859 of the job monitoring application. The only exception is job submission 860 protocols that pass job or document attributes as OBJECT IDENTIFIERS or 861 enums. For those job and document attributes, the agent shall represent 862 the corresponding objects in the Job Monitoring MIB as coded character 863 sets in the current (default) locale of the server or printer as 864 established by the system administrator or the implementation. 866 Job Monitoring MIB, V0.81 April 24, 1997 868 For simplicity, this specification assumes that the clients, job 869 monitoring applications, servers, and devices are all running in the 870 same locale. However, this specification allows them to run in any 871 locale, including locales that use two-octet coded character sets, such 872 as ISO 10646 (Unicode). Job monitors applications are expected to 873 understand the coded character set of the client (and job), server, or 874 device. No special means is provided for the monitor to discover the 875 coded character set used by jobs or by the server or device. This 876 specification does not contain an object that indicates what locale the 877 server or device is running in, let alone contain an object to control 878 what locale the agent is to use to represent coded character set 879 objects. 881 This MIB also contains objects that are represented using the 882 DateAndTime textual convention from SNMPv2-TC (RFC 1903). The job 883 management application shall display such objects in the locale of the 884 user running the monitoring application. 886 7. IANA Considerations 888 During the development of this standard, the Printer Working Group (PWG) 889 working with IANA will register additional enums while the standard is 890 in the proposed and draft states according to the procedures described 891 in this section. IANA will handle registration of additional enums 892 after this standard is approved in cooperation with an IANA-appointed 893 registration editor from the PWG according to the procedures described 894 in this section: 896 7.1 IANA Registration of enums 898 This specification uses textual conventions to define enumerated values 899 (enums) and bit values. Enumerations (enums) and bit values are sets of 900 symbolic values defined for use with one or more objects or attributes. 901 All enumeration sets and bit value sets are assigned a symbolic data 902 type name (textual convention). As a convention the symbolic name ends 903 in "TC" for textual convention. These enumerations are defined at the 904 beginning of the MIB module specification. 906 This working group has defined several type of enumerations for use in 907 the Job Monitoring MIB and the Printer MIB[1]. These types differ in 908 the method employed to control the addition of new enumerations. 909 Throughout this document, references to "type n enum", where n can be 1, 910 2 or 3 can be found in the various tables. The definitions of these 911 types of enumerations are: 913 7.1.1 Type 1 enumerations 915 Type 1 enumeration: All the values are defined in the Job Monitoring 916 MIB specification (RFC for the Job Monitoring MIB). Additional 917 enumerated values require a new RFC. 919 NOTE - There are no type 1 enums in the current draft. 921 Job Monitoring MIB, V0.81 April 24, 1997 923 7.1.2 Type 2 enumerations 925 Type 2 enumeration: An initial set of values are defined in the Job 926 Monitoring MIB specification. Additional enumerated values are 927 registered after review by this working group. The initial versions of 928 the MIB will contain the values registered so far. After the MIB is 929 approved, additional values will be registered through IANA after 930 approval by this working group. 932 The following type 2 enums are contained in the current draft : 933 1.JmTimeStampTC 934 2.JmFinishingTC 935 3.JmPrintQualityTC 936 4.JmTonerEconomyTC 937 5.JmTonerDensityTC 938 6.JmMediumTypeTC 939 7.JmJobStateTC 940 8.JmAttributeTypeTC 942 7.1.3 Type 3 enumeration 944 Type 3 enumeration: An initial set of values are defined in the Job 945 Monitoring MIB specification. Additional enumerated values are 946 registered without working group review. The initial versions of the 947 MIB will contain the values registered so far. After the MIB is 948 approved, additional values will be registered through IANA without 949 approval by this working group. 951 NOTE - There are no type 3 enums in the current draft. 953 7.2 IANA Registration of type 2 bit values 955 This draft contains the following type 2 bit value textual-conventions: 956 1.JmJobServiceTypesTC 957 2.JmJobStateReasons1TC 958 3.JmJobStateReasons2TC 959 4.JmJobStateReasons3TC 960 5.JmJobStateReasons4TC 962 These textual-conventions are defined as bits in an Integer so that they 963 may be used with SNMPv1 SMI.. The jobStateReasonsn (n=1..4) attributes 964 are defined as bit values using the JmJobStateReasonsnTC textual- 965 convention. 967 The registration of JmJobServiceTypesTC and JmJobStateReasonsnTC bit 968 values shall follow the procedures for a type 2 enum as specified in 969 Section 7.1.2. 971 7.3 IANA Registration of Job Submission Id Formats 973 In addition to enums and bit values, this specification assigns numbers 974 to various job submission ID formats. See jmJobSubmissionIDIndex on 975 page 60. The registration of jmJobSubmissionIDIndex format numbers 976 shall follow the procedures for a type 2 enum as specified in Section 977 7.1.2. 979 Job Monitoring MIB, V0.81 April 24, 1997 981 8. Security Considerations 983 8.1 Read-Write objects 985 All objects are read-only greatly simplifying the security 986 considerations. If another MIB augments this MIB, that MIB might allow 987 objects in this MIB to be modified. However, that MIB shall have to 988 support the required access control in order to achieve security, not 989 this MIB. 991 8.2 Read-Only Objects In Other User's Jobs 993 The security policy of some sites may be that unprivileged users can 994 only get the objects from jobs that they submitted, plus a few minimal 995 objects from other jobs, such as the jobKOctetsRequested and 996 jobKOctetsCompleted attributes, so that a user can tell how busy a 997 printer is. Other sites might allow all unprivileged users to see all 998 objects of all jobs. It is up to the agent to implement any such 999 restrictions based on the identification of the user making the SNMP 1000 request. This MIB does not require, nor does it specify how, such 1001 restrictions would be implemented. A monitoring application should 1002 enforce the site security policy with respect to returning information 1003 to an unprivileged end user that is using the monitoring application to 1004 monitor jobs that do not belong to that user, i.e., the jobOwner 1005 attribute in the jmAttributeTable does not match the user's user name. 1006 See the JmAttributeTypeTC textual convention on page 41 and the 1007 jmAttributeTable. 1009 An operator is a privileged user that would be able to see all objects 1010 of all jobs, independent of the policy for unprivileged users. 1012 9. Returning Objects With No Value In Mandatory Groups 1014 If an object in a mandatory group does not have an instrumented value 1015 for a particular job submission protocol or the job submitting client 1016 did not supply a value (and the accepting server or device does not 1017 supply a default), this MIB requires that the agent shall follow the 1018 normal SNMP practice of returning a distinguished value, such as a zero- 1019 length string, an unknown(2) value for an enum, or a (-2) for an integer 1020 value. 1022 10. Notification and Traps 1024 This MIB does not specify any traps. For simplicity, management 1025 applications are expected to poll for status. The resulting network 1026 traffic is not expected to be significant. 1028 11. MIB specification 1030 The following pages constitute the actual Job Monitoring MIB. 1032 Job Monitoring MIB, V0.81 April 24, 1997 1034 Job-Monitoring-MIB DEFINITIONS ::= BEGIN 1036 IMPORTS 1037 MODULE-IDENTITY, OBJECT-TYPE, experimental, 1038 Integer32 FROM SNMPv2-SMI 1039 TEXTUAL-CONVENTION FROM SNMPv2-TC 1040 MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; 1041 -- The following textual-conventions are needed 1042 -- to implement certain attributes, but are not 1043 -- needed to compile this MIB. They are 1044 -- provided here for convenience: 1045 -- DateAndTime FROM SNMPv2-TC 1046 -- PrtAlertCodeTC, PrtInterpreterLangFamilyTC FROM Printer-MIB 1048 -- Use the experimental (54) OID assigned to the Printer MIB[1] before 1049 -- it was published as RFC 1759. 1050 -- Upon publication of the Job Monitoring MIB as an RFC, delete this 1051 -- comment and the line following this comment and change the 1052 -- reference of { temp 104 } (below) to { mib-2 X }. 1053 -- This will result in changing: 1054 -- 1 3 6 1 3 54 jobmonMIB(105) to: 1055 -- 1 3 6 1 2 1 jobmonMIB(X) 1056 -- This will make it easier to translate prototypes to 1057 -- the standard namespace because the lengths of the OIDs won't 1058 -- change. 1059 temp OBJECT IDENTIFIER ::= { experimental 54 } 1061 jobmonMIB MODULE-IDENTITY 1062 LAST-UPDATED "9704240000Z" 1063 ORGANIZATION "IETF Printer MIB Working Group" 1064 CONTACT-INFO 1065 "Tom Hastings 1066 Postal: Xerox Corp. 1067 Mail stop ESAE-231 1068 701 S. Aviation Blvd. 1069 El Segundo, CA 90245 1071 Tel: (301)333-6413 1072 Fax: (301)333-5514 1073 E-mail: hastings@cp10.es.xerox.com" 1074 DESCRIPTION 1075 "The MIB module for monitoring job in servers, printers, and 1076 other devices. 1078 File: jmp-mib.doc, .pdf, .txt, .mib 1079 Version: 0.81" 1080 ::= { temp 105 } 1082 -- Textual conventions for this MIB module 1084 JmTimeStampTC ::= TEXTUAL-CONVENTION 1085 Job Monitoring MIB, V0.81 April 24, 1997 1087 STATUS current 1088 DESCRIPTION 1089 "The simple time at which an event took place. The units shall 1090 be in seconds since the system was booted. 1092 NOTE - JmTimeStampTC is defined in units of seconds, rather than 1093 100ths of seconds, so as to be simpler for agents to implement 1094 (even if they have to implement the 100ths of a second to comply 1095 with implementing sysUpTime in MIB-II[5].) 1097 NOTE - JmTimeStampTC is defined as an Integer32 so that it can 1098 be used as a value of an attribute, i.e., as a value of the 1099 jmAttributeValueAsInteger object (see page 66). The TimeStamp 1100 textual-convention defined in SMNPv2-TC is defined as an 1101 APPLICATION 3 IMPLICIT INTEGER tag, not an Integer32, so cannot 1102 be used in this MIB as one of the values of 1103 jmAttributeValueAsInteger." 1104 SYNTAX INTEGER(0..2147483647) 1106 JmJobSourcePlatformTypeTC ::= TEXTUAL-CONVENTION 1107 STATUS current 1108 DESCRIPTION 1109 "The source platform type that can submit jobs to servers or 1110 devices in any of the 3 configurations." 1112 -- This is a type 2 enumeration. See Section 7.1 on page 17. 1113 SYNTAX INTEGER { 1114 other(1), 1115 unknown(2), 1116 sptUNIX(3), -- UNIX(tm) 1117 sptOS2(4), -- OS/2 1118 sptPCDOS(5), -- DOS 1119 sptNT(6), -- NT 1120 sptMVS(7), -- MVS 1121 sptVM(8), -- VM 1122 sptOS400(9), -- OS/400 1123 sptVMS(10), -- VMS 1124 sptWindows95(11), -- Windows95 1125 sptNetWare(33) -- NetWare 1126 } 1128 JmFinishingTC ::= TEXTUAL-CONVENTION 1129 STATUS current 1130 DESCRIPTION 1131 "The type of finishing." 1132 Job Monitoring MIB, V0.81 April 24, 1997 1134 -- This is a type 2 enumeration. See Section 7.1 on page 17. 1135 SYNTAX INTEGER { 1136 other(1), 1137 -- Some other finishing besides one of the specified or 1138 -- registered values. 1140 unknown(2), 1141 -- The finishing is unknown. 1143 none(3), 1144 -- Perform no finishing. 1146 staple(4), 1147 -- Bind the document(s) with one or more staples. The exact 1148 -- number and placement of the staples is site-defined. 1150 stapleTopLeft(5), 1151 -- Place one or more staples on the top left corner of the 1152 -- document(s). 1154 stapleBottomLeft(6), 1155 -- Place one or more staples on the bottom left corner of 1156 -- the document(s). 1158 stapleTopRight(7), 1159 -- Place one or more staples on the top right corner of the 1160 -- document(s). 1162 stapleBottomRight(8), 1163 -- Place one or more staples on the bottom right corner of 1164 -- the document(s). 1166 saddleStitch(9), 1167 -- Bind the document(s) with one or more staples (wire 1168 -- stitches) along the middle fold. The exact number and 1169 -- placement of the stitches is site-defined. 1171 edgeStitch(10), 1172 -- Bind the document(s) with one or more staples (wire 1173 -- stitches) along one edge. The exact number and 1174 -- placement of the staples is site-defined. 1176 punch(11), 1177 -- This value indicates that holes are required in the 1178 -- finished document. The exact number and placement of the 1179 -- holes is site-defined The punch specification may be 1180 -- satisfied (in a site- and implementation-specific 1181 -- manner) either by drilling/punching, or by substituting 1182 -- pre-drilled media. 1184 cover(12), 1185 -- This value is specified when it is desired to select a 1186 -- non-printed (or pre-printed) cover for the document. 1187 -- This does not supplant the specification of a printed 1188 -- cover (on cover stock medium) by the document itself. 1190 Job Monitoring MIB, V0.81 April 24, 1997 1192 bind(13) 1193 -- This value indicates that a binding is to be applied to 1194 -- the document; the type and placement of the binding is 1195 -- site-defined. 1197 } 1199 JmPrintQualityTC ::= TEXTUAL-CONVENTION 1200 STATUS current 1201 DESCRIPTION 1202 "Print quality settings." 1204 -- This is a type 2 enumeration. See Section 7.1 on page 17. 1205 SYNTAX INTEGER { 1206 other(1), -- Not one of the specified or registered values. 1207 unknown(2), -- The actual value is unknown. 1208 draft(3), -- Lowest quality available on the printer. 1209 normal(4), -- Normal or intermediate quality on the printer. 1210 high(5) -- Highest quality available on the printer. 1211 } 1213 JmTonerEconomyTC ::= TEXTUAL-CONVENTION 1214 STATUS current 1215 DESCRIPTION 1216 "Toner economy settings." 1218 -- This is a type 2 enumeration. See Section 7.1 on page 17. 1219 SYNTAX INTEGER { 1220 off(0), -- Off. Normal. Use full toner. 1221 on(1) -- On. Use less toner than normal. 1222 } 1224 JmMediumTypeTC ::= TEXTUAL-CONVENTION 1225 STATUS current 1226 DESCRIPTION 1227 "Identifies the type of medium." 1229 -- This is a type 2 enumeration. See Section 7.1 on page 17. 1230 SYNTAX INTEGER { 1231 Job Monitoring MIB, V0.81 April 24, 1997 1233 other(1), 1234 -- The type is neither one of the values listed in this 1235 -- specification nor a registered value. 1237 unknown(2), 1238 -- The type is not known. 1240 stationery(3), 1241 -- Separately cut sheets of an opaque material. 1243 transparency(4), 1244 -- Separately cut sheets of a transparent material. 1246 envelope(5), 1247 -- Envelopes that can be used for conventional mailing 1248 -- purposes. 1250 envelopePlain(6), 1251 -- Envelopes that are not preprinted and have no windows. 1253 envelopeWindow(7), 1254 -- Envelopes that have windows for addressing purposes. 1256 continuousLong(8), 1257 -- Continuously connected sheets of an opaque material 1258 -- connected along the long edge. 1260 continuousShort(9), 1261 -- Continuously connected sheets of an opaque material 1262 -- connected along the short edge. 1264 tabStock(10), 1265 -- Media with tabs. 1267 multiPartForm(11), 1268 -- Form medium composed of multiple layers not pre-attached 1269 -- to one another; each sheet may be drawn separately from 1270 -- an input source. 1272 labels(12), 1273 -- Label-stock. 1275 multiLayer(13) 1276 -- Form medium composed of multiple layers which are pre- 1277 -- attached to one another, e.g. for use with impact 1278 -- printers. 1280 } 1282 JmJobStateTC ::= TEXTUAL-CONVENTION 1283 Job Monitoring MIB, V0.81 April 24, 1997 1285 STATUS current 1286 DESCRIPTION 1287 "The current state of the job (pending, processing, held, etc.) 1289 Management applications shall be prepared to receive all the 1290 standard job states. Agents instrumenting servers and devices 1291 are not required to generate all job states, only those that are 1292 indicated as 'mandatory' in the enum definitions below. The 1293 remaining job states are 'conditionally mandatory', i.e., an 1294 agent for a server or device shall implement each of the 1295 remaining states if server or device jobs have states with the 1296 same semantics. See Section 12 entitled 'Job Life Cycle' on 1297 page 70 for additional job state semantics, legal job state 1298 transitions, and implementation considerations. 1300 Companion textual conventions (JmJobStateReasonsnTC, n=1..4) and 1301 corresponding attributes (jobStateReasonsn) provide additional 1302 information about job states. While the job states cannot be 1303 added to without impacting deployed clients, it is the intent 1304 that additional JmJobStateReasonsnTC enums can be defined 1305 without impacting deployed clients that take actions upon 1306 receiving job state values. In other words, the 1307 JmJobStateReasonsnTC TCs are intended to be extensible. See 1308 page 45. 1310 The following job state standard values are defined:" 1312 -- This is a type 2 enumeration. See Section 7.1 on page 17. 1313 SYNTAX INTEGER { 1314 other(1), 1315 -- The job state is not one of the defined states. 1317 unknown(2), 1318 -- The job state is not known, or is indeterminate. 1320 held(3), 1321 -- The job is not yet a candidate for processing for any 1322 -- number of reasons. The reasons are represented as bits 1323 -- in the jobStateReasons1 attribute. Some reasons are used 1324 -- in other states to give added information about the job 1325 -- state. See the JmJobStateReasons1TC textual convention 1326 -- for the specification of each reason and in which states 1327 -- the reasons may be used. 1329 pending(4), 1330 -- The job is a candidate for processing, but is not yet 1331 -- processing. 1333 processing(5), -- mandatory 1334 -- The job is using one or more document transforms which 1335 -- include purely software processes, such as interpreting a 1336 -- PDL, and hardware devices, but is not yet making marks on 1337 -- a medium. 1338 -- 1339 -- If an implementation does not distinguish between 1340 Job Monitoring MIB, V0.81 April 24, 1997 1342 -- processing and printing, then the processing state shall 1343 -- be implemented. 1345 printing(6), 1346 -- The job is printing, i.e., making marks on a medium. 1347 -- 1348 -- If an implementation does not distinguish between 1349 -- processing and printing, then the processing state shall 1350 -- be implemented. 1352 needsAttention(7), -- mandatory 1353 -- The job is using one or more devices, but has encountered 1354 -- a problem with at least one device that requires human 1355 -- intervention before the job can continue using that 1356 -- device. Examples include running out of paper or a paper 1357 -- jam. 1358 -- 1359 -- Usually devices indicate their condition in human 1360 -- readable form locally at the device. The management 1361 -- application can obtain more complete device status 1362 -- remotely by querying the appropriate device MIB using the 1363 -- job's deviceIndex attribute. 1365 canceled(8), -- mandatory 1366 -- The job is in the process of being terminated by the 1367 -- server or device or has completed terminating the job, 1368 -- either because the client canceled the job or because a 1369 -- serious problem was encountered by a document transform 1370 -- while processing the job. The job's jobStateReasons1 1371 -- attribute shall contain the reasons that the job was 1372 -- canceled. The job shall remain in the canceled state for 1373 -- the same period of time as if the job had completed, 1374 -- before transiting to the unknown state. See the 1375 -- completed state description. 1377 completed(9) -- mandatory 1378 -- The job has (1) completed after processing/printing and 1379 -- all of the media have been successfully stacked in the 1380 -- output bin(s). 1381 -- 1382 -- The job has completed successfully or with warnings or 1383 -- errors. The job's jobStateReasons1 attribute shall 1384 -- contain the reasons that the job has entered the 1385 -- completed state. 1386 -- 1387 -- The length of time that a job may be in the completed 1388 -- state, before transitioning to unknown, is specified by 1389 -- the value of the jmGeneralJobPersistence object. In 1390 -- addition, the agent shall maintain all of the attributes 1391 -- in the jmAttributeTable for at least the time specified 1392 -- in the jmGeneralAttributePersistence object, so that a 1393 -- management application accounting program can copy all 1394 -- the attributes to an accounting log. 1396 } 1397 Job Monitoring MIB, V0.81 April 24, 1997 1399 JmAttributeTypeTC ::= TEXTUAL-CONVENTION 1400 STATUS current 1401 DESCRIPTION 1402 "The type of the attribute. 1404 Some attributes represent information about a job, such as a 1405 file-name, or a document-name, or submission-time or completion 1406 time. Other attributes represent resources required, e.g., a 1407 medium or a colorant, etc. to process the job before the job 1408 start processing OR to indicate the amount of the resource that 1409 is being consumed while the job is processing, e.g., pages 1410 completed or impressions completed. If both a required and a 1411 consumed value of a resource is needed, this specification 1412 assigns two separate attribute enums in the textual convention. 1414 Datatypes 1416 The datatype of each attribute is indicated on the first line of 1417 the description. Some attributes have several different data 1418 type representations. Each such representation is considered a 1419 separate attribute and is assigned a separate name and enum 1420 value. For these attributes, the name of the datatype is the 1421 last part of the name of the attribute. 1423 Single-Value (Row) Versus Multi-Value (MULTI-ROW) Attributes 1425 Most attributes shall have only one row per job. However, a few 1426 attributes can have multiple values per job or even per 1427 document, where each value is a separate row in the 1428 jmAttributeTable. Unless indicated with 'MULTI-ROW:' in 1429 JmAttributeTypeTC, an agent shall ensure that each attribute 1430 item occurs only once in the jmAttributeTable for a job. 1431 Attributes that may appear multiple times in the 1432 jmAttributeTable for a job are indicated with 'MULTI-ROW:' in 1433 their specification in the JmAttributeTypeTC. However, such 1434 attribute items shall not contain duplicates for 'intensive' (as 1435 opposed to 'extensive') attributes. 1437 For example, each documentFormatType attribute entry 1438 shall appear in the jmAttributeTable only once for a job 1439 since the interpreter language is an intensive attribute 1440 item, even though the job has a number of documents that 1441 all use the same PDL. 1443 As another example of an intensive attribute that can 1444 have multiple entries, if a document or job uses 1445 multiple types of media, there shall be only one row in 1446 the jmAttributeTable for each media type, not one row 1447 for each document that uses that medium type. 1449 On the other hand, if a job contains two documents of 1450 the same name, there can be separate rows for the 1451 Job Monitoring MIB, V0.81 April 24, 1997 1453 documentName attribute item with the same name, since a 1454 document name is an extensive attribute item. The 1455 specification indicates that the values need not be 1456 unique for such 'MULTI-ROW:' 1458 Value Represented As Integer Or Octets 1460 In the following definitions of the enums, each description 1461 indicates whether the value of the attribute shall be 1462 represented using the jmAttributeValueAsInteger or the 1463 jmAttributeValueAsOctets objects by the initial tag: 'INTEGER:' 1464 or 'OCTETS:', respectively. A very few attributes use both 1465 objects at the same time to represent a pair of values 1466 (mediumConsumed) and so have both tags. See the 1467 jmAttributeGroup on page 64 for the descriptions of these 1468 objects. 1470 For the attributes that do not use the jmAttributeValueAsInteger 1471 object (no 'INTEGER:' tag), the agent shall return the value (- 1472 1) indicating other. For the attributes that do not use the 1473 jmAttributeValueAsOctets object (no 'OCTETS:' tag), the agent 1474 shall return a zero-length octet string. 1476 Attribute Creation 1478 An agent shall create a row in the jmAttributeTable for each 1479 attribute that is (1) supplied with a job when the job is 1480 accepted by a server or device or that (2) the server or device 1481 supplies as a default either when the job is accepted or later 1482 during processing. 1484 Consumption Attributes 1486 A number of attributes record consumption. Such attribute names 1487 end with the word 'Completed'. If the job has not yet consumed 1488 what that resource is metering, the agent either: (1) shall 1489 return the value 0 or (2) shall not add this attribute to the 1490 jmAttributeTable until the consumption begins. In the interests 1491 of brevity, the semantics for 0 is specified here and is not 1492 repeated for each xxxxYyyyCompleted attribute specification. 1494 Index Value Attributes 1496 A number of attributes are indexes in other tables. Such 1497 attribute names end with the word 'Index'. If the agent does 1498 not (yet) know the index value for a particular index attribute 1499 for a job, the agent either: (1) shall return the value 0 or (2) 1500 shall not add this attribute to the jmAttributeTable until the 1501 index value is known. In the interests of brevity, the 1502 semantics for 0 is specified here and is not repeated for each 1503 index attribute specification. 1505 Attribute Naming Conventions 1506 Job Monitoring MIB, V0.81 April 24, 1997 1508 Attribute names often end in the data type, especially when 1509 there are more than one data type for the same information. 1510 Thus the suffixes are used: Name, Index, DateAndTime, TimeStamp, 1511 etc. 1513 NOTE: No attribute name exceeds 31 characters. 1515 Conformance of Attribute Implementation 1517 Some attributes are mandatory for conformance, and the rest are 1518 conditionally mandatory. An agent shall instrument any 1519 mandatory attribute. If the server or device does not provide 1520 access to the information about the mandatory attribute, the 1521 agent shall return the 'unknown' value. For attributes 1522 represented by a counting integer, the unknown value is (-2) and 1523 for attributes represented by an enum, the unknown value is (2), 1524 as in the Printer MIB[1]. An agent shall instrument any 1525 conditionally mandatory attribute if the server or device 1526 provides access to the information about the attribute to the 1527 agent. If the server or device does not provide access to the 1528 information about the conditionally mandatory attribute, the 1529 agent need not create the row in the jmAttributeTable. 1531 The mandatory attributes are the ones required to have copies in 1532 the jmJobStateTable and to remain in the jmAttributeTable 1533 longer. The mandatory attributes are: 1535 jobState(3) 1536 numberOfInterveningJobs(9) 1537 deviceAlertCode(10) 1538 jobKOctetsRequested(48) 1539 jobKOctetsCompleted(50) 1540 impressionsRequested(54) 1541 impressionsCompleted(55) 1542 outputBinName(35) 1544 The table of contents lists the attributes in order to help see 1545 the order of enum assignments which is the order that the 1546 GetNext operation can be used to get attributes. 1548 The standard attribute types defined so far are:" 1550 -- This is a type 2 enumeration. See Section 7.1 on page 17. 1551 SYNTAX INTEGER { 1552 -- jmAttributeTypeIndex Datatype 1553 -- Description - including 'OCTETS:' or 'INTEGER:' to 1554 -- specify whether the value shall be represented in the 1555 -- jmAttributeValueAsOctets or the jmAttributeValueAsInteger 1556 -- object, or both, respectively. 1558 other(1), -- Integer32(-2..2147483647) 1559 -- OR 1560 -- OCTET STRING(SIZE(0..63)) 1561 -- INTEGER: or OCTETS: An attribute that is not in the 1562 -- list and/or that has not been approved and registered 1563 Job Monitoring MIB, V0.81 April 24, 1997 1565 -- with IANA. 1567 unknown(2), -- Integer32(-2..2147483647) 1568 -- OR 1569 -- OCTET STRING(SIZE(0..63)) 1570 -- INTEGER: or OCTETS: An attribute whose semantics are 1571 -- not known to the agent. 1573 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1574 -- Job State attributes 1575 -- 1576 -- The following attributes specify the state of a job. 1577 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1579 jobState(3), -- JmJobStateTC (pg 24) 1580 -- INTEGER: The current state of the job (pending, 1581 -- processing, held, etc.). The final value for this 1582 -- attribute shall be either completed or canceled, before 1583 -- the agent removes the job from the table. 1584 -- 1585 -- Management applications shall be prepared to receive all 1586 -- the standard job states. Servers and devices are not 1587 -- required to generate all job states, only those which are 1588 -- appropriate for the particular implementation. 1589 -- 1590 -- NOTE - Companion textual conventions, 1591 -- JmJobStateReasonsnTC (n=1..4 - see page 45) and 1592 -- corresponding attributes (jobStateReasons1(5) - see page 1593 -- 31) provides additional information about job states. 1594 -- While the job states cannot be added to without impacting 1595 -- deployed clients, it is the intent that additional 1596 -- JmJobStateReasonsnTC enums can be defined without 1597 -- impacting deployed clients. 1599 jobStateAssociatedValue(4), -- Integer32(-2..2147483647) 1600 -- INTEGER: The value of the most relevant attribute 1601 -- associated with the job's current state. 1602 -- 1603 -- Which attribute depends on the job's current state (as 1604 -- specified by the value of the jmJobState/jobState 1605 -- object/attribute) as follows: 1606 -- 1607 -- jmJobState Associated Attribute Page 1608 -- /jobState 1609 -- 1610 -- held jobStartedBeingHeldTimeStamp(73) 43 1611 -- pending numberOfInterveningJobs(9) 43 1612 -- processing jobKOctetsRequested(48) 47 1613 -- printing impressionsRequested(54) 49 1614 -- needsAttention deviceAlertCode(10) 32 1615 -- canceled impressionsCompleted(55) 41 1616 -- completed outputBinName(35) 37 1617 -- 1618 -- NOTE - The jobStateAssociatedValue attribute selects from 1619 Job Monitoring MIB, V0.81 April 24, 1997 1621 -- amongst seven mandatory attributes that attribute that is 1622 -- most relevant to the job's current state. the 1623 -- jobStateAssociatedValue attribute is provided as an 1624 -- efficiency improvement, so that an application can obtain 1625 -- the most relevant attribute for each job's current state 1626 -- (1) without first having to determine the job's state or 1627 -- (2) having to request all seven mandatory attributes in 1628 -- the same GetNext operation that obtains the next job in 1629 -- the next conceptual row in the jmAttributeTable. 1631 jobStateReasons1(5), -- JmJobStateReasons1TC (pg 45) 1632 -- OCTETS: Additional information about the job's current 1633 -- state that augments the jmJobState/jobState 1634 -- object/attribute. The jobStateReasons1 attribute 1635 -- identifies the reason or reasons that the job is in the 1636 -- held, pending, processing, needsAttention, canceled, or 1637 -- completed state. The agent shall indicate the particular 1638 -- reason(s) by setting the value of the jobStateReasons1 1639 -- attribute. When the job does not have any reasons for 1640 -- being in its current state, the agent shall set the value 1641 -- of the jobStateReasons1 attribute to 0. 1642 -- 1643 -- While the job states cannot be added to without impacting 1644 -- deployed clients, it is the intent that additional 1645 -- JmJobStateReasons1TC bit values can be defined without 1646 -- impacting deployed clients. In other words, the 1647 -- JmJobStateReasons1TC TC is intended to be extensible. 1648 -- 1649 -- Companion job state reasons TCs: JmJobStateReasons2TC, 1650 -- JmJobStateReasons3TC, JmJobStateReasons4TC, are 1651 -- defined/reserved for additional 31*3 = 93 job state 1652 -- reasons for use with the corresponding attributes: 1653 -- jobStateReasons2, jobStateReasons3, and jobStateReasons4. 1654 -- This is a type 2 bit definition. See section 7.1.2 on 1655 -- page 17. 1657 jobStateReasons2(6), -- JmJobStateReasons2TC (pg 45) 1658 -- OCTETS: Additional information about the job's current 1659 -- state that augments the jmJobState/jobState 1660 -- object/attribute. See the description under 1661 -- jobStateReasons1 attribute on page 31. 1662 -- 1663 -- This is a type 2 bit definition. See section 7.1.2 on 1664 -- page 17. 1666 jobStateReasons3(7), -- JmJobStateReasons3TC (pg 45) 1667 -- OCTETS: Additional information about the job's current 1668 -- state that augments the jmJobState/jobState 1669 -- object/attribute. See the description under 1670 -- jobStateReasons1 attribute on page 31. 1672 jobStateReasons4(8), -- JmJobStateReasons4TC (pg 45) 1673 -- OCTETS: Additional information about the job's current 1674 -- state that augments the jmJobState/jobState 1675 -- object/attribute. See the description under 1676 Job Monitoring MIB, V0.81 April 24, 1997 1678 -- jobStateReasons1 attribute on page 31. 1680 numberOfInterveningJobs(9), -- Integer32(-2..2147483647) 1681 -- INTEGER: The number of jobs that are expected to be 1682 -- processed before this job is processed according to the 1683 -- implementation's queuing algorithm if no other jobs were 1684 -- to be submitted. In other words, this value is the job's 1685 -- queue position. The agent shall return a value of 0 for 1686 -- this attribute when this job starts processing (since 1687 -- there are no jobs in front of the job). 1689 deviceAlertCode(10), -- PrtAlertCodeTC (Printer-MIB) 1690 -- INTEGER: The device alert code when the job is stopped 1691 -- because the device needs attention, i.e., needs human 1692 -- intervention. When the device is a printer, this device 1693 -- alert code shall be the printer alert code defined by the 1694 -- Printer MIB[1] using the PrtAlertCodeTC textual 1695 -- convention or equivalent. 1697 processingMessage(11), -- OCTET STRING(SIZE(0..63)) 1698 -- OCTETS: MULTI-ROW: A coded character set message that 1699 -- is generated during the processing of the job as a simple 1700 -- form of processing log to show progress and any problems. 1701 -- 1702 -- There is no restriction on the same message in multiple 1703 -- rows. 1705 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1706 -- Job Identification attributes 1707 -- 1708 -- The following attributes help an end user, a system 1709 -- operator, or an accounting program identify a job. 1710 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1712 serverAssignedJobName(12), -- OCTET STRING(SIZE(0..63)) 1713 -- OCTETS: Configuration 3 only: The human readable string 1714 -- name of the job as assigned by the server that submitted 1715 -- the job to the device that the agent in instrumenting 1716 -- with this MIB. 1717 -- 1718 -- NOTE - This attribute is intended for enabling a user to 1719 -- find his/her job that a server submitted to a device 1720 -- after the user submitted the job to the server when the 1721 -- jmJobIDGroup is not implemented. 1723 jobName(13), -- OCTET STRING(SIZE(0..63)) 1724 -- OCTETS: The human readable string name of the job as 1725 -- assigned by the submitting user to help the user 1726 -- distinguish between his/her various jobs. This name does 1727 -- not need to be unique. 1728 -- 1729 -- This attribute is intended for enabling a user or the 1730 -- user's application to convey a job name that may be 1731 -- printed on a start sheet, returned in a query result, or 1732 Job Monitoring MIB, V0.81 April 24, 1997 1734 -- used in notification or logging messages. 1735 -- 1736 -- If this attribute is not specified when the job is 1737 -- submitted, no job name is assumed, but implementation 1738 -- specific defaults are allowed, such as the value of the 1739 -- documentName resource item of the first document in the 1740 -- job or the fileName resource item of the first document 1741 -- in the job. 1742 -- 1743 -- The jobName attribute is distinguished from the 1744 -- jobComment attribute, in that the jobName attribute is 1745 -- intended to permit the submitting user to distinguish 1746 -- between different jobs that he/she has submitted. The 1747 -- jobComment attribute is intended to be free form 1748 -- additional information that a user might wish to use to 1749 -- communicate with himself/herself, such as a reminder of 1750 -- what to do with the results or to indicate a different 1751 -- set of input parameters were tried in several different 1752 -- job submissions. 1754 jobServiceTypes(14), -- JmJobServiceTypesTC (pg 44) 1755 -- INTEGER: Specifies the type(s) of service to which the 1756 -- job has been submitted (print, fax, scan, etc.). The 1757 -- service type is bit encoded with each job service type so 1758 -- that more general and arbitrary services can be created, 1759 -- such as services with more than one destination type, or 1760 -- ones with only a source or only a destination. For 1761 -- example, a job service might scan, faxOut, and print a 1762 -- single job. In this case, three bits would be set in the 1763 -- jobServiceTypes attribute, corresponding to the 1764 -- hexadecimal values: 0x8 + 0x20 + 0x4, respectively, 1765 -- yielding: 0x2C. 1766 -- 1767 -- Whether this attribute is set from a job attribute 1768 -- supplied by the job submission client or is set by the 1769 -- recipient job submission server or device depends on the 1770 -- job submission protocol. This attribute shall be 1771 -- implemented if the server or device has other types in 1772 -- addition to or instead of printing. 1773 -- 1774 -- One of the purposes of this attribute is to permit a 1775 -- requester to filter out jobs that are not of interest. 1776 -- For example, a printer operator may only be interested in 1777 -- jobs that include printing. That is why this attribute 1778 -- is in the job identification category. 1780 jobOwner(15), -- OCTET STRING(SIZE(0..63)) 1781 -- OCTETS: The coded character set name of the user that 1782 -- submitted the job. The method of assigning this user 1783 -- name will be system and/or site specific but the method 1784 -- must insure that the name is unique to the network that 1785 -- is visible to the client and target device. 1786 -- 1787 -- This value should be the authenticated name of the user 1788 -- submitting the job. 1790 Job Monitoring MIB, V0.81 April 24, 1997 1792 jobAccountName(16), -- OCTET STRING(SIZE(0..63)) 1793 -- OCTETS: Arbitrary binary information which may be coded 1794 -- character set data or encrypted data supplied by the 1795 -- submitting user for use by accounting services to 1796 -- allocate or categorize charges for services provided, 1797 -- such as a customer account name. 1798 -- 1799 -- NOTE: This attribute need not be printable characters. 1801 jobSourceChannelIndex(17), -- Integer32(0..2147483647) 1802 -- INTEGER: The index of the row in the associated Printer 1803 -- MIB[1] of the channel which is the source of the print 1804 -- job. 1805 -- 1806 -- NOTE - the Job Monitoring MIB points to the Channel row 1807 -- in the Printer MIB[1], so there is no need for a port 1808 -- attribute in the Job Monitoring MIB, since the PWG is 1809 -- adding a prtChannelInformation object to the Channel 1810 -- table of the draft Printer MIB. 1812 jobSourcePlatformType(18), -- JmJobSourcePlatformTypeTC 1813 -- (pg 21) 1814 -- INTEGER: The source platform type of the immediate 1815 -- upstream submitter that submitted the job to the server 1816 -- (configuration 2) or device (configuration 1 and 3) that 1817 -- the agent is instrumenting. For configuration 1, this is 1818 -- the type of the client that submitted the job to the 1819 -- device; for configuration 2, this is the type of the 1820 -- client that submitted the job to the server; and for 1821 -- configuration 3, this is the type of the server that 1822 -- submitted the job to the device. 1824 submittingServerName(19), -- OCTET STRING(SIZE(0..63)) 1825 -- OCTETS: For configuration 3 only: The administrative 1826 -- name of the server that submitted the job to the device. 1828 submittingApplicationName(20), -- OCTET STRING(SIZE(0..63)) 1829 -- OCTETS: The name of the client application (not the 1830 -- server in configuration 3) that submitted the job to the 1831 -- server or device. 1833 deviceNameRequested(21), -- OCTET STRING(SIZE(0..63)) 1834 -- OCTETS: The administratively defined coded character set 1835 -- name of the target device requested by the submitting 1836 -- user. For configuration 1, its value corresponds to the 1837 -- Printer MIB[1]: prtGeneralPrinterName object (added to 1838 -- the draft Printer MIB) for printers. For configuration 2 1839 -- and 3, its value is the name of the logical or physical 1840 -- device that the user supplied to indicate to the server 1841 -- on which device(s) they wanted the job to be processed. 1843 queueNameRequested(22), -- OCTET STRING(SIZE(0..63)) 1844 -- OCTETS: The administratively defined coded character set 1845 -- name of the target queue requested by the submitting 1846 Job Monitoring MIB, V0.81 April 24, 1997 1848 -- user. For configuration 1, its value corresponds to the 1849 -- queue in the device that the agent is instrumenting. For 1850 -- configuration 2 and 3, its value is the name of the queue 1851 -- that the user supplied to indicate to the server on which 1852 -- device(s) they wanted the job to be processed. 1853 -- 1854 -- NOTE - typically an implementation should support either 1855 -- the deviceNameRequested or queueNameRequested attribute, 1856 -- but not both. 1858 physicalDeviceIndex(23), -- hrDeviceIndex (see HR MIB) 1859 -- INTEGER: MULTI-ROW: The index of the physical device 1860 -- MIB instance requested/used, such as the Printer MIB[1]. 1861 -- This value is an hrDeviceIndex value. See the Host 1862 -- Resources MIB[6]. 1864 physicalDeviceName(24), -- OCTET STRING(SIZE(0..63)) 1865 -- OCTETS: MULTI-ROW: The name of the physical device to 1866 -- which the job is assigned. 1868 numberOfDocuments(25), -- Integer32(0..2147483647) 1869 -- INTEGER: The number of documents in this job. If this 1870 -- attribute is not present, the number of documents shall 1871 -- be 1. 1873 fileName(26), -- OCTET STRING(SIZE(0..63)) 1874 -- OCTETS: MULTI-ROW: The coded character set file name of 1875 -- the document. 1876 -- 1877 -- There is no restriction on the same file name in multiple 1878 -- rows. 1880 documentName(27), -- OCTET STRING(SIZE(0..63)) 1881 -- OCTETS: MULTI-ROW: The coded character set name of the 1882 -- document. 1883 -- 1884 -- There is no restriction on the same document name in 1885 -- multiple rows. 1887 jobComment(28), -- OCTET STRING(SIZE(0..63)) 1888 -- OCTETS: An arbitrary human-readable coded character text 1889 -- string supplied by the submitting user or the job 1890 -- submitting application program for any purpose. For 1891 -- example, a user might indicate what he/she is going to do 1892 -- with the printed output or the job submitting application 1893 -- program might indicate how the document was produced. 1894 -- 1895 -- The jobComment attribute is not intended to be a name; 1896 -- see the jobName attribute. 1898 documentFormatIndex(29), -- Integer32(0..2147483647) 1899 -- INTEGER: MULTI-ROW: The interpreter language family 1900 -- index in the Printer MIB[1] of the 1901 -- prtInterpreterLangFamily object, that this job 1902 -- requires/uses. A document or a job may use more than one 1903 Job Monitoring MIB, V0.81 April 24, 1997 1905 -- PDL. 1906 -- 1907 -- NOTE - As with all intensive attribute items where 1908 -- multiple rows are allowed, there shall be only one 1909 -- distinct row for each distinct PDL; there shall be no 1910 -- duplicates. 1911 -- 1912 -- NOTE - This attribute type is intended to be used with an 1913 -- agent that implements the Printer MIB and shall not be 1914 -- used if the agent does not implement the Printer MIB. 1915 -- Such as agent shall use the documentFormatType attribute 1916 -- instead. 1918 documentFormatType(30), -- PrtInterpreterLangFamilyTC 1919 -- INTEGER: MULTI-ROW: The interpreter language family 1920 -- corresponding to the Printer MIB[1] 1921 -- prtInterpreterLangFamily object, that this job 1922 -- requires/uses. A document or a job may use more than one 1923 -- PDL. 1924 -- 1925 -- NOTE - This attribute is represented by a type 2 enum 1926 -- defined in the draft Printer MIB[1], but is not in RFC 1927 -- 1759. 1929 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1930 -- Job Parameter attributes 1931 -- 1932 -- The following attributes represent input parameters 1933 -- supplied by the submitting client in the job submission 1934 -- protocol. 1935 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1937 jobPriority(31), -- Integer32(1..100) 1938 -- INTEGER: The priority for scheduling the job. It is used 1939 -- by servers and devices that employ a priority-based 1940 -- scheduling algorithm. 1941 -- 1942 -- A higher value specifies a higher priority. The value 1 1943 -- is defined to indicate the lowest possible priority (a 1944 -- job which a priority-based scheduling algorithm shall 1945 -- pass over in favor of higher priority jobs). The value 1946 -- 100 is defined to indicate the highest possible priority. 1947 -- Priority is expected to be evenly or 'normally' 1948 -- distributed across this range. The mapping of vendor- 1949 -- defined priority over this range is implementation- 1950 -- specific. 1952 jobProcessAfterDateAndTime(32), -- DateAndTime (SNMPv2-TC) 1953 -- INTEGER: The calendar date and time of day after which 1954 -- the job shall become a candidate to be scheduled for 1955 -- processing. If the value of this attribute is in the 1956 -- future, the server shall set the value of the job's 1957 -- jmJobState/jobState object/attribute to held and add the 1958 -- jobProcessAfterSpecified bit value to the job's 1959 Job Monitoring MIB, V0.81 April 24, 1997 1961 -- jobStateReasons1 attribute and shall not schedule the job 1962 -- for processing until the specified date and time has 1963 -- passed. When the specified date and time arrives, the 1964 -- server shall remove the jobProcessAfterSpecified bit 1965 -- value from the job's jobStateReasons1 attribute and, if 1966 -- no other reasons remain, shall change the job's 1967 -- jmJobState and the job's jobState attribute to pending so 1968 -- that the job becomes a candidate for being scheduled on 1969 -- devices(s). 1970 -- 1971 -- The agent shall assign an empty value to the 1972 -- jobProcessAfterDateAndTime attribute when no process 1973 -- after time has been specified, so that the job shall be a 1974 -- candidate for processing immediately. 1976 jobHoldUntil(33), -- OCTET STRING(SIZE(0..63)) 1977 -- OCTETS: The named time period during which the job shall 1978 -- become a candidate for processing, such as 'no-hold', 1979 -- 'evening', 'night', 'weekend', 'second-shift', 'third- 1980 -- shift', etc., as defined by the system administrator. 1981 -- Until that time period arrives, the job shall be in the 1982 -- held state with the jobHoldUntilSpecified value in the 1983 -- jobStateReasons1 attribute. 1985 outputBinIndex(34), -- Integer32(0..2147483647) 1986 -- INTEGER: MULTI-ROW: The output subunit index in the 1987 -- Printer MIB[1] of the output bin to which all or part of 1988 -- the job is placed in. 1990 outputBinName(35), -- OCTET STRING(SIZE(0..63)) 1991 -- OCTETS: MULTI-ROW: The name of the output bin to which 1992 -- all or part of the job is placed in. 1994 sides(36), -- Integer32(-2..1) 1995 -- INTEGER: MULTI-ROW: The number of sides that any 1996 -- document in this job requires/used. 1998 finishing(37), -- JmFinishingTC (pg 21) 1999 -- INTEGER: MULTI-ROW: Type of finishing that any document 2000 -- in this job requires/used. 2002 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2003 -- Image Quality attributes (requested and consumed) 2004 -- 2005 -- For devices that can vary the image quality. 2006 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2008 printQualityRequested(38), -- JmPrintQualityTC (pg 23) 2009 -- INTEGER: MULTI-ROW: The print quality selection 2010 -- requested for document in the job for printers that allow 2011 -- quality differentiation. 2013 printQualityUsed(39), -- JmPrintQualityTC (pg 23) 2014 -- INTEGER: MULTI-ROW: The print quality selection 2015 Job Monitoring MIB, V0.81 April 24, 1997 2017 -- actually used by documents in the job for printers that 2018 -- allow quality differentiation. 2020 tonerEcomonyRequested(40), -- JmTonerEconomyTC (pg 23) 2021 -- INTEGER: MULTI-ROW: The print quality selection 2022 -- requested for documents in the job for printers that 2023 -- allow toner quality differentiation. 2025 tonerEcomonyUsed(41), -- JmTonerEconomyTC (pg 23) 2026 -- INTEGER: MULTI-ROW: The print quality selection 2027 -- actually used by documents in the job for printers that 2028 -- allow toner quality differentiation. 2030 tonerDensityRequested(42), -- Integer32(1..20) 2031 -- INTEGER: MULTI-ROW: The toner density requested for 2032 -- documents in this job for devices that can vary toner 2033 -- density levels. Level 1 is the lowest density and level 2034 -- 20 is the highest density level. Devices with a smaller 2035 -- range, shall map the 1-20 range evenly onto the 2036 -- implemented range. 2038 tonerDensityUsed(43), -- Integer32(1..20) 2039 -- INTEGER: MULTI-ROW: The toner density used by documents 2040 -- in this job for devices that can vary toner density 2041 -- levels. Level 1 is the lowest density and level 20 is 2042 -- the highest density level. Devices with a smaller range, 2043 -- shall map the 1-20 range evenly onto the implemented 2044 -- range. 2046 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2047 -- Job Progress attributes (requested and consumed) 2048 -- 2049 -- Pairs of these attributes can be used by monitoring 2050 -- applications to show 'thermometers' of progress to users. 2051 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2053 jobCopiesRequested(44), -- Integer32(-2..2147483647) 2054 -- INTEGER: The number of copies of the entire job that are 2055 -- to be produced. 2057 jobCopiesCompleted(45), -- Integer32(-2..2147483647) 2058 -- INTEGER: The number of copies of the entire job that 2059 -- have been completed so far. 2061 documentCopiesRequested(46), -- Integer32(-2..2147483647) 2062 -- INTEGER: The total count of the number of document 2063 -- copies requested. If there are documents A, B, and C, 2064 -- and document B is specified to produce 4 copies, the 2065 -- number of document copies requested is 6 for the job. 2067 documentCopiesCompleted(47), -- Integer32(-2..2147483647) 2068 -- INTEGER: The total count of the number of document 2069 -- copies completed so far for the job as a whole. If there 2070 -- are documents A, B, and C, and document B is specified to 2071 Job Monitoring MIB, V0.81 April 24, 1997 2073 -- produce 4 copies, the number of document copies starts a 2074 -- 0 and runs up to 6 for the job as the job processes. 2076 jobKOctetsRequested(48), -- Integer32(-2..2147483647) 2077 -- INTEGER: The total number of K (1024) octets being 2078 -- requested to be processed in the job, including document 2079 -- and job copies. The agent shall round the actual number 2080 -- of octets up to the next highest K. Thus 0 octets shall 2081 -- be represented as 0, 1-1024 octets shall be represented 2082 -- as 1, 1025-2048 shall be represented as 2, etc. 2083 -- 2084 -- The server/device may update the value of this attribute 2085 -- after each document has been transferred to the 2086 -- server/device or the server/device may provide this value 2087 -- after all documents have been transferred to the 2088 -- server/device, depending on implementation. In other 2089 -- words, while the job is in the held state with the 2090 -- jobStateReasons1 attribute containing a documentsNeeded 2091 -- or preProcessing value, the value of the 2092 -- jobKOctetsRequested attribute depends on implementation 2093 -- and may not correctly reflect the size of the job. 2094 -- 2095 -- In computing this value, the server/device shall include 2096 -- the multiplicative factors contributed by (1) the number 2097 -- of document copies, and (2) the number of job copies, 2098 -- independent of whether the device can process multiple 2099 -- copies of the job or document without making multiple 2100 -- passes over the job or document data and independent of 2101 -- whether the output is collated or not. Thus the 2102 -- server/device computation is independent of the 2103 -- implementation and shall be: 2104 -- 2105 -- (1) Document contribution: Multiply the size of each 2106 -- document in octets by the number of document copies 2107 -- of that document. 2108 -- 2109 -- (2) Add each document contribution together. 2110 -- 2111 -- (3) Job copy contribution: Multiply the job size by 2112 -- the number of job copies. 2113 -- 2114 -- (4) Round up the result to the next higher K (1024 2115 -- multiple). 2117 jobKOctetsTransferred(49), -- Integer32(-2..2147483647) 2118 -- INTEGER: The number of K (1024) octets transferred to 2119 -- the server or device that the agent is instrumenting. 2120 -- This count is independent of the number of copies of the 2121 -- job or documents that will be produced, but is just a 2122 -- measure of the number of bytes transferred to the server 2123 -- or device. 2124 -- 2125 -- The agent shall round the actual number of octets 2126 -- completed up to the next higher K. Thus 0 octets is 2127 -- represented as 0, 1-1023, is represented as 1, 1024-2047 2128 Job Monitoring MIB, V0.81 April 24, 1997 2130 -- is 2, etc. When the job completes, the values of the 2131 -- jobKOctetsRequested and the jobKOctetsTransferred 2132 -- attributes shall be equal. 2133 -- 2134 -- NOTE - The jobKOctetsTransferred can be used in the 2135 -- numerator with the jobKOctetsRequested attribute in the 2136 -- denominator in order to produce a "thermometer" that 2137 -- indicates the progress of the job for agents that do not 2138 -- instrument the jobKOctetsCompleted attribute. 2140 jobKOctetsCompleted(50), -- Integer32(-2..2147483647) 2141 -- INTEGER: The number of K (1024) octets currently 2142 -- processed by the server or device, including document and 2143 -- job copies. For printing, the completed count only 2144 -- includes processing (interpreting) if the implementation 2145 -- distinguishes between the processing and printing states; 2146 -- otherwise, the completed count includes both processing 2147 -- (interpreting) and marking combined together. For 2148 -- scanning, the completed count only includes scanning, if 2149 -- the implementation distinguishes between the processing 2150 -- and (to be registered) scanning states; otherwise the 2151 -- completed count includes both scanning and processing 2152 -- (formatting). 2153 -- 2154 -- The agent shall round the actual number of octets 2155 -- completed up to the next higher K. Thus 0 octets is 2156 -- represented as 0, 1-1023, is represented as 1, 1024-2047 2157 -- is 2, etc. When the job completes, the values of the 2158 -- jobKOctetsRequested and the jobKOctetsCompleted 2159 -- attributes shall be equal. 2160 -- 2161 -- For multiple copies generated from a single data stream, 2162 -- the value shall be incremented as if each copy was 2163 -- printed from a new data stream without resetting the 2164 -- count between copies. See the pagesCompletedCurrentCopy 2165 -- attribute that is reset on each document copy. 2166 -- 2167 -- NOTE - The jobKOctetsCompleted can be used in the 2168 -- numerator with the jobKOctetsRequested attribute in the 2169 -- denominator in order to produce a "thermometer" that 2170 -- indicates the progress of the job. 2172 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2173 -- Impression attributes 2174 -- 2175 -- For a print job, an impression is the marking of the 2176 -- entire side of a sheet. Two-sided processing involves two 2177 -- impressions per sheet. Two-up is the placement of two 2178 -- logical pages on one side of a sheet and so is still a 2179 -- single impression. 2180 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2182 impressionsSpooled(51), -- Integer32(-2..2147483647) 2183 -- INTEGER: The number of impressions spooled to the server 2184 Job Monitoring MIB, V0.81 April 24, 1997 2186 -- or device for the job so far. 2188 impressionsSentToDevice(52), -- Integer32(-2..2147483647) 2189 -- INTEGER: The number of impressions sent to the device 2190 -- for the job so far. 2192 impressionsInterpreted(53), -- Integer32(-2..2147483647) 2193 -- INTEGER: The number of impressions interpreted for the 2194 -- job so far. 2196 impressionsRequested(54), -- Integer32(-2..2147483647) 2197 -- INTEGER: The number of impressions requested by this job 2198 -- to produce. 2200 impressionsCompleted(55), -- Integer32(-2..2147483647) 2201 -- INTEGER: The total number of impressions completed by 2202 -- the device for this job so far. For printing, the 2203 -- impressions completed includes interpreting, marking, and 2204 -- stacking the output. For other types of job services, 2205 -- the number of impressions completed includes the number 2206 -- of impressions processed. 2208 impressionsCompletedCurrentCopy(56), -- Integer32(-2.. 2209 -- 2147483647) 2210 -- INTEGER: The number of impressions completed by the 2211 -- device for the current copy of the current document so 2212 -- far. For printing, the impressions completed includes 2213 -- interpreting, marking, and stacking the output. For 2214 -- other types of job services, the number of impressions 2215 -- completed includes the number of impressions processed. 2216 -- 2217 -- This value shall be reset to 0 for each document in the 2218 -- job and for each document copy. 2220 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2221 -- Page attributes 2222 -- 2223 -- A page is a logical page. Number up can impose more than 2224 -- one page on a single side of a sheet. Two-up is the 2225 -- placement of two logical pages on one side of a sheet so 2226 -- that each side counts as two pages. 2227 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2229 pagesRequested(57), -- Integer32(-2..2147483647) 2230 -- INTEGER: The number of logical pages requested by the 2231 -- job to be processed. 2233 pagesCompleted(58), -- Integer32(-2..2147483647) 2234 -- INTEGER: The total number of logical pages completed for 2235 -- this job so far. 2237 pagesCompletedCurrentCopy(59), -- Integer32(-2..2147483647) 2238 -- INTEGER: The number of logical pages completed for the 2239 -- current copy of the document so far. This value shall be 2240 Job Monitoring MIB, V0.81 April 24, 1997 2242 -- reset to 0 for each document in the job and for each 2243 -- document copy. 2245 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2246 -- Sheet attributes 2247 -- 2248 -- The sheet is a single piece of a medium, whether printing 2249 -- on one or both sides. 2250 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2252 sheetsRequested(60), -- Integer32(-2..2147483647) 2253 -- INTEGER: The total number of medium sheets requested to 2254 -- be processed for this job. 2256 sheetsCompleted(61), -- Integer32(-2..2147483647) 2257 -- INTEGER: The total number of medium sheets that have 2258 -- completed marking and stacking for the entire job so far 2259 -- whether those sheets have been processed on one side or 2260 -- on both. 2262 sheetsCompletedCurrentCopy(62), -- Integer32(-2..2147483647) 2263 -- INTEGER: The number of medium sheets that have completed 2264 -- marking and stacking for the current copy of a document 2265 -- in the job so far whether those sheets have been 2266 -- processed on one side or on both. 2267 -- 2268 -- The value of this attribute shall be reset to 0 as each 2269 -- document in the job starts being processed and for each 2270 -- document copy as it starts being processed. 2272 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2273 -- Resources attributes (requested and consumed) 2274 -- 2275 -- Pairs of these attributes can be used by monitoring 2276 -- applications to show 'thermometers' of usage to users. 2277 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2279 mediumRequestedType(63), -- JmMediumTypeTC (pg 23) 2280 -- OCTETS: MULTI-ROW: The type of the medium that is 2281 -- required by the job. 2283 mediumRequestedName(64), -- OCTET STRING(SIZE(0..63)) 2284 -- OCTETS: MULTI-ROW: The name of the medium that is 2285 -- required by the job. 2287 mediumConsumedName(65), -- OCTET STRING(SIZE(0..63)) 2288 -- AND 2289 -- Integer32(-2..2147483647) 2290 -- OCTETS: MULTI-ROW: The name of the medium AND 2291 -- 2292 -- INTEGER: the number of sheets that have been consumed so 2293 -- far whether those sheets have been processed on one side 2294 -- or on both. This attribute shall have both values. 2296 Job Monitoring MIB, V0.81 April 24, 1997 2298 colorantRequestedIndex(66), -- Integer32(0..2147483647) 2299 -- INTEGER: MULTI-ROW: The index (prtMarkerColorantIndex) 2300 -- in the Printer MIB[1] of the colorant requested. 2302 colorantRequestedName(67), -- OCTET STRING(SIZE(0..63)) 2303 -- OCTETS: MULTI-ROW: The name of the colorant requested. 2305 colorantConsumedIndex(68), -- Integer32(0..2147483647) 2306 -- INTEGER: MULTI-ROW: The index (prtMarkerColorantIndex) 2307 -- in the Printer MIB[1] of the colorant consumed. 2309 colorantConsumedName(69), -- OCTET STRING(SIZE(0..63)) 2310 -- OCTETS: MULTI-ROW: The name of the colorant consumed. 2312 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2313 -- Time attributes (set by server or device) 2314 -- 2315 -- This section of attributes are ones that are set by the 2316 -- server or device that accepts jobs. Two forms of time are 2317 -- provided. Each form is represented in a separate attribute. 2318 -- See section 4.2 on page 14 and section 4.3 on page 15 for the 2319 -- conformance requirements for agents and monitoring 2320 -- applications, respectively. The two forms are: 2321 -- 2322 -- DateAndTime is an 8 or 11 octet binary encoded year, 2323 -- month, day, hour, minute, second, deci-second with 2324 -- optional offset from UTC. See SNMPv2-TC. 2325 -- 2326 -- NOTE: DateAndTime is not printable characters; it is 2327 -- binary. 2328 -- 2329 -- JmTimeStampTC is the time of day measured in the number of 2330 -- seconds since the system was booted. See page 20. 2331 -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2333 jobSubmissionToServerDateAndTime(70), -- DateAndTime (SNMPv2-TC) 2334 -- OCTETS: Configuration 2 and 3: The date and time that 2335 -- the job was submitted to the server. 2337 jobSubmissionToDeviceDateAndTime(71), -- DateAndTime (SNMPv2-TC) 2338 -- OCTETS: Configuration 1 and 3: The date and time that 2339 -- the job was submitted to the device. 2341 jobSubmissionToDeviceTimeStamp(72), -- JmTimeStampTC (pg 20) 2342 -- INTEGER: The time that the job was submitted. 2344 jobStartedBeingHeldTimeStamp(73), -- JmTimeStampTC (pg 20) 2345 -- INTEGER: The time that the job started being held, i.e., 2346 -- the time that the job entered the held state most 2347 -- recently. If the job has never entered the held state, 2348 -- then the value shall be 0 or the attribute shall not be 2349 -- present in the table. 2351 Job Monitoring MIB, V0.81 April 24, 1997 2353 jobStartedProcessingDateAndTime(74), -- DateAndTime (SNMPv2-TC) 2354 -- OCTETS: The date and time that the job started 2355 -- processing. 2357 jobStartedProcessingTimeStamp(75), -- JmTimeStampTC (pg 20) 2358 -- INTEGER: The time that the job started processing. 2360 jobCompletedDateAndTime(76), -- DateAndTime (SNMPv2-TC) 2361 -- OCTETS: The date and time that the job completed 2362 -- processing and the medium is completely stacked in the 2363 -- output bin, i.e., when the job entered the completed 2364 -- state. 2366 jobCompletedTimeStamp(77), -- JmTimeStampTC (pg 20) 2367 -- INTEGER: The time that the job completed processing and 2368 -- the medium is completely stacked in the output bin, i.e., 2369 -- when the job entered the completed state. 2371 jobProcessingCPUTime(78) -- Integer32(-2..2147483647) 2372 -- INTEGER: The amount of CPU time that the job has been 2373 -- processing in seconds. If the job needs attention, that 2374 -- elapsed time shall not be included. In other words, the 2375 -- jobProcessingCPUTime value should be relatively 2376 -- repeatable when the same job is submitted again. 2378 } 2380 JmJobServiceTypesTC ::= TEXTUAL-CONVENTION 2381 STATUS current 2382 DESCRIPTION 2383 "Specifies the type(s) of service to which the job has been 2384 submitted (print, fax, scan, etc.). The service type is 2385 represented as an enum that is bit encoded with each job service 2386 type so that more general and arbitrary services can be created, 2387 such as services with more than one destination type, or ones 2388 with only a source or only a destination. For example, a job 2389 service might scan, faxOut, and print a single job. In this 2390 case, three bits would be set in the jobServiceTypes attribute, 2391 corresponding to the hexadecimal values: 0x8 + 0x20 + 0x4, 2392 respectively, yielding: 0x2C. 2394 Whether this attribute is set from a job attribute supplied by 2395 the job submission client or is set by the recipient job 2396 submission server or device depends on the job submission 2397 protocol. With either implementation, the agent shall return a 2398 non-zero value for this attribute indicating the type of the 2399 job. 2401 One of the purposes of this attribute is to permit a requester 2402 to filter out jobs that are not of interest. For example, a 2403 printer operator may only be interested in jobs that include 2404 Job Monitoring MIB, V0.81 April 24, 1997 2406 printing. That is why the attribute is in the job 2407 identification category. 2409 The following service component types are defined (in 2410 hexadecimal) and are assigned a separate bit value for use with 2411 the jobServiceTypes attribute: 2413 other 0x1 2414 The job contains some document production instructions that 2415 are not one of the identified types. 2417 unknown 0x2 2418 The job contains some document production instructions 2419 whose type is unknown to the agent. 2421 print 0x4 2422 The job contains some document production instructions that 2423 specify printing 2425 scan 0x8 2426 The job contains some document production instructions that 2427 specify scanning 2429 faxIn 0x10 2430 The job contains some document production instructions that 2431 specify receive fax 2433 faxOut 0x20 2434 The job contains some document production instructions that 2435 specify sending fax 2437 getFile 0x40 2438 The job contains some document production instructions that 2439 specify accessing files or documents 2441 putFile 0x80 2442 The job contains some document production instructions that 2443 specify storing files or documents 2445 mailList 0x100 2446 The job contains some document production instructions that 2447 specify distribution of documents using an electronic mail 2448 system. 2450 These bit definitions are the equivalent of a type 2 enum except 2451 that combinations of them may be used together. See section 2452 7.1.2 on page 17." 2454 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 2455 Job Monitoring MIB, V0.81 April 24, 1997 2457 JmJobStateReasons1TC ::= TEXTUAL-CONVENTION 2458 STATUS current 2459 DESCRIPTION 2460 "This textual-convention is used with the jobStateReasons1 2461 attribute to provides additional information regarding the 2462 jmJobState/jobState object/attribute. The jobStateReasons1 2463 attributes identifies the reason or reasons that the job is in 2464 the held, pending, processing, printing, needsAttention, 2465 canceled, or completed state. The server shall indicate the 2466 particular reason(s) by setting the value of the 2467 jobStateReasons1 attribute. While the job states cannot be 2468 added to without impacting deployed clients, it is the intent 2469 that additional JmJobStateReasons1TC enums can be defined 2470 without impacting deployed clients. In other words, the 2471 JmJobStateReasons1TC is intended to be extensible. 2473 When the job does not have any reasons for being in its current 2474 state, the server shall set the value of the jobStateReasons1 2475 attribute to zeros. 2477 Companion job state reasons TCs: JmJobStateReasons2TC, 2478 JmJobStateReasons3TC, JmJobStateReasons4TC, are defined/reserved 2479 for additional 31*3 = 93 job state reasons. This is a type 2 2480 bit definition. See section 7.1.2 on page 17. 2482 The following standard values are defined (in hexadecimal) as 2483 powers of two, since multiple values may be used at the same 2484 time: 2486 other 0x1 2487 The job state reason is not one of the standardized or 2488 registered reasons. 2490 unknown 0x2 2491 The job state reason is not known to the agent. 2493 documentsNeeded 0x4 2494 The job is in the held state because the server or device is 2495 waiting for the job's files to start and/or finish being 2496 transferred before the job can be scheduled to be processed. 2498 jobHoldSet 0x8 2499 The job is in the held state because the client specified 2500 that the job is to be held. 2502 jobProcessAfterSpecified 0x10 2503 The job is in the held state because the client specified a 2504 time specification reflected in the value of the job's 2505 jobProcessAfterDateAndTime attribute that has not yet 2506 occurred. 2508 requiredResourcesNotReady 0x20 2509 Job Monitoring MIB, V0.81 April 24, 1997 2511 The job is in the held state because at least one of the 2512 resources needed by the job, such as media, fonts, resource 2513 objects, etc., is not ready on any of the physical devices 2514 for which the job is a candidate. 2516 successfulCompletion 0x40 2517 The job is in the completed state having completed 2518 successfully. 2520 completedWithWarnings 0x80 2521 The job is in the canceled or completed states having 2522 completed with warnings. 2524 completedWithErrors 0x100 2525 The job is in the canceled or completed states having 2526 completed with errors (and possibly warnings too). 2528 canceledByUser 0x200 2529 The job is in the canceled, state having been canceled by 2530 the user. 2532 canceledByOperator 0x400 2533 The job is in the canceled state having been canceled by the 2534 operator. 2536 abortedBySystem 0x800 2537 The job is in the canceled, state having been aborted by the 2538 system. 2540 logfilePending 0x1000 2541 The job's logfile is pending file transfer. 2543 logfileTransferring 0x2000 2544 The job is in the canceled or completed states and the job's 2545 logfile is being transferred. 2547 The following additional job state reasons have been added to 2548 specify sub-states of the held or completed states that may be 2549 used to represent states that are in ISO DPA[2]: 2551 jobPreProcessing 0x4000 2552 The job has been created on the server or device but the 2553 submitting client is in the process of adding additional job 2554 components and no documents have started processing. The 2555 job maybe in the process of being checked by the 2556 server/device for attributes, defaults being applied, a 2557 device being selected, etc. 2559 jobPaused 0x8000 2560 The job has been indefinitely suspended by a client issuing 2561 an operation to suspend the job so that other jobs may 2562 proceed using the same devices. The client may issue an 2563 operation to resume the paused job at any time, in which 2564 case the server or device places the job in the held or 2565 Job Monitoring MIB, V0.81 April 24, 1997 2567 pending states and the job is eventually resumed at the 2568 point where the job was paused. 2570 jobInterrupted 0x10000 2571 The job has been interrupted while processing by a client 2572 issuing an operation that specifies another job to be run 2573 instead of the current job. The server or device will 2574 automatically resume the interrupted job when the 2575 interrupting job completes. 2577 jobRetained 0x20000 2578 The job is being retained by the server or device after 2579 processing and all of the media have been successfully 2580 stacked in the output bin(s). 2582 The job (1) has completed successfully or with warnings or 2583 errors, (2) has been aborted while printing by the 2584 server/device, or (3) has been canceled by the submitting 2585 user or operator before or during processing. The job's 2586 jobStateReasons1 attribute shall contain the reasons that 2587 the job has entered the completed state. 2589 While the jobRetained state reason is , all of the job's 2590 document data (and submitted resources, such as fonts, 2591 logos, and forms, if any) are retained by the server or 2592 device; thus a client could issue an operation to resubmit 2593 the job (or a copy of the job). 2595 The following job state reasons have been added to align with 2596 the Internet Printing Protocol (IPP): 2598 jobHoldUntil 0x40000 2599 The jobHoldUntil(33) attribute was specified for a named 2600 time period that is still in the future. The job remains in 2601 the held state until the time period arrives and there are 2602 no other reasons to hold the job. 2604 These bit definitions are the equivalent of a type 2 enum except 2605 that combinations of them may be used together. See section 2606 7.1.2 on page 17." 2608 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 2610 JmJobStateReasons2TC ::= TEXTUAL-CONVENTION 2611 STATUS current 2612 DESCRIPTION 2613 "This textual-convention is used with the jobStateReasons2 2614 attribute to provides additional information regarding the 2615 jmJobState/jobState object/attribute. See the description under 2616 JmJobStateReasons1TC on page 45. 2618 Job Monitoring MIB, V0.81 April 24, 1997 2620 The following standard values are defined (in hexadecimal) as 2621 powers of two, since multiple values may be used at the same 2622 time: 2624 cascaded 0x1 2625 After the outbound gateway retrieves all job and document 2626 attributes and data, it stores the information into a spool 2627 directory. Once it has done this, it sends the supervisor a 2628 job-processing event with this job-state-reason which tells 2629 the supervisor to transition to a new job state. 2631 deletedByAdministrator 0x2 2632 The administrator has issued a Delete operation on the job 2633 or a Clean operation on the server or queue containing the 2634 job; therefore the job may have been canceled before or 2635 during processing, and will have no retention-period or 2636 completion-period. 2638 discardTimeArrived 0x4 2639 The job has been deleted (canceled with the job-retention- 2640 period set to 0) due to the fact that the time specified by 2641 the job's job-discard-time has arrived [if the job had 2642 already completed, the only action that would have occurred 2643 is that the job-retention-period would be set to 0 and the 2644 job is deleted]. 2646 postProcessingFailed 0x8 2647 The post-processing agent failed while trying to log 2648 accounting attributes for the job; therefore the job has 2649 been placed into completed state with the retained 2650 jobStateReasons1 attribute value for a system-defined period 2651 of time, so the administrator can examine it, resubmit it, 2652 etc. The post-processing agent is a plug-and-play mechanism 2653 which the system and the customer uses to add functionality 2654 that is executed after a job has finished processing. 2656 submissionInterrupted 0x10 2657 Indicates that the job was not completely submitted for the 2658 following reasons: (1) the server has crashed before the job 2659 was closed by the client. The server shall put the job into 2660 the completed state (and shall not print the job). (2) the 2661 server or the document transfer method has crashed in some 2662 non-recoverable way before the document data was entirely 2663 transferred to the server. The server shall put the job 2664 into the completed state (and shall not print the job). (3) 2665 the client crashed or failed to close the job before the 2666 time-out period. The server shall close the job and put the 2667 job into the held state with job-state-reasons of 2668 submission-interrupted and job-hold-set and with the job's 2669 job-hold attribute set to TRUE. The user may release the 2670 job for scheduling by issuing a job submission or management 2671 protocol operation. 2673 maxJobFaultCountExceeded 0x20 2674 The job has been faulted and returned by the server several 2675 Job Monitoring MIB, V0.81 April 24, 1997 2677 times and that the job-fault-count exceeded the device's (or 2678 server's, if not defined for the device) cfg-max-job-fault- 2679 count. The job is automatically put into the held state 2680 regardless of the hold-jobs-interrupted-by-device-failure 2681 attribute. This job-state-reasons value is used in 2682 conjunction with the job-interrupted-by-device-failure 2683 value. 2685 devicesNeedAttentionTimeOut 0x40 2686 One or more document transforms that the job is using needs 2687 human intervention in order for the job to make progress, 2688 but the human intervention did not occur within the site- 2689 settable time-out value and the server/device has 2690 transitioned the job to the held state. 2692 needsKeyOperatorTimeOut 0x80 2693 One or more devices or document transforms that the job is 2694 using need a specially trained operator (who may need a key 2695 to unlock the device and gain access) in order for the job 2696 to make progress, but the key operator intervention did not 2697 occur within the site-settable time-out value and the 2698 server/device has transitioned the job to the held state. 2700 jobStartWaitTimeOut 0x100 2701 The server/device has stopped the job at the beginning of 2702 processing to await human action, such as installing a 2703 special cartridge or special non-standard media, but the job 2704 was not resumed within the site-settable time-out value and 2705 the server/device has transitioned the job to the held 2706 state. Normally, the job is resumed by means outside the 2707 job submission protocol, such as some local function on the 2708 device. 2710 jobEndWaitTimeOut 0x200 2711 The server/device has stopped the job at the end of 2712 processing/printing to await human action, such as removing 2713 a special cartridge or restoring standard media, but the job 2714 was not resumed within the site-settable time-out value and 2715 the server/device has transitioned the job to the completed 2716 state. Normally, the job is resumed by means outside the 2717 job submission protocol, such as some local function on the 2718 device, whereupon the job shall transition immediately to 2719 the canceled state. 2721 jobPasswordWaitTimeOut 0x400 2722 The server/device has stopped the job at the beginning of 2723 processing to await input of the job's password, but the 2724 human intervention did not occur within the site-settable 2725 time-out value and the server/device has transitioned the 2726 job to the held state. Normally, the password is input and 2727 the job is resumed by means outside the job submission 2728 protocol, such as some local function on the device. 2730 deviceTimedOut 0x800 2731 A device that the job was using has not responded in a 2732 Job Monitoring MIB, V0.81 April 24, 1997 2734 period specified by the device's site-settable attribute. 2736 connectingToDeviceTimeOut 0x1000 2737 The server is attempting to connect to one or more devices 2738 which may be dial-up, polled, or queued, and so may be busy 2739 with traffic from other systems, but server was unable to 2740 connect to the device within the site-settable time-out 2741 value and the server has transitioned the job to the held 2742 state. 2744 transferring 0x2000 2745 The job is being transferred to a down stream server or 2746 device. 2748 queuedInDevice 0x4000 2749 The job has been queued in a down stream server or device. 2751 jobCleanup 0x8000 2752 The server/device is performing cleanup activity as part of 2753 ending normal processing. 2755 processingToStopPoint 0x10000 2756 The requester has issued an operation to interrupt the job 2757 and the server/device is processing up until the specified 2758 stop point occurs. 2760 jobPasswordWait 0x20000 2761 The server/device has selected the job to be next to 2762 process, but instead of assigning resources and started the 2763 job processing, the server/device has transitioned the job 2764 to the held state to await entry of a password (and 2765 dispatched another job, if there is one). The user resumes 2766 the job either locally or by issuing a remote operation and 2767 supplying a job-password=secret-code input parameter that 2768 must match the job's job-password attribute. 2770 validating 0x40000 2771 The server/device is validating the job after accepting the 2772 job. The job state may be held, pending, or processing. 2774 queueHeld 0x80000 2775 The operator has held the entire queue by means outside the 2776 scope of the Job model. 2778 jobProofWait 0x100000 2779 The job has produced a single proof copy and is in the held 2780 state waiting for the requester to issue an operation to 2781 release the job to print normally, obeying the job-copies 2782 and copy-count job and document attributes that were 2783 originally submitted. 2785 heldForDiagnostics 0x200000 2786 The system is running intrusive diagnostics, so the all jobs 2787 are being held. 2789 Job Monitoring MIB, V0.81 April 24, 1997 2791 serviceOffLine 0x400000 2792 The service/document transform is off-line and accepting no 2793 jobs. All pending jobs are put into the held state. This 2794 could be true if its input is impaired or broken. 2796 noSpaceOnServer 0x800000 2797 The job is held because there is no room on the server to 2798 store all of the job. For example, there is no room for the 2799 document data or a scan-to-file job. 2801 pinRequired 0x1000000 2802 The System Administrator settable device policy is (1) to 2803 require PINs, and (2) to hold jobs that do not have a pin 2804 supplied as an input parameter when the job was created. The 2805 requester shall either (1) enter a pin locally at the device 2806 or issue a remote operation supplying the PIN in order for 2807 the job to be able to proceed. 2809 exceededAccountLimit 0x2000000 2810 The account for which this job is drawn has exceeded its 2811 limit. This condition should be detected before the job is 2812 scheduled so that the user does not wait until his/her job 2813 is scheduled only to find that the account is overdrawn. 2814 This condition may also occur while the job is processing 2815 either as processing begins or part way through processing. 2817 An overdraft mechanism should be included to be user- 2818 friendly, so as to minimize the chances that the job cannot 2819 finish or that media is wasted. For example, the 2820 server/device should finish the current copy for a job with 2821 collated document copies, rather than stopping in the middle 2822 of the current document copy. 2824 heldForRetry 0x4000000 2825 The job encountered some errors that the server/device could 2826 not recover from with its normal retry procedures, but the 2827 error is worth trying the job later, such as phone number 2828 busy or remote file system in-accessible. For such a 2829 situation, the server/device shall add the held-for-retry 2830 value to the job's jobStateReasons2 attribute and transition 2831 the job from the processing to the held, rather than to the 2832 completed state. 2834 The following values are from the X/Open PSIS draft standard: 2836 canceledByShutdown 0x8000000 2837 The job was canceled because the server or device was 2838 shutdown before completing the job. The job shall be placed 2839 in the pending state [if the job was not started, else the 2840 job shall be placed in the terminating state]. 2842 deviceUnavailable 0x10000000 2843 This job was aborted by the system because the device is 2844 currently unable to accept jobs. This reason [shall be] used 2845 Job Monitoring MIB, V0.81 April 24, 1997 2847 in conjunction with the reason aborted-by-system. The job 2848 shall be placed in the pending state. 2850 wrongDevice 0x20000000 2851 This job was aborted by the system because the device is 2852 unable to handle this particular job; the spooler should try 2853 another device. This reason [shall be] used in conjunction 2854 with the reason aborted-by- system. The job shall be 2855 pending if the queue contains other physical devices that 2856 the job could print on, and the spooler is capable of not 2857 sending the job back to a physical device that has rejected 2858 the job for this job-state-reasons value. Otherwise, [the 2859 job] shall be placed in the completed state with the 2860 retained value set in the jobStateReasons2 attribute. 2862 badJob 0x40000000 2863 This job was aborted by the system because this job has a 2864 major problem, such as an ill-formed PDL; the spooler should 2865 not even try another device. This reason shall be used in 2866 conjunction with the reason aborted-by-system. The job shall 2867 be placed in the terminating state. 2869 These bit definitions are the equivalent of a type 2 enum except 2870 that combinations of them may be used together. See section 2871 7.1.2 on page 17." 2873 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 2875 JmJobStateReasons3TC ::= TEXTUAL-CONVENTION 2876 STATUS current 2877 DESCRIPTION 2878 "This textual-convention is used with the jobStateReasons3 2879 attribute to provides additional information regarding the 2880 jmJobState/jobState object/attribute. See the description under 2881 JmJobStateReasons1TC on page 45. 2883 The following standard values are defined (in hexadecimal) as 2884 powers of two, since multiple values may be used at the same 2885 time: 2887 jobInterruptedByDeviceFailure 0x1 2888 A device or the print system software that the job was using 2889 has failed while the job was processing. The device is 2890 keeping the job in the held state until an operator can 2891 determine what to do with the job. 2893 These bit definitions are the equivalent of a type 2 enum except 2894 that combinations of them may be used together. See section 2895 7.1.2 on page 17." 2896 Job Monitoring MIB, V0.81 April 24, 1997 2898 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 2900 JmJobStateReasons4TC ::= TEXTUAL-CONVENTION 2901 STATUS current 2902 DESCRIPTION 2903 "This textual-convention is used in the jobStateReasons4 2904 attribute to provides additional information regarding the 2905 jmJobState/jobState object/attribute. See the description under 2906 JmJobStateReasons1TC on page 45. 2908 The following standard values are defined (in hexadecimal) as 2909 powers of two, since multiple values may be used at the same 2910 time: 2912 none yet defined. 2914 These bit definitions are the equivalent of a type 2 enum except 2915 that combinations of them may be used together. See section 2916 7.1.2 on page 17." 2918 SYNTAX INTEGER(0..2147483647) -- 31 bits, all but sign bit 2920 -- The following tables 1-4 show the JmJobStateReasonsnTC values 2921 -- (n=1..4) and the job states for which they are applicable: 2923 -- Table 1 - JmJobStateReasons1TC: Legal Job States for each Job State 2924 -- Reason 2926 -- Descriptive Name Allowed job states 2928 -- documents-needed(1) held 2930 -- job-hold-set(2) held 2932 -- job-process-after-specified(3) held 2934 -- required-resources-not-ready(4) held 2936 -- successful-completion(5) completed 2938 -- completed-with-warnings(6) completed 2940 -- completed-with-errors(7) completed 2941 Job Monitoring MIB, V0.81 April 24, 1997 2943 -- Descriptive Name Allowed job states 2945 -- canceled-by-user(8) canceled 2947 -- canceled-by-operator(9) canceled 2949 -- aborted-by-system(10) canceled 2951 -- logfile-pending(11) canceled 2953 -- logfile-transferring(12) canceled 2955 -- jobPreProcessing(45) held 2957 -- jobPaused(46) held 2959 -- jobInterrupted(47) held 2961 -- jobRetained(48) canceled, completed 2963 -- jobHoldUntilSpecified(49) held 2965 -- Table 2 - JmJobStateReasons2TC: Legal Job States for each Job State 2966 -- Reason 2968 -- Descriptive Name Allowed job states 2970 -- cascaded(13) canceled 2972 -- deleted-by-administrator(14) canceled 2974 -- discard-time-arrived(15) canceled 2976 -- postprint-failed(16) canceled, completed 2978 -- submission-interrupted(17) canceled 2980 -- max-job-fault-count-exceeded(18) canceled 2982 -- devices-need-attention-time-out(19) held, canceled 2983 Job Monitoring MIB, V0.81 April 24, 1997 2985 -- Descriptive Name Allowed job states 2987 -- needs-key-operator-time-out(20) held, canceled 2989 -- job-start-wait-time-out(21) canceled 2991 -- job-end-wait-time-out(22) canceled 2993 -- job-password-wait-time-out(23) held, pending 2995 -- device-timed-out(24) held, canceled 2997 -- connecting-to-device-time-out(25) held, canceled 2999 -- transferring(26) processing 3001 -- queued-in-device(27) processing 3003 -- job-cleanup(28) processing 3005 -- processing-to-stop-point(29) processing 3007 -- job-password-wait(30) held, processing 3009 -- validating(31) held, pending, processing 3011 -- queue-held(32) held 3013 -- job-proof-wait(33) held 3015 -- held-for-diagnostics(34) held 3017 -- service-off-line(35) held 3019 -- no-space-on-server(36) held 3021 -- pin-required(37) held, canceled 3023 -- exceeded-account-limit(38) held, canceled 3025 -- held-for-retry(39) held 3027 -- canceledByShutdown(40) canceled 3029 -- deviceUnavailable(41) pending 3031 -- wrongDevice(42) canceled 3032 Job Monitoring MIB, V0.81 April 24, 1997 3034 -- Descriptive Name Allowed job states 3036 -- badJob(43) canceled 3038 -- Table 3 - JmJobStateReasons3TC: Legal Job States for each Job State 3039 -- Reason 3041 -- jobInterruptedByDeviceFailure(44) held 3042 Job Monitoring MIB, V0.81 April 24, 1997 3044 -- The General Group (Mandatory) 3046 -- The jmGeneralGroup consists entirely of the jmGeneralTable. 3048 -- Implementation of every object in this group is mandatory. 3049 -- See Section 4 entitled 'Conformance Considerations' on page 14. 3051 jmGeneral OBJECT IDENTIFIER ::= { jobmonMIB 5 } 3053 jmGeneralTable OBJECT-TYPE 3054 SYNTAX SEQUENCE OF JmGeneralEntry 3055 MAX-ACCESS not-accessible 3056 STATUS current 3057 DESCRIPTION 3058 "The jmGeneralTable consists of information of a general nature 3059 that are per-job-set, but are not per-job. See Terminology and 3060 Job Model on page 8 for the definition of a job set." 3061 ::= { jmGeneral 1 } 3063 jmGeneralEntry OBJECT-TYPE 3064 SYNTAX JmGeneralEntry 3065 MAX-ACCESS not-accessible 3066 STATUS current 3067 DESCRIPTION 3068 "Information about a job set (queue). 3070 An entry shall exist in this table for each job set." 3071 INDEX { jmJobSetIndex } 3072 ::= { jmGeneralTable 1 } 3074 JmGeneralEntry ::= SEQUENCE { 3075 jmGeneralNumberOfActiveJobs Integer32(0..2147483647), 3076 jmGeneralOldestActiveJobIndex Integer32(0..2147483647), 3077 jmGeneralNewestActiveJobIndex Integer32(0..2147483647), 3078 jmGeneralJobPersistence Integer32(0..2147483647), 3079 jmGeneralAttributePersistence Integer32(0..2147483647), 3080 jmGeneralJobSetName OCTET STRING(SIZE(0..63)) 3081 } 3083 jmGeneralNumberOfActiveJobs OBJECT-TYPE 3084 SYNTAX Integer32(0..2147483647) 3085 MAX-ACCESS read-only 3086 STATUS current 3087 DESCRIPTION 3088 "The current number of active jobs in the jmJobIDTable, 3089 jmJobStateTable, and jmAttributeTable, i.e., the total number of 3090 jobs that are in neither the completed nor the canceled states. 3091 See JmJobStateTC on page 24 for the exact specification of the 3092 semantics of the job states. 3094 If there are no active jobs, the value of this object shall be 3095 0." 3096 ::= { jmGeneralEntry 1 } 3097 Job Monitoring MIB, V0.81 April 24, 1997 3099 jmGeneralOldestActiveJobIndex OBJECT-TYPE 3100 SYNTAX Integer32 (0..2147483647) 3101 MAX-ACCESS read-only 3102 STATUS current 3103 DESCRIPTION 3104 "The jmJobIndex of the oldest active job, i.e., the job in the 3105 jmJobStateTable and jmAttributeTable that has been there the 3106 longest and has neither completed nor been canceled. 3108 When a job completes or is canceled with a jmJobIndex value that 3109 matches this object, the agent shall advance the value to the 3110 next oldest active job, if any. 3112 If there are no active jobs, the agent shall the value of this 3113 object to 0." 3114 ::= { jmGeneralEntry 2 } 3116 jmGeneralNewestActiveJobIndex OBJECT-TYPE 3117 SYNTAX Integer32 (0..2147483647) 3118 MAX-ACCESS read-only 3119 STATUS current 3120 DESCRIPTION 3121 "The jmJobIndex of the newest active job, i.e., the job in the 3122 jmJobStateTable and jmAttributeTable that has been added most 3123 recently and has neither completed nor been canceled. 3125 When a new job is accepted by the server or device that the 3126 agent is instrumenting, the agent shall increment this object by 3127 1 and store the job attributes in the row specified by the 3128 incremented value. If the value would exceed the 3129 implementation-defined maximum value for jmJobIndex, the agent 3130 shall set the value back to 1, i.e., wrap around to the 3131 beginning of the job tables. 3133 It is recommended that the largest value for jmJobIndex be much 3134 larger than the maximum number of jobs that the implementation 3135 can contain at a single time, so as to minimize the pre-mature 3136 re-use of jmJobIndex value for a newer job while clients retain 3137 the same 'stale' value for an older job. 3139 When all jobs become inactive, i.e., enter the completed or 3140 canceled state, the agent shall leave the value of this object 3141 unchanged. 3143 When the server or device is power-cycled, the value of this 3144 object shall be persistent, so that new jobs are not assigned 3145 the same jmJobIndex as recent jobs before the power cycle. 3146 Therefore, the agent shall return the value 0 only on the first 3147 power-up of the server or device. 3149 NOTE - Applications that wish to efficiently access all of the 3150 active jobs may use jmGeneralOldestActiveJobIndex value to start 3151 with the oldest active job and continue until they reach the 3152 index value equal to jmGeneralNewestActiveJobIndex, skipping 3153 over any completed or canceled jobs that might intervene. If an 3154 Job Monitoring MIB, V0.81 April 24, 1997 3156 application detects that the jmGeneralNewestActiveJobIndex is 3157 smaller than jmGeneralOldestActiveJobIndex, the job index has 3158 wrapped. In this case, when the application exceeds the maximum 3159 job index (detected by a no such object status returned from a 3160 GetNext operation for the next conceptual row), the application 3161 shall start over at 1 and continue the GetNext operations to 3162 find the rest of the active jobs." 3163 ::= { jmGeneralEntry 3 } 3165 jmGeneralJobPersistence OBJECT-TYPE 3166 SYNTAX Integer32(0..2147483647) 3167 MAX-ACCESS read-only 3168 STATUS current 3169 DESCRIPTION 3170 "The minimum time in seconds that an entry will remain in the 3171 jmJobIDTable and jmJobStateTable after processing/printing has 3172 completed for this instance of the Job Set, i.e., the time in 3173 seconds starting when the job enters the completed or canceled 3174 state. Depending on implementation, the value of this object 3175 may be either: (1) set by the system administrator by means 3176 outside this specification or (2)fixed by the implementation." 3177 ::= { jmGeneralEntry 4 } 3179 jmGeneralAttributePersistence OBJECT-TYPE 3180 SYNTAX Integer32(0..2147483647) 3181 MAX-ACCESS read-only 3182 STATUS current 3183 DESCRIPTION 3184 "The minimum time in seconds that an entry will remain in the 3185 jmAttributeTable after processing/printing has completed for 3186 this instance of the Job Set, i.e., the time in seconds starting 3187 when the job enters the completed or canceled state. The value 3188 of this object may be either (1) set by the system administrator 3189 by means outside this specification or may be (2) fixed by the 3190 implementation, depending on implementation. 3192 This value shall be equal to or less than the value of 3193 jmGeneralJobPersistence. Attributes that are shared between the 3194 jmJobIDTable/jmJobStateTable and the jmAttributeTable shall be 3195 governed by the larger value in all tables." 3196 ::= { jmGeneralEntry 5 } 3198 jmGeneralJobSetName OBJECT-TYPE 3199 SYNTAX OCTET STRING(SIZE(0..63)) 3200 MAX-ACCESS read-only 3201 STATUS current 3202 DESCRIPTION 3203 "The human readable administratively assigned name of this job 3204 set (by means outside of this MIB). Typically, this name will 3205 be the name of the job queue. If a server or device has only a 3206 single job set, this object can be the administratively assigned 3207 name of the server or device itself. This name does not need to 3208 be unique, though each job set in a single Job Monitoring MIB 3209 should have distinct names. 3211 Job Monitoring MIB, V0.81 April 24, 1997 3213 NOTE - The purpose of this object is to help the user of the job 3214 monitoring application distinguish between several job sets in 3215 implementations that support more than one job set." 3216 ::= { jmGeneralEntry 6 } 3218 -- The Job ID Group (Mandatory) 3220 -- The jmJobIDGroup consists entirely of the jmJobIDTable. 3221 -- 3222 -- The two key indexes that are used in other tables to index jobs: 3223 -- jmJobSetIndex and jmJobIndex are materialized in this group. 3224 -- 3225 -- Implementation of every object in this group is mandatory. 3226 -- See Section 4 entitled 'Conformance Considerations' on page 14. 3228 jmJobID OBJECT IDENTIFIER ::= { jobmonMIB 6 } 3230 jmJobIDTable OBJECT-TYPE 3231 SYNTAX SEQUENCE OF JmJobIDEntry 3232 MAX-ACCESS not-accessible 3233 STATUS current 3234 DESCRIPTION 3235 "The jmJobIDTable provides a correspondence map (1) between the 3236 job submission ID that a client uses to refer to a job and (2) 3237 the jmJobSetIndex and jmJobIndex that the Job Monitoring MIB 3238 agent assigned to the job and that are used to access the job in 3239 all of the other tables in the MIB. If a monitoring application 3240 already knows the jmJobIndex of the job it is querying, that 3241 application need not use the jmJobIDTable." 3242 ::= { jmJobID 1 } 3244 jmJobIDEntry OBJECT-TYPE 3245 SYNTAX JmJobIDEntry 3246 MAX-ACCESS not-accessible 3247 STATUS current 3248 DESCRIPTION 3249 "The map from (1) the jmJobSubmissionIDIndex to (2) the 3250 jmJobSetIndex and jmJobIndex. 3252 An entry shall exist in this table for each job, no matter what 3253 the state of the job and no matter what job set the job is in. 3254 Each job shall appear in one and only one job set." 3255 INDEX { jmJobSubmissionIDIndex } 3256 ::= { jmJobIDTable 1 } 3258 JmJobIDEntry ::= SEQUENCE { 3259 jmJobSubmissionIDIndex OCTET STRING(SIZE(0..32)), 3260 jmJobSetIndex Integer32(1..32767), 3261 jmJobIndex Integer32(1..2147483647) 3262 } 3263 Job Monitoring MIB, V0.81 April 24, 1997 3265 jmJobSubmissionIDIndex OBJECT-TYPE 3266 SYNTAX OCTET STRING(SIZE(0..32)) 3267 MAX-ACCESS not-accessible 3268 STATUS current 3269 DESCRIPTION 3270 "A quasi-unique 32-octet string ID which identifies the job 3271 uniquely within a particular client-server environment. Either 3272 the client or the server assigns the job submission ID for each 3273 job. The monitoring application whether in the client or 3274 running separately, uses the job submission ID to help the user 3275 identify which jmJobIndex was assigned by the agent. 3277 There are multiple formats for the jmJobSubmissionIDIndex. Each 3278 format shall be registered using the procedures of a type 2 3279 enum. See section entitled: 'IANA Registration of enums' on 3280 page 17. 3282 The value of jmJobSubmissionIDIndex should be one of the 3283 registered format types. The first two octets of the string 3284 shall indicate which registered format is being used. The agent 3285 shall assign a string of registered format (00) for any job 3286 without a Job Submission ID. The format values registered so 3287 far are: 3289 Format 3290 Number Description 3291 ------ ------------ 3292 00 Set by the agent when neither the client nor the 3293 server assigned a job submission ID. 3295 01 octets 3-10: 8-decimal-digit random number 3296 octets 11-32: last 22 bytes of the jobName attribute 3298 02 octets 3-10: 8-decimal-digit sequential number 3299 octets 11-32: Client MAC address 3301 03 octets 3-10: 8-decimal-digit sequential number 3302 octets 11-32: last 22 bytes of the client URL 3304 .. to be registered according to procedures of a type 2 3305 enum. See section 7.3 on page 18. 3307 NOTE - the job submission id is only intended to be unique 3308 between a limited set of clients for a limited duration of time, 3309 namely, for the life time of the job in the context of the 3310 server or device that is processing the job. Some of the 3311 formats include something that is unique per client and a random 3312 number so that the same job submitted by the same client will 3313 have a different job submission id. For other formats, where 3314 part of the id is guaranteed to be unique for each client, such 3315 as the MAC address or URL, a sequential number should suffice 3316 for each client (and may be easier for each client to manage). 3317 Therefore, the length of the job submission id has been selected 3318 to reduce the probability of collision to a very low number, but 3319 is not intended to be an absolute guarantee of uniqueness. 3321 Job Monitoring MIB, V0.81 April 24, 1997 3323 None-the-less, collisions could occur, but without bad 3324 consequences, since this MIB is intended to be used only for 3325 monitoring jobs, not for controlling and managing them." 3326 ::= { jmJobIDEntry 1 } 3328 jmJobSetIndex OBJECT-TYPE 3329 SYNTAX Integer32(1..32767) 3330 MAX-ACCESS read-only 3331 STATUS current 3332 DESCRIPTION 3333 "The job set index of the job set in which the job was placed 3334 when that server or device accepted the job. This 16-bit value 3335 in combination with the jmJobIndex value permits the management 3336 application to access the other tables to obtain the job- 3337 specific objects. This value shall be the same for a job in the 3338 jmJobIDTable as the corresponding jmJobSetIndex value in the 3339 jmJobStateTable and jmAttributeTable for this job. 3341 The value(s) of the jmJobSetIndex shall be persistent across 3342 power cycles, so that clients that have retained jmJobSetIndex 3343 values will access the same job sets upon subsequent power-up. 3345 NOTE - an implementation that has only one job set, such as a 3346 printer with a single queue, shall hard code this object with 3347 the value 1. See Terminology and Job Model on page 8 for the 3348 definition of a job set." 3349 ::= { jmJobIDEntry 2 } 3351 jmJobIndex OBJECT-TYPE 3352 SYNTAX Integer32(1..2147483647) 3353 MAX-ACCESS read-only 3354 STATUS current 3355 DESCRIPTION 3356 "The sequential, monatonically increasing identifier index for 3357 the job generated by the server or device when that server or 3358 device accepted the job. This index value permits the 3359 management application to access the other tables to obtain the 3360 job-specific row entries. This value shall be the index used in 3361 the jmJobStateTable and jmAttributeTable for this job. 3363 See jmGeneralNewestActiveJobIndex on page 57 for a discussion 3364 about the largest value of jmJobIndex for an implementation. 3366 NOTE - Agents instrumenting systems that contain jobs with a job 3367 identifier of 0 shall map the job identifier value 0 to a 3368 jmJobIndex value that is one higher than the highest job 3369 identifier value that any job can have on that system." 3370 ::= { jmJobIDEntry 3 } 3372 -- The Job State Group (Mandatory) 3374 -- The jmJobStateGroup consists entirely of the jmJobStateTable. 3376 Job Monitoring MIB, V0.81 April 24, 1997 3378 -- 3379 -- Implementation of every object in this group is mandatory. 3380 -- See Section 4 entitled 'Conformance Considerations' on page 14. 3382 jmJobStateG OBJECT IDENTIFIER ::= { jobmonMIB 7 } 3384 jmJobStateTable OBJECT-TYPE 3385 SYNTAX SEQUENCE OF JmJobStateEntry 3386 MAX-ACCESS not-accessible 3387 STATUS current 3388 DESCRIPTION 3389 "The jmJobStateTable consists of basic job state and status 3390 information for each job in a job set that (1) monitoring 3391 applications need to be able to access in a single SNMP Get 3392 operation, (2) that have a single value per job, and (3) that 3393 shall always be implemented. 3395 NOTE - Every accessible object in this table shall have the same 3396 value as one of the attributes in the jmAttributeTable. 3397 Implementations may either keep a separate copy or may share 3398 each value that is common between the jmJobStateTable and the 3399 jmAttributeTable. The persistence of the two tables may be 3400 different depending on implementation and/or system 3401 administrator policy as specified by the jmGeneralJobPersistence 3402 and jmGeneralAttributePersistence objects defined on page 58. 3403 Thus an accounting application need only copy the entire 3404 jmAttributeTable or selected job rows and will obtain all of the 3405 information about those jobs and their states." 3406 ::= { jmJobStateG 1 } 3408 jmJobStateEntry OBJECT-TYPE 3409 SYNTAX JmJobStateEntry 3410 MAX-ACCESS not-accessible 3411 STATUS current 3412 DESCRIPTION 3413 "Basic per-job state and status information. 3415 An entry shall exist in this table for each job, no matter what 3416 the state of the job is. Each job shall appear in one and only 3417 one job set." 3418 INDEX { jmJobSetIndex, jmJobIndex } 3419 ::= { jmJobStateTable 1 } 3421 JmJobStateEntry ::= SEQUENCE { 3422 jmJobState JmJobStateTC, -- pg 24 3423 jmJobStateKOctetsCompleted Integer32(-2..2147483647), 3424 jmJobStateImpressionsCompleted Integer32(-2..2147483647), 3425 jmJobStateAssociatedValue Integer32(-2..2147483647) 3426 } 3428 jmJobState OBJECT-TYPE 3429 MAX-ACCESS read-only 3430 Job Monitoring MIB, V0.81 April 24, 1997 3432 STATUS current 3433 DESCRIPTION 3434 "The current state of the job (pending, processing, held, etc.). 3436 The value of this object shall always be the same as that of the 3437 jobState attribute, so that this information appears in both the 3438 jmJobStateTable and the jmAttributeTable simultaneously. See 3439 the JmJobStateTC textual-convention on page 20 and the jobState 3440 attribute on page 30 in the jmAttributeTable for the full 3441 specification of this object/attribute." 3442 ::= { jmJobStateEntry 1 } 3444 jmJobStateKOctetsCompleted OBJECT-TYPE 3445 SYNTAX Integer32(-2..2147483647) 3446 MAX-ACCESS read-only 3447 STATUS current 3448 DESCRIPTION 3449 "The current number of octets completed processing by the server 3450 or device measured in units of K (1024) octets. 3452 The value of this object shall always be the same as that of the 3453 jobKOctetsCompleted attribute, so that this information appears 3454 in both the jmJobStateTable and the jmAttributeTable 3455 simultaneously. See the jobKOctetsCompleted attribute on page 3456 40 in the jmAttributeTable for the full specification of this 3457 object/attribute." 3458 ::= { jmJobStateEntry 2 } 3460 jmJobStateImpressionsCompleted OBJECT-TYPE 3461 SYNTAX Integer32(-2..2147483647) 3462 MAX-ACCESS read-only 3463 STATUS current 3464 DESCRIPTION 3465 "The current number of impressions completed being marked and 3466 stacked by the device for this job so far. 3468 The value of this object shall always be the same as that of the 3469 impressionsCompleted attribute, so that this information appears 3470 in both the jmJobStateTable and the jmAttributeTable 3471 simultaneously. See the impressionsCompleted attribute on page 3472 41 in the jmAttributeTable for the full specification of this 3473 object/attribute." 3474 ::= { jmJobStateEntry 3 } 3476 jmJobStateAssociatedValue OBJECT-TYPE 3477 SYNTAX Integer32(-2..2147483647) 3478 MAX-ACCESS read-only 3479 STATUS current 3480 DESCRIPTION 3481 "The value of the most relevant attribute associated with the 3482 job's current state. 3484 The value of this object shall always be the same as that of the 3485 jobStateAssociatedValue attribute, so that this information 3486 Job Monitoring MIB, V0.81 April 24, 1997 3488 appears in both the jmJobStateTable and the jmAttributeTable 3489 simultaneously. See the jobStateAssociatedValue attribute on 3490 page 30 in the jmAttributeTable for the full specification of 3491 this object/attribute." 3492 ::= { jmJobStateEntry 4 } 3494 -- The Attribute Group (Mandatory) 3496 -- The jmAttributeGroup consists entirely of the jmAttributeTable. 3497 -- 3498 -- Implementation of every object in this group is mandatory. 3499 -- See Section 4 entitled 'Conformance Considerations' on page 14. 3500 -- 3501 -- Some attributes are mandatory for agent conformance, and the rest are 3502 -- conditionally mandatory. See the specification of the 3503 -- JmAttributeTypeTC on page 27 for which attributes are mandatory for 3504 -- agents to implement. 3506 jmAttribute OBJECT IDENTIFIER ::= { jobmonMIB 8 } 3508 jmAttributeTable OBJECT-TYPE 3509 SYNTAX SEQUENCE OF JmAttributeEntry 3510 MAX-ACCESS not-accessible 3511 STATUS current 3512 DESCRIPTION 3513 "The jmAttributeTable shall contain attributes of the job and 3514 document(s) for each job in a job set. Instead of allocating 3515 distinct objects for each attribute, each attribute is 3516 represented as a separate row in the jmAttributeTable. Some 3517 attributes represent information about the job and document(s), 3518 such as file-names, document-names, submission-time, completion- 3519 time, size, etc. Other attributes represent requested and/or 3520 consumed resources for each job for use by monitoring and 3521 accounting applications. 3523 The jmAttributeTable is a per-job table with an extra index for 3524 each type of attribute (jmAttributeTypeIndex) that a job can 3525 have and an additional index (jmAttributeInstanceIndex) for 3526 those attributes that can have multiple instances per job. The 3527 jmAttributeTypeIndex object shall contain an enum type that 3528 indicates the type of attribute (see JmAttributeTypeTC on page 3529 27). The value of the attribute shall be represented in either 3530 the jmAttributeValueAsInteger or jmAttributeValueAsOctets 3531 objects, or both, as specified in the JmAttributeTypeTC textual- 3532 convention. 3534 1)The agent shall create rows in the jmAttributeTable as the 3535 server or device is able to discover the attributes either 3536 from the job submission protocol itself or from the document 3537 PDL. As the documents are interpreted, the interpreter may 3538 discover additional attributes and so the agent adds 3539 additional rows to this table. As the attributes that 3540 Job Monitoring MIB, V0.81 April 24, 1997 3542 represent resources are actually consumed, the usage counter 3543 contained in the jmAttributeValueAsInteger object is 3544 incremented according to the units indicated in the 3545 description of the JmAttributeTypeTC enum." 3546 ::= { jmAttribute 1 } 3548 jmAttributeEntry OBJECT-TYPE 3549 SYNTAX JmAttributeEntry 3550 MAX-ACCESS not-accessible 3551 STATUS current 3552 DESCRIPTION 3553 "Attributes representing information about the job and 3554 document(s) or resources required and/or consumed. 3556 Zero or more entries shall exist in this table for each job in a 3557 job set. Each job shall appear in one and only one job set." 3558 INDEX { jmJobSetIndex, jmJobIndex, jmAttributeTypeIndex, 3559 jmAttributeInstanceIndex } 3560 ::= { jmAttributeTable 1 } 3562 JmAttributeEntry ::= SEQUENCE { 3563 jmAttributeTypeIndex JmAttributeTypeTC, -- pg 27 3564 jmAttributeInstanceIndex Integer32(1..32767), 3565 jmAttributeValueAsInteger Integer32(-2..2147483647), 3566 jmAttributeValueAsOctets OCTET STRING(SIZE(0..63)) 3567 } 3569 jmAttributeTypeIndex OBJECT-TYPE 3570 MAX-ACCESS not-accessible 3571 STATUS current 3572 DESCRIPTION 3573 "The type of attribute that this row entry represents. 3575 The type may identify information about the job or document(s) 3576 or may identify a resource required to process the job before 3577 the job start processing and/or consumed by the job as the job 3578 is processed. 3580 Examples of job and document information include: 3581 jobCopiesRequested, documentCopiesRequested, jobCopiesCompleted, 3582 documentCopiesCompleted, fileName, and documentName. 3584 Examples of resources required and consumed include: 3585 jobKOctetsRequested, jobKOctetsCompleted, pagesRequested, 3586 pagesCompleted, mediumRequested, and mediumConsumed, 3587 respectively. 3589 In the definitions of the enums in the JmAttributeTypeTC textual 3590 convention, each description indicates whether the value of the 3591 attribute shall be represented using the 3592 jmAttributeValueAsInteger or the jmAttributeValueAsOctets 3593 objects by the initial tag: 'INTEGER:' or 'OCTETS:', 3594 respectively. A very few attributes use both objects 3595 (mediumConsumed) and so have both tags. 3597 Job Monitoring MIB, V0.81 April 24, 1997 3599 If the jmAttributeValueAsInteger object is not used (no 3600 'INTEGER:' tag), the agent shall return the value (-1) 3601 indicating other. If the jmAttributeValueAsOctets object is not 3602 used (no 'OCTETS:' tag), the agent shall return a zero-length 3603 octet string." 3604 ::= { jmAttributeEntry 1 } 3606 jmAttributeInstanceIndex OBJECT-TYPE 3607 SYNTAX Integer32(1..32767) 3608 MAX-ACCESS not-accessible 3609 STATUS current 3610 DESCRIPTION 3611 "A running 16-bit index of the attributes of the same type for 3612 each job. For those attributes with only a single instance per 3613 job, this index value shall be 1. For those attributes that are 3614 a single value per document, the index value shall be the 3615 document number, starting with 1 for the first document in the 3616 job. Jobs with only a single document shall use the index value 3617 of 1. For those attributes that can have multiple values per 3618 job or per document, such as documentFormatIndex or 3619 documentFormatType, the index shall be a running index for the 3620 job as a whole, starting at 1." 3621 ::= { jmAttributeEntry 2 } 3623 jmAttributeValueAsInteger OBJECT-TYPE 3624 SYNTAX Integer32(-2..2147483647) 3625 MAX-ACCESS read-only 3626 STATUS current 3627 DESCRIPTION 3628 "The integer value of the attribute. The value of the attribute 3629 shall be represented as an integer if the enum description in 3630 the JmAttributeTypeTC definition (see page 27) has the tag: 3631 'INTEGER:'. 3633 Depending on the enum definition, this object value may be an 3634 integer, a counter, an index, or an enum, depending on the 3635 jmAttributeTypeIndex value. The units of this value are 3636 specified in the enum description. 3638 For those attributes that are accumulating job consumption as 3639 the job is processed as specified in the JmAttributeTypeTC, 3640 shall contain the final value after the job completes 3641 processing, i.e., this value shall indicate the total usage of 3642 this resource made by the job. 3644 A monitoring application is able to copy this value to a 3645 suitable longer term storage for later processing as part of an 3646 accounting system. 3648 Since the agent may add attributes representing resources to 3649 this table while the job is waiting to be processed or being 3650 processed, which can be a long time before any of the resources 3651 are actually used, the agent shall set the value of the 3652 Job Monitoring MIB, V0.81 April 24, 1997 3654 jmAttributeValueAsInteger object to 0 for resources that the job 3655 has not yet consumed. 3657 Attributes for which the concept of an integer value is 3658 meaningless, such as fileName, interpreter, and 3659 physicalDeviceName, do not have the 'INTEGER:' tag in the 3660 JmAttributeTypeTC definition and so shall return a value of (-1) 3661 to indicate other for jmAttributeValueAsInteger. 3663 For attributes which do have the 'INTEGER:' tag in the 3664 JmAttributeTypeTC definition, if the integer value is not (yet) 3665 known, the value shall be (-2) to represent unknown or the 3666 attribute row shall not be present in the table." 3667 ::= { jmAttributeEntry 3 } 3669 jmAttributeValueAsOctets OBJECT-TYPE 3670 SYNTAX OCTET STRING(SIZE(0..63)) 3671 MAX-ACCESS read-only 3672 STATUS current 3673 DESCRIPTION 3674 "The octet string value of the attribute. The value of the 3675 attribute shall be represented as an OCTET STRING if the enum 3676 description in the JmAttributeTypeTC definition (see page 27) 3677 has the tag: 'OCTETS:'. 3679 Depending on the enum definition, this object value may be a 3680 coded character set string (text) or a binary octet string, such 3681 as DateAndTime. 3683 Attributes for which the concept of an octet string value is 3684 meaningless, such as pagesCompleted, do not have the tag 3685 'OCTETS:' in the JmAttributeTypeTC definition and so shall 3686 return a value of a zero length string for the 3687 jmAttributeValueAsOctets object." 3688 ::= { jmAttributeEntry 4 } 3690 -- Conformance Information 3692 jmMIBConformance OBJECT IDENTIFIER ::= { jobmonMIB 2 } 3694 -- compliance statements 3695 jmMIBCompliance MODULE-COMPLIANCE 3696 STATUS current 3697 DESCRIPTION 3698 "The compliance statement for agents that implement the 3699 job monitoring MIB." 3700 MODULE -- this module 3701 MANDATORY-GROUPS { 3702 jmGeneralGroup, jmJobIDGroup, jmJobStateGroup, jmAttributeGroup 3703 } 3705 OBJECT jmJobState 3706 SYNTAX INTEGER { 3707 processing(5), 3708 Job Monitoring MIB, V0.81 April 24, 1997 3710 needsAttention(7), 3711 canceled(8), 3712 completed(9) 3713 } 3714 DESCRIPTION 3715 "It is conformant for an agent to implement just these four 3716 states in this object. Any additional states are conditionally 3717 mandatory, i.e., an agent shall represent any additional states 3718 that the server or device implements. However, a client shall 3719 accept all of the states from an agent." 3721 -- OBJECT jmAttributeTypeIndex 3722 -- SYNTAX INTEGER { 3723 -- jobState(3), 3724 -- numberOfInterveningJobs(9), 3725 -- deviceAlertCode(10), 3726 -- jobKOctetsRequested(48), 3727 -- jobKOctetsCompleted(50), 3728 -- impressionsRequested(54), 3729 -- impressionsCompleted(55), 3730 -- outputBinName(35) 3731 -- } 3732 -- DESCRIPTION 3733 --"It is conformant for an agent to implement just these 8 3734 -- attributes. Any additional attributes are conditionally 3735 -- mandatory, i.e., an agent shall represent any additional 3736 -- states that the server or device implements. However, a 3737 -- client shall accept all of the attributes from an agent and 3738 -- either display them to its user or ignore them. 3739 -- 3740 -- NOTE - SMI does not allow an enum to be declared as mandatory 3741 -- if that enum is not a member of a group, but 3742 -- jmAttributeTypeIndex cannot be a member of a group and still 3743 -- be not-accessible. So this MIB comments the mandatory 3744 -- attributes as if SMI allowed such a declaration in order to 3745 -- declare the mandatory attributes." 3747 -- There are no conditionally mandatory or optional groups. 3749 ::= { jmMIBConformance 1 } 3751 jmMIBGroups OBJECT IDENTIFIER ::= { jmMIBConformance 2 } 3753 jmGeneralGroup OBJECT-GROUP 3754 OBJECTS { 3755 jmGeneralNumberOfActiveJobs, jmGeneralOldestActiveJobIndex, 3756 jmGeneralNewestActiveJobIndex, jmGeneralJobPersistence, 3757 jmGeneralAttributePersistence, jmGeneralJobSetName} 3758 STATUS current 3759 DESCRIPTION 3760 "The general group." 3761 ::= { jmMIBGroups 1 } 3763 jmJobIDGroup OBJECT-GROUP 3764 OBJECTS { 3765 Job Monitoring MIB, V0.81 April 24, 1997 3767 jmJobSetIndex, jmJobIndex } 3768 STATUS current 3769 DESCRIPTION 3770 "The job ID group." 3771 ::= { jmMIBGroups 2 } 3773 jmJobStateGroup OBJECT-GROUP 3774 OBJECTS { 3775 jmJobState, jmJobStateKOctetsCompleted, 3776 jmJobStateImpressionsCompleted, jmJobStateAssociatedValue } 3777 STATUS current 3778 DESCRIPTION 3779 "The job state group." 3780 ::= { jmMIBGroups 3 } 3782 jmAttributeGroup OBJECT-GROUP 3783 OBJECTS { 3784 jmAttributeValueAsInteger, jmAttributeValueAsOctets } 3785 STATUS current 3786 DESCRIPTION 3787 "The attribute group." 3788 ::= { jmMIBGroups 4 } 3790 END 3791 Job Monitoring MIB, V0.81 April 24, 1997 3793 Appendix A - Job Life Cycle 3795 12. Job Life Cycle 3797 The job object has well-defined states and client operations that affect 3798 the transition between the job states. Internal server and device 3799 actions also affect the transitions of the job between the job states. 3800 These states and transitions are referred to as the job's life cycle. 3802 Not all implementations of job submission protocols have all of the 3803 states of the job model specified here. The job model specified here is 3804 intended to be a superset of most implementations. It is the purpose of 3805 the agent to map the particular implementation's job life cycle onto the 3806 one specified here. The agent may omit any states not implemented. 3807 Only the processing, needsAttention, canceled, and completed states are 3808 required to be implemented by an agent. However, a management 3809 application shall be prepared to accept any of the states in the job 3810 life cycle specified here, so that the management application can 3811 interoperate with any conforming agent. 3813 The job states are intended to be the user visible. The agent shall 3814 make these states visible in the MIB, but only for the subset of job 3815 states that the implementation has. Implementations may need to have 3816 sub-states of these user-visible states. Such implementation is not 3817 specified in this model, is not supported by this Job Monitoring MIB, 3818 and will vary from implementation to implementation. 3820 One of the purposes of the job model is to specify what is invariant 3821 from implementation to implementation as far as the MIB specification 3822 and the user is concerned. Therefore, job states are all intended to 3823 last a user-visible length of time in most implementations. However, 3824 some jobs may pass through some states in zero time in some situations 3825 and/or in some implementations. 3827 The job model does not specify how accounting and auditing is 3828 implemented, except to require that accounting and auditing logs are 3829 separate from the job life cycle and last longer than job objects. Jobs 3830 in the completed state are not logs, since jobs in the completed state 3831 are accessible via job submission and/or job management protocol 3832 operations and are removed from these job tables after a site-settable 3833 period of time. Accounting information may be copied incrementally to 3834 the accounting logs as a job processes, or may be copied while the job 3835 is in the completed state, depending on implementation. The same is 3836 true for auditing logs. 3838 The jmJobState object and the jobState attribute both specify the 3839 standard job states. The legal job state transitions are shown in the 3840 state transition diagram presented in Table 1. An implementation need 3841 not support all legal job state transitions. 3843 Bergman, Hastings, Isaacson, Lewis [Page 3844 72] 3845 Job Monitoring MIB, V0.81 April 24, 1997 3847 Table 12-2 - Legal Job State Transition Table 3849 New State 3851 "active" jobs 3853 unkno hel pend proce prin needsAt cance compl 3854 wn d ing ssing ting tention led eted 3855 Old state 2 3 4 5 6 7 8 9 3857 unknown(2) yes yes yes yes 3859 held(3) yes yes yes yes 3861 pending(4) yes yes yes yes 3863 processing(5) yes yes yes yes yes 3865 printing(6) yes yes yes yes 3867 needsAttention(7) yes yes yes yes 3869 canceled(8) yes 3871 completed(9) yes 3873 13. Bibliography 3875 [1] The Printer MIB - RFC 1579, proposed IETF standard. Also an 3876 Internet-Draft on the standards track as a draft standard: draft-ietf- 3877 printmib-mib-info-01.txt 3879 [2] ISO/IEC 10175 Document Printing Application (DPA). See 3880 ftp://ftp.pwg.org/pub/pwg/dpa/ 3882 [3] Internet Printing Protocol (IPP), in progress on the IETF standards 3883 track. See draft-ietf-ipp-model-00.txt. See also 3884 http://www.pwg.org/ipp/index.html 3886 Bergman, Hastings, Isaacson, Lewis [Page 3887 73] 3888 Job Monitoring MIB, V0.81 April 24, 1997 3890 [4] IEEE 1284.1, Transport-independent Printer System Interface (TIPSI). 3892 [5] MIB-II, RFC 1213. 3894 [6] Host Resources MIB, RFC 1514 3896 14. Author's Addresses 3897 Ron Bergman 3898 Dataproducts Corp. 3900 Phone: 805-578-4421 3901 Fax: 3902 Email: rbergman@dpc.com 3904 Tom Hastings 3905 Xerox Corporation, ESAE-231 3906 701 S. Aviation Blvd. 3907 El Segundo, CA 90245 3909 Phone: 310-333-6413 3910 Fax: 310-333-5514 3911 EMail: hastings@cp10.es.xerox.com 3913 Scott A. Isaacson 3914 Novell, Inc. 3915 122 E 1700 S 3916 Provo, UT 84606 3918 Phone: 801-861-7366 3919 Fax: 801-861-4025 3920 EMail: scott_isaacson@novell.com 3922 Harry Lewis 3923 IBM Corporation 3924 6300 Diagonal Hwy 3925 Boulder, CO 80301 3927 Phone: (303) 924-5337 3928 Fax: 3929 Email: harryl@us.ibm.com 3931 Send comments to: 3932 JMP Mailing List: jmp@pwg.org 3934 JMP Mailing List Subscription Information: 3935 jmp-request@pwg.org 3937 Bergman, Hastings, Isaacson, Lewis [Page 3938 74] 3939 Job Monitoring MIB, V0.81 April 24, 1997 3941 Other Participants: 3942 Chuck Adams - Tektronix 3943 Jeff Barnett - IBM 3944 Keith Carter, IBM Corporation 3945 Jeff Copeland - QMS 3946 Andy Davidson - Tektronix 3947 Roger deBry - IBM 3948 Mabry Dozier - QMS 3949 Lee Ferrel - Canon 3950 Steve Gebert - IBM 3951 Robert Herriot - Sun Microsystems Inc. 3952 Shige Kanemitsu - Kyocera 3953 David Kellerman - Northlake Software 3954 Rick Landau - Digital 3955 Harry Lewis - IBM 3956 Pete Loya - HP 3957 Ray Lutz - Cognisys 3958 Jay Martin - Underscore 3959 Mike MacKay, Novell, Inc. 3960 Stan McConnell - Xerox 3961 Carl-Uno Manros, Xerox, Corp. 3962 Pat Nogay - IBM 3963 Bob Pentecost - HP 3964 Rob Rhoads - Intel 3965 David Roach - Unisys 3966 Hiroyuki Sato - Canon 3967 Bob Setterbo - Adobe 3968 Gail Songer, EFI 3969 Mike Timperman - Lexmark 3970 Randy Turner - Sharp 3971 William Wagner - Digital Products 3972 Jim Walker - Dazel 3973 Chris Wellens - Interworking Labs 3974 Rob Whittle - Novell 3975 Don Wright - Lexmark 3976 Lloyd Young - Lexmark 3977 Atsushi Yuki - Kyocera 3978 Peter Zehler, Xerox, Corp. 3980 Bergman, Hastings, Isaacson, Lewis [Page 3981 75] 3982 Job Monitoring MIB, V0.81 April 24, 1997 3984 15. INDEX 3986 This index includes the textual conventions, the objects, and the 3987 attributes. Textual conventions all start with the prefix: "JM" and 3988 end with the suffix: "TC". Objects all starts with the prefix: "jm" 3989 followed by the group name. Attributes are identified with enums, and 3990 so start with any lower case letter and have no special prefix. 3992 colorantConsumedIndex, 43 3993 colorantConsumedName, 43 3994 colorantRequestedIndex, 42 3995 colorantRequestedName, 43 3996 deviceAlertCode, 32 3997 deviceNameRequested, 34 3998 documentCopiesCompleted, 38 3999 documentCopiesRequested, 38 4000 documentFormatIndex, 35 4001 documentFormatType, 36 4002 documentName, 35 4003 fileName, 35 4004 finishing, 37 4005 impressionsCompleted, 41 4006 impressionsCompletedCurrentCopy, 41 4007 impressionsInterpreted, 41 4008 impressionsRequested, 41 4009 impressionsSentToDevice, 41 4010 impressionsSpooled, 40 4011 jmAttributeInstanceIndex, 66 4012 jmAttributeTypeIndex, 65 4013 JmAttributeTypeTC, 27 4014 jmAttributeValueAsInteger, 66 4015 jmAttributeValueAsOctets, 67 4016 JmFinishingTC, 21 4017 jmGeneralAttributePersistence, 58 4018 jmGeneralJobPersistence, 58 4019 jmGeneralJobSetName, 58 4020 jmGeneralNewestActiveJobIndex, 57 4021 jmGeneralNumberOfActiveJobs, 56 4022 jmGeneralOldestActiveJobIndex, 57 4023 jmJobIndex, 61 4024 JmJobServiceTypesTC, 44 4025 jmJobSetIndex, 61 4026 JmJobSourcePlatformTypeTC, 21 4027 jmJobState, 62 4028 jmJobStateAssociatedValue, 63 4029 jmJobStateImpressionsCompleted, 63 4030 jmJobStateKOctetsCompleted, 63 4031 JmJobStateReasons1TC, 45 4032 JmJobStateReasons2TC, 48 4033 JmJobStateReasons3TC, 53 4034 JmJobStateReasons4TC, 54 4035 JmJobStateTC, 24 4036 jmJobSubmissionIDIndex, 60 4037 JmMediumTypeTC, 23 4039 Bergman, Hastings, Isaacson, Lewis [Page 4040 76] 4041 Job Monitoring MIB, V0.81 April 24, 1997 4043 JmPrintQualityTC, 23 4044 JmTimeStampTC, 20 4045 JmTonerEconomyTC, 23 4046 jobAccountName, 33 4047 jobComment, 35 4048 jobCompletedDateAndTime, 44 4049 jobCompletedTimeStamp, 44 4050 jobCopiesCompleted, 38 4051 jobCopiesRequested, 38 4052 jobHoldUntil, 37 4053 jobKOctetsCompleted, 40 4054 jobKOctetsRequested, 39 4055 jobKOctetsTransferred, 39 4056 jobName, 32 4057 jobOwner, 33 4058 jobPriority, 36 4059 jobProcessAfterDateAndTime, 36 4060 jobProcessingCPUTime, 44 4061 jobServiceTypes, 33 4062 jobSourceChannelIndex, 34 4063 jobSourcePlatformType, 34 4064 jobStartedBeingHeldTimeStamp, 43 4065 jobStartedProcessingDateAndTime, 43 4066 jobStartedProcessingTimeStamp, 44 4067 jobState, 30 4068 jobStateAssociatedValue, 30 4069 jobStateReasons1, 31 4070 jobStateReasons2, 31 4071 jobStateReasons3, 31 4072 jobStateReasons4, 31 4073 jobSubmissionToDeviceDateAndTime, 43 4074 jobSubmissionToDeviceTimeStamp, 43 4075 jobSubmissionToServerDateAndTime, 43 4076 mediumConsumedName, 42 4077 mediumRequestedName, 42 4078 mediumRequestedType, 42 4079 numberOfDocuments, 35 4080 numberOfInterveningJobs, 32 4081 other, 29 4082 outputBinIndex, 37 4083 outputBinName, 37 4084 pagesCompleted, 41 4085 pagesCompletedCurrentCopy, 41 4086 pagesRequested, 41 4087 physicalDeviceIndex, 35 4088 physicalDeviceName, 35 4089 printQualityRequested, 37 4090 printQualityUsed, 37 4091 processingMessage, 32 4092 queueNameRequested, 34 4093 serverAssignedJobName, 32 4094 sheetsCompleted, 42 4095 sheetsCompletedCurrentCopy, 42 4096 sheetsRequested, 42 4098 Bergman, Hastings, Isaacson, Lewis [Page 4099 77] 4100 Job Monitoring MIB, V0.81 April 24, 1997 4102 sides, 37 4103 submittingApplicationName, 34 4104 submittingServerName, 34 4105 tonerDensityRequested, 38 4106 tonerDensityUsed, 38 4107 tonerEcomonyRequested, 38 4108 tonerEcomonyUsed, 38 4109 unknown, 30