Job Monitoring MIB Mar 26, 1997 INTERNET-DRAFT Ron Bergman Dataproducts Corp. Tom Hastings Xerox Corporation Scott Isaacson Novell, Inc. Harry Lewis IBM Corp. March 1997 Job Monitoring MIB Expires Sept 26, 1997 Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." To learn the current status of any Internet-Draft, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Abstract This Internet-Draft specifies a set of SNMP MIB objects for (1) monitoring the status and progress of print jobs (2) obtaining resource requirements before a job is processed, (3) monitoring resource consumption while a job is being processed and (4) collecting resource accounting data after the completion of a job. This MIB is intended to be implemented in printers or a server that supports one or more printers. Use of the object Bergman, Hastings, Isaacson, Lewis [Page 1] Job Monitoring MIB Mar 26, 1997 set is not limited to printing. However, support for services other than printing is outside the scope of this Job Monitoring MIB. Future extensions to this MIB may include, but are not limited to, fax machines and scanners. Bergman, Hastings, Isaacson, Lewis [Page ] 2 Job Monitoring MIB Mar 26, 1997 TABLE OF CONTENTS 1. Introduction 8 2. Terminology and Job Model 11 2.1 Job Life Cycle 14 3. System Configurations for the Job Monitoring MIB 25 3.1 Configuration 1 - client-printer 25 3.2 Configuration 2 - client-server-printer - agent in the server 27 3.3 Configuration 3 - client-server-printer - client monitors printer agent and server 29 4. Conformance Considerations 31 4.1 Conformance Terminology 31 4.2 Agent Conformance Requirements 31 4.2.1 MIB II System Group objects 32 4.2.2 MIB II Interface Group objects 32 4.2.3 Printer MIB objects 32 4.3 Job Monitoring Application Conformance Requirements 32 5. Job Identification 33 6. Internationalization Considerations 34 7. IANA Considerations 35 7.1 IANA Registration of enums 35 7.2 IANA Registration of bit string values 36 8. Security Considerations 37 Bergman, Hastings, Isaacson, Lewis [Page 3] Job Monitoring MIB Mar 26, 1997 8.1 Read-Write objects 37 8.2 Read-Only Objects In Other User's Jobs 37 9. Returning Objects With No Value In Mandatory Groups 37 10. Notification and Traps 38 11. Object Groups and Tables 38 12. Datatypes used in the Job Monitoring MIB 40 13. MIB specification 43 Textual conventions for this MIB module 45 JmJobServiceTypesTC - bit encoded job service type definitions 45 JmJobStateTC - job state definitions 47 JmJobStateReasonsTC - additional information about job states 51 JmAttributeTypeTC - attribute type definitions 64 other 65 fileName 65 documentName 65 jobAccountName 65 jobComment 65 processingMessage 65 jobSourceChannelIndex 66 outputBinIndex 66 outputBinName 66 sides 66 documentFormatIndex 66 documentFormatEnum 67 physicalDeviceIndex 67 physicalDeviceName 68 jobCopiesRequested 68 jobCopiesCompleted 68 documentCopiesRequested 68 jobKOctetsTotal 68 jobKOctetsCompleted 70 impressionsSpooled 71 impressionsSentToDevice 71 impressionsInterpreted 71 impressionsRequested 71 impressionsCompleted 71 impressionsCompletedCurrentCopy 71 Bergman, Hastings, Isaacson, Lewis [Page ] 4 Job Monitoring MIB Mar 26, 1997 pagesRequested 71 pagesCompleted 71 pagesCompletedCurrentCopy 72 sheetsRequested 72 sheetsCompleted 72 sheetsCompletedCurrentCopy 72 mediumRequested 72 mediumConsumed 72 colorantRequestedIndex 73 colorantRequestedName 73 colorantConsumedIndex 73 colorantConsumedName 73 jobSubmissionDateAndTime 74 jobSubmissionTimeStamp 74 jobStartedProcessingDateAndTime 74 jobStartedProcessingTimeStamp 74 jobCompletedDateAndTime 74 jobCompletedTimeStamp 74 processingCPUTime 74 The General Group 76 jmJobSetIndex 77 jmGeneralJobSetName 77 jmGeneralJobCompletedPolicy 77 jmGeneralMaxNumberOfJobs 77 jmGeneralNumberOfJobsToComplete 78 jmGeneralNumberOfJobsCompleted 78 The Queue Group 79 jmQueueIndex 80 jmQueueJobIndex 80 jmQueueNumberOfInterveningJobs 81 jmJobPriority 81 jmJobProcessAfterDateAndTime 81 The Completed Group (Mandatory) 83 jmCompletedIndex 84 jmCompletedJobIndex 84 The Job Group (Mandatory) 85 jmJobIndex 86 jmJobName 86 jmJobIdName 87 jmJobIdNumber 88 jmJobServiceTypes 88 jmJobOwner 89 jmJobDeviceNameOrQueueRequested 89 jmJobCurrentState 90 jmJobStateReasons 90 The Attribute Group (Mandatory) 92 Bergman, Hastings, Isaacson, Lewis [Page ] 5 Job Monitoring MIB Mar 26, 1997 jmAttributeTypeIndex 94 jmAttributeInstanceIndex 95 jmAttributeValueAsInteger 96 jmAttributeValueAsOctets 96 14. Appendix A - Mapping Of Job Submission Protocols To The Job Monitoring MIB Objects and Attributes 101 15. Appendix B - Comparison with ISO DPA 103 15.1 The General Group - comparison with ISO DPA 103 15.2 The Queue Group - comparison with ISO DPA 105 15.3 The Completed Group - comparison with ISO DPA 108 15.4 The Job Group - comparison with ISO DPA 109 15.5 The Attribute Group - comparison with ISO DPA 121 16. APPENDIX C - Comparison of Job Submission Protocols to JMP Objects 147 17. Appendix D - Use of MS-WORD Version 6.0 to format the MIB 158 18. Author's Addresses 161 19. INDEX 164 TABLE OF FIGURES Figure 1 - Relationship between client, printer/server, management station, and agent 22 Figure 2 - One Printer's View of the Network (extracted from RFC 1759) 24 Figure 3 - Configuration 1 - client-printer - agent in the printer 26 Bergman, Hastings, Isaacson, Lewis [Page 6] Job Monitoring MIB Mar 26, 1997 Figure 4 - Configuration 2 - client-server-printer - agent in the server 28 Figure 5 - Configuration 3 - client-server-printer - client monitors printer agent and server 30 TABLE OF TABLES Table 2-1: Job Object Life Cycle Summary 16 Table 2-2 - Legal Job State Transition Table 19 Table 12-1 - MIB Datatype specifications 40 Table 14-1 - Mapping of Job Submission Protocol Job Ids to the Corresponding MIB objects 101 TABLE OF TEXTUAL-CONVENTIONS -- textual-convention 1: JmJobServiceTypesTC 45 -- textual-convention 2: JmJobStateTC 47 -- textual-convention 3: JmJobStateReasonsTC 51 -- textual-convention 4: JmAttributeTypeTC 64 Bergman, Hastings, Isaacson, Lewis [Page 7] Job Monitoring MIB Mar 26, 1997 Job Monitoring MIB 1. Introduction The Job Monitoring MIB contains a set of objects for (1) monitoring the status and progress of print jobs, (2) obtaining resource requirements before a job is processed, (3) monitoring resource consumption while a job is being processed and (4) collecting resource accounting data after the completion of a job. This MIB is intended to be implemented in printers or a server that supports one or more printers. Use of the object set is not limited to printing. However, support for services other than printing is outside the scope of this Job Monitoring MIB. Future extensions to this MIB may include, but are not limited to, fax machines and scanners. The Job Monitoring MIB is intended to be instrumented by an agent within a printer or the first server closest to the printer, where the printer is either directly connected to the server only or the printer does not contain the job monitoring MIB agent. It is recommended that implementations place the SNMP agent as close as possible to the processing of the print job. This MIB applies to printers with and without spooling capabilities. This MIB is designed to be compatible with most current commonly-used job submission protocols. In most environments that support high function job submission/job control protocols, like ISO DPA, those protocols would be used to monitor and manage print jobs rather than using the Job Monitoring MIB. The job MIB is intended to provide the following information for the indicated Role Models in the Printer MIB (Refer to RFC 1759, Appendix D - Roles of Users). User: Provide the ability to identify the least busy printer. The user will be able to determine the number and size of jobs waiting for each printer. No attempt is made to actually predict the length of time that jobs will take. Bergman, Hastings, Isaacson, Lewis [Page ] 8 Job Monitoring MIB Mar 26, 1997 Provide the ability to identify the current status of the job (user queries). Provide a timely notification that the job has completed and where it can be found. Provide error and diagnostic information for jobs that did not successfully complete. Operator: Provide a presentation of the state of all the jobs in the print system. Provide the ability to identify the user that submitted the print job. Provide the ability to identify the resources required by each job. Provide the ability to define which physical printers are candidates for the print job. Provide some idea of how long each job will take. However, exact estimates of time to process a job is not being attempted. Instead, objects are included that allow the operator to be able to make gross estimates. Capacity Planner: Provide the ability to determine printer utilization as a function of time. Provide the ability to determine how long jobs wait before starting to print. Accountant: Bergman, Hastings, Isaacson, Lewis [Page ] 9 Job Monitoring MIB Mar 26, 1997 Provide information to allow the creation of a record of resources consumed and printer usage data for charging users or groups for resources consumed. Provide information to allow the prediction of consumable usage and resource need. The MIB supports printers that can contain more than one job at a time, but still be usable for low end printers that only contain a single job at a time. In particular, the MIB supports the needs of Windows and other PC environments for managing low-end networked devices without unnecessary overhead or complexity, while also providing for higher end systems and devices. The MIB provides job resource accounting information after the printer has finished printing the job. This resource accounting information is intended to be used by: A management station that is co-located with the * printer to provide an enhanced console capability. * End user job monitoring programs that provide status on progress and completion of jobs during the complete life cycle of the job, including a defined period after the job completes. System accounting programs that copy the completed * job statistics to an accounting system. It is recognized that depending on accounting programs to copy MIB data during the job-retention period is somewhat unreliable, since the accounting program may not be running (or may have crashed). The MIB provides a set of objects that represent a compatible subset of job and document attributes of the ISO DPA standard, so that coherence is maintained between the two protocols and information presented to end users and system operators. However, the job monitoring MIB is intended to be used with printers that implement other job submitting and management protocols, such as IEEE 1284.1 (TIPSI), as well as with ones that do implement ISO DPA. So nothing in the job monitoring MIB shall require implementation of the ISO DPA protocol. Bergman, Hastings, Isaacson, Lewis 10 [Page ] Job Monitoring MIB Mar 26, 1997 The MIB is designed so that an additional MIB(s) can be specified in the future for monitoring multi-function (scan, FAX, copy) jobs as an augmentation to this MIB. Terminology and Job Model 2. This section defines the terms that are used in this specification and the general model for jobs. NOTE - Existing systems use conflicting terms, so these terms are drawn from the ISO 10175 Document Printing Application (DPA) standard. For example, PostScript systems use the term session for what we call a job in this specification and the term job to mean what we call a document in this paper. PJL systems use the term .. A job is a unit of work whose results are expected together without interjection of unrelated results. A client is able to specify job instructions that apply to the job as a whole. Proscriptive instructions specify how, when, and where the job is to be printed. Descriptive instructions describe the job. A job contains one or more documents. A job set is a set of jobs that are queued and scheduled together according to a specified scheduling algorithm for a specified device or set of devices. For implementations that embed the SNMP agent in the device, the MIB job set normally represents all the jobs known to the device. If the SNMP agent is implemented in a server that controls one or more devices, each MIB job set represents a job queue for (1) a specific device or (2) set of devices, if the server uses a single queue to load balance between several devices. Each job set is disjoint; no job shall be represented in more than one MIB job set. A document is a sub-section within a job. A document contains print data and document instructions that apply to just the document. The client is able to specify document instructions separately for each document in a job. Proscriptive instructions specify how the document is to be processed and printed by the server. Descriptive instructions describe the document. Server implementation of more than one document per job is optional. Bergman, Hastings, Isaacson, Lewis 11 [Page ] Job Monitoring MIB Mar 26, 1997 A client is the network entity that end users use to submit jobs to spoolers, servers, or printers and other devices, depending on the configuration, using any job submission protocol. A server is a network entity that accepts jobs from clients and in turn submits the jobs to printers and other devices. A server may be a printer supervisor control program, or a print spooler. A device is a hardware entity that (1) interfaces to humans in human perceptible means, such as produces marks on paper, scans marks on paper to produce an electronic representations, or writes CD-ROMs or (2) interfaces to a network, such as sends FAX data to another FAX device. A printer is a device that puts marks on media. A supervisor is a server that contains a control program that controls a printer or other device. A supervisor is a client to the printer or other device. A spooler is a server that accepts jobs, spools the data, and decides when and on which printer to print the job. A spooler is a client to a printer or a printer supervisor, depending on implementation. Spooling is the act of a device or server of (1) accepting jobs and (2) writing the job's attributes and document data on to secondary storage. Queuing is the act of a device or server of ordering (queuing) the jobs for the purposes of scheduling the jobs to be processed. A monitor or job monitoring application is the network entity that End Users, System Operators, Accountants, Asset Managers, and Capacity Planners use to monitor jobs using SNMP. A monitor may be either a separate application or may be part of the client that also submits jobs. Bergman, Hastings, Isaacson, Lewis 12 [Page ] Job Monitoring MIB Mar 26, 1997 An agent is the network entity that accepts SNMP requests from a monitor and implements the Job Monitoring MIB. A proxy is an agent that acts as a concentrator for one or more other agents by accepting SNMP operations on the behalf of one or more other agents, forwarding them on to those other agents, gathering responses from those other agents and returning them to the original requesting monitor. A user is a person that uses a client or a monitor. An end user is a user that uses a client to submit a print job. A system operator is a user that uses a monitor to monitor the system and carries out tasks to keep the system running. A system administrator is a user that specifies policy for the system. A job instruction is an instruction specifying how, when, or where the job is to be processed. Job instructions may be passed in the job submission protocol or may be embedded in the document data or a combination depending on the job submission protocol and implementation. A document instruction is an instruction specifying how to process the document. Document instructions may be passed in the job submission protocol separate from the actual document data, or may be embedded in the document data or a combination, depending on the job submission protocol and implementation. An attribute is a name, value-pair that specifies an instruction, a status, or a condition in a job or a document in a job submission protocol. An attribute need not be present in each job instance. In other words, attributes are present in a job instance only when there is a need to express the value. The term "attribute" will be used when discussing a job instruction or a document instruction in a job submission protocol that is not embedded in the document data. The term "attribute" will also be used for the attribute table in this MIB in which entries are present Bergman, Hastings, Isaacson, Lewis 13 [Page ] Job Monitoring MIB Mar 26, 1997 only when necessary. The term "information object" or "object" for short will be used in discussing the MIB. In other words, the server or printer accepts jobs via a job submission protocol that contains job and document attributes and the SNMP agent instruments the job by returning the equivalent, possibly transformed, job and document attributes as MIB objects in response to SNMP Get requests. The agent may also represent job and document instructions that are embedded in the document data as MIB objects, depending on implementation. An SNMP information object is a name, value-pair that specifies an action, a status, or a condition in an SNMP MIB. Job monitoring using SNMP is (1) identifying jobs within the serial streams of data being processed by the server, printer or other devices, (2) creating "rows" in the job table for each job, and (3) recording information, known by the agent, about the processing of the job in that "row". Job accounting is recording what happens to the job during the processing and printing of the job. Job Life Cycle 1 2. The job object has well-defined states and client operations that affect the transition between the job states. Internal server and printer actions also affect the transitions of the job between the job states. These states and transitions are referred to as the job's life cycle. Not all implementations of job submission protocols have all of the states of the job model specified here. The job model specified here is intended to be a superset of most implementations. It is the purpose of the agent to map the particular implementation's job life cycle onto the one specified here. The agent may omit any states not implemented. Only the processing, needsAttention, and completed states are required to be implemented by an agent. However, a management application shall be prepared to accept any of the states in the job life cycle specified here, so that the management application can interoperate with any conforming agent. Bergman, Hastings, Isaacson, Lewis 14 [Page ] Job Monitoring MIB Mar 26, 1997 The job states are intended to be the user visible. The agent shall make these states visible in the MIB, but only for the subset of job states that the implementation has. Implementations may need to have sub-states of these user- visible states. Such implementation is not specified in this model, is not supported by this Job Monitoring MIB, and will vary from implementation to implementation. One of the purposes of the job model is to specify what is invariant from implementation to implementation as far as the MIB specification and the user is concerned. Therefore, job states are all intended to last a user-visible length of time in most implementations. However, some jobs may pass through some states in zero time in some situations and/or in some implementations. The job model does not specify how accounting and auditing is implemented, except to require that accounting and auditing logs are separate from the job life cycle and last longer than job objects. Jobs in the completed state are not logs, since jobs in the completed state are accessible via job submission and/or job management protocol operations and are removed from these job tables after a site-settable period of time. Accounting information may be copied incrementally to the accounting logs as a job processes, may be copied while the job is in the retained state, or may be copied while the job is in the completed state, depending on implementation. The same is true for auditing logs. The job model has the following states: Bergman, Hastings, Isaacson, Lewis [Page 15] Job Monitoring MIB Mar 26, 1997 Table 2- : Job Object Life Cycle Summary 1 State Summary Description 1. unknown The state of the job is not known to the agent or is unknowable, or the job is not yet created or has just been purged. 2. preProcessing The job has been created on the server or device but the submitting client is in the process of adding additional job components and no documents have started processing. The job maybe in the process of being checked by the server/device for attributes, defaults being applied, a device being selected, etc. 3. held The job is not yet a candidate for processing for any number of reasons. The reasons are represented as bits in the jmJobStateReasons object. Some reasons are used in other states to give added information about the job state. See the JmJobStateReasonsTC textual convention for the specification of each reason and in which states the reasons may be used. 4. pending The job is a candidate for processing, but is not yet processing. 5. processing The job is using one or more document transforms which include purely software processes, such as interpreting a PDL, and hardware devices. 6. needsAttention The job is using one or more devices, but has encountered a problem with at least one device that requires human intervention before the job can continue using that device. Examples include running out of paper or a paper jam. Usually devices indicate their condition in human readable form locally at the device. The management application can obtain more complete device status remotely by querying the appropriate device MIB using the job's jmDeviceIndex object in the Job Monitoring MIB. Bergman, Hastings, Isaacson, Lewis 16 [Page ] Job Monitoring MIB Mar 26, 1997 State Summary Description NOTE - Instead of the needsAttention job state, ISO DPA uses the multi-valued printer-state-of- printers-assigned job attribute, so that the state of each device that a job is using can be accurately represented. However, for the Job Monitoring MIB, the simpler approach is used of adding a single needsAttention job state if any device that the job is using needs attention and relying on the device MIB for more information. 7. paused The job has been indefinitely suspended by a client issuing an operation to suspend the job so that other jobs may proceed using the same devices. The client may issue an operation to resume the paused job at any time, in which case the server or printer places the job in the held or pending states and the job is eventually resumed at the point where the job was paused. 8. interrupted The job has been interrupted while processing by a client issuing an operation that specifies another job to be run instead of the current job. The server or printer will automatically resume the interrupted job when the interrupting job completes. 9. terminating The job is in the process of being terminated by the server or printer, either because the client canceled the job or because a serious problem was encountered by a document transform while processing the job. The job's jmJobStateReasons object shall contain the reasons that the job was terminated. 10. retained The job is being retained by the server or printer after processing and all of the media have been successfully stacked in the output bin(s). The job (1) has completed successfully or with warnings or errors, (2) has been aborted while printing by the server/device, or (3) has been cancelled by the submitting user or operator Bergman, Hastings, Isaacson, Lewis 17 [Page ] Job Monitoring MIB Mar 26, 1997 State Summary Description before or during processing. The job's jmJobStateReasons object shall contain the reasons that the job has entered the retained state. While in the retained state, all of the job's document data (and submitted resources, if any) are retained by the server or device; thus a client could issue an operation to resubmit the job (or a copy of the job) while the job is in the retained state. The retained state is conditionally mandatory. Implementations that do not retain jobs after they are finished processing such that the client could request that the job be repeated (or resubmitted), need not implement the retained state. 11. completed The job has (1) completed processing, (2) all of the media have been successfully stacked in the output bin(s) and (3) the server/device is keeping the job in summary form for a site-settable period for purposes of aiding operators and users to determine the disposition of users' jobs. The job (1) has completed successfully or with warnings or errors, (2) has been aborted while printing by the server/device, or (3) has been cancelled by the submitting user or operator before or during processing. The job's jmJobStateReasons object shall contain the reasons that the job has entered the completed state. While in the completed state, a job's document data (and submitted resources if any) need not be retained by the server; thus a job in the completed state could not be reprinted. The length of time that a job may be in this state, before transitioning to unknown, is implementation- dependent. However, servers that implement the completed job-state shall retain all of the job's Job Monitoring MIB objects, except the jmQueueGroup objects, so that a management application accounting program can copy them to an accounting log. Bergman, Hastings, Isaacson, Lewis 18 [Page ] Job Monitoring MIB Mar 26, 1997 The jmJobCurrentState object specifies the standard job states. The legal job state transitions are shown in the state transition diagram presented in Table 2-2. Table - Legal Job State Transition Table 2 2- Current state Client unkn held preP proce pend inte paus needs reta term comp operations 1 own roce ssing ing rrup ed Atten ined inat lete and ssin ted tion ing d system-generated g 5 6 events 1 2 3 4 8 7 10 9 11 CreateJob 2 AddDocument 2 3,4 3,4 5 CloseJob 2 3,4 4 5 9 no CloseJob 9 9 9 within site settable time job-submission- 3,4 complete=TRUE job-process- 3,4 after-time arrives 1 unknown unknown unknown The state can be returned if a JSP has forwarded a job to another JSP and that JSP is no longer in contact. unknown unknown unknown The state is also used for completeness to show the job state transitions on the CreateJob CreateJob CreateJob operation. Bergman, Hastings, Isaacson, Lewis 19 [Page ] Job Monitoring MIB Mar 26, 1997 Current state Client unkn prePheld proce pend needspausinte reta term comp operations 1 own roce ssing ing Atten rrup ed ined inat lete and ssin tion ted ing d system-generated g 5 6 events 1 3 2 4 8 7 10 9 11 ModifyJob 3,4 2 5 3,4 PauseJob 7 7 7 ResumeJob 7 server 5 dispatches job to processing job's job-state- 3,4 5 3,4 reasons changed job's transform- 5 state-of- transforms- assigned changed device 6 encounters a problem that needs human intervention operator fixes 5 problem CancelJob 9 9 9 9 9 9 9 10 9 11 Server aborts 9 9 9 9 job Bergman, Hastings, Isaacson, Lewis [Page 20] Job Monitoring MIB Mar 26, 1997 Current state Client unkn prePheld proce pend needspausinte reta term comp operations 1 own roce ssing ing Atten rrup ed ined inat lete and ssin tion ted ing d system-generated g 5 6 events 1 3 2 4 8 7 10 9 11 job abort/cancel 10 cleanup completes ListJobAttribute 3 2 5 4 8 7 6 10 9 11 s PromoteJob 3 4 job completes 10 processing server purges 1 job Bergman, Hastings, Isaacson, Lewis [Page 21] Job Monitoring MIB Mar 26, 1997 There are two approaches that implementers may use to address the problems of the end-user using the Job Monitoring MIB: The client also supports SNMP and the Job Monitoring 1. MIB for status/notification to the submitting user 2. The monitor supports SNMP and the Job Monitoring MIB for status/notification to any user, including the job-submitting end user; for example, the Windows Print Manager. The following diagram illustrates the relationships between the defined entities. +-------+ +--------+ |monitor| | client | +---#---+ +-----+--+ # | SNMP # | DPA, TIPSI, or # | other job submission +==+===#===+==+ | protocol | | agent | | | | +-------+ | | | printer <--------+ | or | Print Job Delivery Channel | server | +=============+ 1 - Relationship between client, printer/server, Figure management station, and agent Bergman, Hastings, Isaacson, Lewis 22 [Page ] Job Monitoring MIB Mar 26, 1997 system printer asset user user user manager operator manager O O O O O O /|\ /|\ /|\ /|\ /|\ /|\ / \ / \ / \ / \ / \ / \ | | | | | | +---------+ +-------+ +-------+ +-------+ +-----------+ +- ----------+ |configur-| |printer| | asset | |printer| | user | | user | |ator | |manager| |manager| |browser| |application| |application| +---------+ +-------+ +-------+ +-------+ +-----------+ +- ----------+ ^ ^ ^ ^ | | |R/W |R/W |R |R +-----------+ +- ----------+ | | | | | spooler | | spooler | | | | | +-----------+ +- ----------+ | | | | | | | | | | +-----------+ +- ----------+ | | | | |supervisor | |supervisor | | | | | +-----------+ +- ----------+ | | | | ^ ^ ^ ^ | | | | |R |R/W |R |R/W v v | | | | | | ================================================== | ===== | | print| print| |SNMP data| data| +-----+ +-------+ PCL| PCL| Bergman, Hastings, Isaacson, Lewis [Page 23] Job Monitoring MIB Mar 26, 1997 | MIB |<------>| agent | PostScript| PostScript| +-----+ +-------+ NPAP| NPAP| |unspecified etc.| etc.| +=============+ +-----------------+ | | | |--|channel/Interface|<--+ | | | +-----------------+ | | PRINTER | | | | +-----------------+ | | |--|channel/Interface|<--------- -------+ +=============+ +-----------------+ - One Printer's View of the Network (extracted from Figure 2 RFC 1759) Bergman, Hastings, Isaacson, Lewis 24 [Page ] Job Monitoring MIB Mar 26, 1997 3. System Configurations for the Job Monitoring MIB This section enumerates the two configurations for which the Job Monitoring MIB is intended to be used. To simplify the pictures, the devices are shown as printers. See Goals section. Configuration 1 - client-printer 3.1 In the client-printer configuration, the client(s) submit jobs directly to the printer, either by some direct connect, or by network connection. The client-printer configuration can accommodate multiple job submitting clients in either of two ways: 1. if each client relinquishes control of the Print Job Delivery Channel after each job (or after a number of jobs) 2. if the printer supports more than one Print Job Delivery Channel The job submitting client and/or monitor communicates directly with an agent that is part of the printer. The agent in the printer shall keep the job in the Job Monitoring MIB as long as the job is in the Printer, and longer in order to implement the completed state in which monitoring programs can copy out the accounting data from the Job Monitoring MIB. all end-user ######## SNMP query +-------+ +--------+ ---- job submission |monitor| | client | +---#---+ +--#--+--+ # # | # ############ | # # | +==+===#=#=+==+ | | | agent | | | | +-------+ | | | PRINTER <--------+ Bergman, Hastings, Isaacson, Lewis [Page 25] Job Monitoring MIB Mar 26, 1997 | | Print Job Delivery Channel | | +=============+ 3 - Configuration 1 - client-printer - agent in the Figure printer The Job Monitoring MIB is designed to support the following relationships (not shown in Figure 3): Multiple clients may submit jobs to a printer. 1. Multiple clients may monitor a printer. 2. Multiple monitors may monitor a printer. 3. 4. A client may submit jobs to multiple printers. A monitor may monitor multiple printers. 5. Bergman, Hastings, Isaacson, Lewis 26 [Page ] Job Monitoring MIB Mar 26, 1997 3.2 Configuration 2 - client-server-printer - agent in the server In the client-server-printer configuration 2, the client(s) submit jobs to an intermediate server by some network connection, not directly to the printer. The job submitting client and/or monitor communicates directly with: 1. a Job Monitoring MIB agent that is part of the server (or a front for the server) There is no SNMP Job Monitoring MIB agent in the printer in configuration 2, at least that the client or monitor are aware. In this configuration, the agent shall return the current values of the objects in the Job Monitoring MIB both for jobs the server keeps and jobs that the server has submitted to the printer. In configuration 2, the server keeps a copy of the job during the time that the server has submitted the job to the printer. Only some time after the printer completes the job, shall the server remove the representation of the job from the Job Monitoring MIB in the server. The agent need not access the printer, except when a monitor queries the agent using an SNMP Get for an object in the Job Monitoring MIB. Or the agent can subscribe to the notification events that the printer generates and keep the Job Monitoring MIB update to date. The agent in the server shall keep the job in the Job Monitoring MIB as long as the job is in the Printer, and longer in order to implement the completed state in which monitoring programs can copy out the accounting data from the Job Monitoring MIB. Bergman, Hastings, Isaacson, Lewis 27 [Page ] Job Monitoring MIB Mar 26, 1997 all end-user +-------+ +----------+ |monitor| | client | ######## SNMP query +---+---# +---#----+-+ **** non-SNMP cntrl # # | ---- job submission # # | # # | #=====#=+==v==+ | agent | | +-------+ | | server | +----+-----+--+ control * | ********** | * | +========v====+ | | | | | | | | PRINTER <---------+ | | Print Job Delivery Channel | | +=============+ Figure - Configuration 2 - client-server-printer - agent 4 in the server The Job Monitoring MIB is designed to support the following relationships (not shown in Figure 4): 1. Multiple clients may submit jobs to a server. Multiple clients may monitor a server. 2. Multiple monitors may monitor a server. 3. 4. A client may submit jobs to multiple servers. 5. A monitor may monitor multiple servers. 6. Multiple servers may submit jobs to a printer. Multiple servers may control a printer. 7. Bergman, Hastings, Isaacson, Lewis 28 [Page ] Job Monitoring MIB Mar 26, 1997 3.3 Configuration 3 - client-server-printer - client monitors printer agent and server In the client-server-printer configuration 3, the client(s) submit jobs to an intermediate server by some network connection, not directly to the printer. The job submitting client and/or monitor communicates directly with: 1. the server using a non-SNMP protocol to monitor jobs in the server AND 2. a Job Monitoring MIB agent that is part of the printer to monitor jobs after the server passes the jobs to the printer. In such configurations, the server deletes its copy of the job from the server after submitting the job to the printer usually almost immediately (before the job does much processing, if any). There is no SNMP Job Monitoring MIB agent in the server in configuration 3, at least that the client or monitor are aware. In this configuration, the agent (in the printer) shall keep the values of the objects in the Job Monitoring MIB that the agent implements updated for a job that the server has submitted to the printer. The agent shall obtain information about the jobs submitted to the printer from the server (either in the job submission protocol, in the document data, or by direct query of the server), in order to populate some of the objects the Job Monitoring MIB in the printer. The agent in the printer shall keep the job in the Job Monitoring MIB as long as the job is in the Printer, and longer in order to implement the completed state in which monitoring programs can copy out the accounting data from the Job Monitoring MIB. Bergman, Hastings, Isaacson, Lewis 29 [Page ] Job Monitoring MIB Mar 26, 1997 all end-user +-------+ +----------+ |monitor| | client | ######## SNMP query +---+---* +---*----+-+ **** non-SNMP query # * * | ---- job submission # * * | # * * | # *=====+=+==v==+ # | | # + | # | server | # +----#-----+--+ # optional# | # ########## | # # | +==+=v===v=+==+ | | | agent | | | | +-------+ | | | PRINTER <---------+ | | Print Job Delivery Channel | | +=============+ Figure - Configuration 3 - client-server-printer - client 5 monitors printer agent and server The Job Monitoring MIB is designed to support the following relationships (not shown in Figure 5): 1. Multiple clients may submit jobs to a server. Multiple clients may monitor a server. 2. Multiple monitors may monitor a server. 3. 4. A client may submit jobs to multiple servers. 5. A monitor may monitor multiple servers. 6. Multiple servers may submit jobs to a printer. Multiple servers may control a printer. 7. Bergman, Hastings, Isaacson, Lewis 30 [Page ] Job Monitoring MIB Mar 26, 1997 4. Conformance Considerations In order to achieve interoperability between job monitoring applications and job monitoring agents, this specification includes the conformance requirements for both monitoring applications and agents. Conformance Terminology 4.1 This specification uses the verbs: "shall", "should", "may", and "need not" to specify conformance requirements as follows: * "shall": indicates an action that the subject of the sentence must implement in order to claim conformance to this specification "may": indicates an action that the subject of the * sentence does not have to implement in order to claim conformance to this specification, in other words that action is an implementation option "need not": indicates an action that the subject of * the sentence does not have to implement in order to claim conformance to this specification. The verb "need not" is used instead of "may not", since "may not" sounds like a prohibition. "should": indicates an action that is recommended * for the subject of the sentence to implement, but is not required, in order to claim conformance to this specification. 2 4. Agent Conformance Requirements An agent shall implement all mandatory groups in this specification. An agent shall implement conditionally mandatory groups, if the server or device that the agent is instrumenting has the features represented by the objects in the conditionally mandatory group. This section also lists Bergman, Hastings, Isaacson, Lewis 31 [Page ] Job Monitoring MIB Mar 26, 1997 the objects from other IETF MIB specifications that are mandatory for conformance by an agent to this Job Monitoring MIB specification. MIB II System Group objects 2.1 4. The Job Monitoring MIB agent shall implement all objects in the system group of MIB-II (RFC 1213), whether the Printer MIB is implemented or not. .2 MIB II Interface Group objects 4.2 The Job Monitoring MIB agent shall implement all objects in the Interfaces Group of MIB-II (RFC 1213), whether the Printer MIB is implemented or not. Printer MIB objects 2.3 4. If the agent is instrumenting a device that is a printer, the agent shall implement all of the mandatory objects in the Printer MIB and all the objects in other MIBs that conformance to the Printer MIB requires, such as the Host Resources MIB. If the agent is instrumenting a server that controls one or more networked printers, the agent need not implement the Printer MIB and need not implement the Host Resources MIB. 3 Job Monitoring Application Conformance Requirements 4. A job monitoring application (monitor) is a management or client application that uses SNMP to access the agent that implements this Job Monitoring MIB. A job monitoring application shall accept all objects in all mandatory and conditionally mandatory groups that are required to be implemented by an agent according to Section and shall 4.2 either present them to the user or ignore them. Bergman, Hastings, Isaacson, Lewis 32 [Page ] Job Monitoring MIB Mar 26, 1997 A job monitoring application shall accept all enum values and bit vector bits specified in this standard and additional ones that may be registered with IANA and shall either present them to the user or ignore them. See Section 7 entitled "IANA Considerations" on page . 35 5. Job Identification The purpose of the Job Identification objects is to allow the user, operator, or the system administrator to identify the jobs of interest. The Job Monitoring MIB needs to provide for identification of the job at both sides of the job submission process. The primary identification point must be at the client side. The client side identifiers allow the user to identify the job of interest from all the jobs currently "known" by the server or device. The client side identifiers can be assigned by either the client's local system or a downstream server or device. The point of assignment will be determined by the job submission protocol in use. Two client-side objects are provided: jmJobIdName and jmJobIdNumber so that both textual identifiers and numeric identifiers can be represented, depending on the job submission protocol. The intent is that the agent shall provide the same values for these two client-side objects as the user is provided for by the job submission protocol that happens to be in use. The client-side job identifiers in combination should provide the user and operator with unique job identifications. The server/device-side identifier will be assigned by the server or device that accepts the jobs from submitting clients. The MIB agent shall use the job identifier assigned by the server or device to the job as the value of the jmJobIndex object that defines the table rows (there are multiple tables) that contain the information relating to the job. This object allows the interested party to obtain all objects desired that relate to this job. The jmJobName object provides a name that the user supplies an a job attribute with the job. It is not necessarily unique, even for one user, let alone across users. Bergman, Hastings, Isaacson, Lewis 33 [Page ] Job Monitoring MIB Mar 26, 1997 6. Internationalization Considerations There are a number of objects in this MIB that are represented as coded character sets. The data type for such objects is OCTET STRING. See Section 12 entitled "Datatypes used in the Job Monitoring MIB" on page 40. Such objects could be in different coded character sets and could be localized in the language and country, i.e., could be localized. However, for the Job Monitoring MIB, most of the objects are supplied as job attributes by the client that submits the job to the server or device and so are represented in the coded character set specified by that client. Therefore, the agent is not able to provide for different representations depending on the locale of the server, device, or user of the job monitoring application. The only exception is job submission protocols that pass job or document attributes as OBJECT IDENTIFIERS or enums. For those job and document attributes, the agent shall represent the corresponding objects in the Job Monitoring MIB as coded character sets in the current (default) locale of the server or printer as established by the system administrator or the implementation. For simplicity, this specification assumes that the clients, job monitoring applications, servers, and devices are all running in the same locale. However, this specification allows them to run in any locale, including locales that use two-octet coded character sets, such as ISO 10646 (Unicode). Job monitors applications are expected to understand the coded character set of the client (and job), server, or device. No special means is provided for the monitor to discover the coded character set used by jobs or by the server or device. This specification does not contain an object that indicates what locale the server or device is running in, let alone contain an object to control what locale the agent is to use to represent coded character set objects. This MIB also contains objects that are represented using the DateAndTime textual convention from SNMPv2-TC (RFC 1903). The job management application shall display such objects in the locale of the user running the monitoring application. Bergman, Hastings, Isaacson, Lewis 34 [Page ] Job Monitoring MIB Mar 26, 1997 7. IANA Considerations During the development of this standard, the Printer Working Group (PWG) working with IANA will register additional enums and bit strings while the standard is in the proposed and draft states according to the procedures described in this section. IANA will handle registration of additional enums and bit strings after this standard is approved in cooperation with an IANA-appointed registration editor from the PWG according to the procedures described in this section: 1 IANA Registration of enums 7. This specification uses textual conventions to define enumerated values (enums). Enumerations (enums) are sets of symbolic values defined for use with one or more objects. All enumeration sets are assigned a symbolic data type name (textual convention). As a convention the symbolic name ends in "TC" for textual convention. These enumerations are listed at the beginning of the MIB module specification. This working group has defined several type of enumerations for use in the Job Monitoring MIB and the Printer MIB (see RFC 1759). These enumerations differ in the method employed to control the addition of new enumerations. Throughout this document, references to "type n enum", where n can be 1, 2 or 3 can be found in the various tables. The definitions of these types of enumerations are: Type 1 enumeration: All the values are defined in the Job Monitoring MIB specification (RFC for the Job Monitoring MIB). Additional enumerated values require a new RFC. NOTE - There are no type 1 enums in the current draft. Type 2 enumeration: An initial set of values are defined in the Job Monitoring MIB specification. Additional enumerated values are registered after review by this working group. The initial versions of the MIB will contain the values registered so far. After the MIB is approved, additional values will be registered through IANA after approval by this working group. Bergman, Hastings, Isaacson, Lewis 35 [Page ] Job Monitoring MIB Mar 26, 1997 The following type 2 enums are contained in the current draft (see table of contents Table of Textual-Conventions): 1. JmJobServiceTypesTC 2. JmJobStateTC 3. JmAttributeTypeTC Type 3 enumeration: An initial set of values are defined in the Job Monitoring MIB specification. Additional enumerated values are registered without working group review. The initial versions of the MIB will contain the values registered so far. After the MIB is approved, additional values will be registered through IANA without approval by this working group. NOTE - There are no type 3 enums in the current draft. IANA Registration of bit string values 2 7. This draft contains the following bit string textual- conventions: JmJobStateReasonsTC 1. The jmJobStateReasons object is defined as a bit string using the JmJobStateReasonsTC textual-convention that is represented by an OCTET STRING(SIZE(0..63)). Bits in the bit string are assigned starting with the most significant bit in the most significant octet which is called bit 1. Bit 2 is the next most significant bit in the most significant octet, etc. Bit 9 is the most significant bit in the second most significant octet, etc., up to the maximum bit: 504 (= 8 x 63). The registration of JmJobStateReasonsTC bit values shall follow the procedures for a type 2 enum as specified in Section 7.1 Bergman, Hastings, Isaacson, Lewis [Page 36] Job Monitoring MIB Mar 26, 1997 8. Security Considerations 8. Read-Write objects 1 All objects are read-only greatly simplifying the security considerations. If another MIB augments this MIB, that MIB might allow objects in this MIB to be modified. However, that MIB shall have to support the required access control in order to achieve security, not this MIB. Read-Only Objects In Other User's Jobs 8.2 The security policy of some sites may be that unprivileged users can only get the objects from jobs that they submitted, plus a few minimal objects from other jobs, such as the jobKOctetsTotal and jobKOctetsCompleted attributes, so that a user can tell how busy a printer is. Other sites might allow all unprivileged users to see all objects of all jobs. It is up to the agent to implement any such restrictions based on the identification of the user making the SNMP request. This MIB does not require, nor does it specify how, such restrictions would be implemented. An operator is a privileged user that would be able to see all objects of all jobs, independent of the policy for unprivileged users. Returning Objects With No Value In Mandatory Groups 9. If an object in a mandatory group does not have an instrumented value for a particular job submission protocol or the job submitting client did not supply a value (and the accepting server or device does not supply a default), this MIB requires that the agent shall follow the normal SNMP practice of returning a distinguished value, such as a zero- length string, a unknown(2) for an enum, or a -2 for an integer value. Bergman, Hastings, Isaacson, Lewis [Page 37] Job Monitoring MIB Mar 26, 1997 10. Notification and Traps This MIB does not specify any traps. For simplicity, management applications are expected to poll for status. The resulting network traffic is not expected to be significant. 11. Object Groups and Tables There is a one to one relationship between tables and groups as follows: Group Table Description No. Con of for acces man sible ce objec ts jmGeneralGroup N/A General information 5 Man about a job set dat (queue). ory jmQueueGroup jmQueueTabl Ordered list of jobs 6 Con e that have not dit finished and job ion information that all relevant only until y the job has finished man processing. dat Mandatory only if ory queuing (or spooling). Bergman, Hastings, Isaacson, Lewis 38 [Page ] Job Monitoring MIB Mar 26, 1997 Group Table Description No. Con of for acces man sible ce objec ts jmCompletedGro jmCompleted Ordered list of 3 Man up Table pointers to jobs that dat have finished ory processing. jmJobGroup jmJobTable Basic job 9 Man identification and dat status information. ory jmAttributeGro jmAttribute Attributes 4 Man up Table representing (1) job dat and document ory information, (2) resources required, and (3) resources consumed by the job. Can have more than one attribute of the same type per job. Mandatory Totals: 21 Bergman, Hastings, Isaacson, Lewis [Page 39] Job Monitoring MIB Mar 26, 1997 Group Table Description No. Con of for acces man sible ce objec ts Conditionally 6 Mandatory Totals: Totals: 27 12. Datatypes used in the Job Monitoring MIB The following datatypes are used in the Job Monitoring MIB 1 - Table 12 - MIB Datatype specifications OCTET Octet String 0 to 63 octets with 63 octets maximum STRING(SIZE(0..length). See ISO/ITU Abstract Syntax and Notation 63)) (ASN.1), ISO/ITU 8824/X.208. The OCTET STRING is used for the following purposes: 1. Sequence of arbitrary binary data 2. Sequence of one- or two-octet character coded data. This character coded data is supplied by Bergman, Hastings, Isaacson, Lewis 40 [Page ] Job Monitoring MIB Mar 26, 1997 the client that submits the job to the server or printer/device and so is in the coded character set specified by that client. In some job submission protocols, some job and document attributes are represented as enumerations or OBJECT IDENTIFIERS by the client. In such cases the Job Monitoring MIB agent shall represent the objects of type OCTET STRING in the coded character set established by the system administrator or implementer of the server or printer/device. Monitors are expected to understand the coded character set of the client (and job), server, or printer/device. No special means is provided for the monitor to discover the coded character set used by jobs or by the server or printer/device. 3. A zero length string is a valid value that a submitting user and/or a receiving job submission server/device might assign to a job attribute. If a job attribute of type OCTET STRING does not have any value, either (1) because the submitting user or client did not supply a value and the recipient server or printer/device did not assign a default value or (2) because the job submission protocol does not support that job attribute, the agent shall return a zero-length string. See Section 9 Returning Objects With No Value In Mandatory on page Groups 37 4. Bit string. Bits are assigned and numbered starting at 1 for the most significant bit of the most significant octet. IANA handles registration of bits assigned after this standard is approved. See Section entitled 7 IANA Considerations on page . 35 Integer32 32-bit Integer with explicit range indicated - for unsigned quantities, the range is specified as 0..2147483647 (2^31-1) or 1..2147483647 to avoid using the sign bit which avoids implementation problems with signed vs. unsigned representation. See IETF SNMPv2-SMI (RFC 1902). Bergman, Hastings, Isaacson, Lewis [Page 41] Job Monitoring MIB Mar 26, 1997 Counter32 32-bit unsigned counter. See IETF SNMPv2-SMI (RFC 1902). DateAndTime DateAndTime from SMIv2 textual-conventions, RFC 1903 and later. An 8 or 11 octet string with each octet or pair of octets coded as binary integers that contain the year(2), month(1), day(1), hour(1), minute(1), second(1), deci-seconds(1) and, optionally, the direction (+/-), hours(1), and minutes(1) from UTC. See SMIv2-TC (RFC 1903) for details. NOTE: DateAndTime is not a printable string of coded characters. TimeStamp Time kept in hundredths of a second: the value of MIB-II's sysUpTime object when an event (epoch) occurred. See SMIv2-TC (RFC 1903) for details. XxxYyyZzzzTC Textual Convention for specifying enums. The following specification for enumerations has been adapted from the Printer MIB, RFC 1759: Enumerations (enums) are sets of symbolic values defined for use with one or more objects. All enumeration sets are assigned a symbolic data type name (textual convention). These enumerations are listed at the beginning of this specification. See Section entitled 7 IANA Considerations on page 35. Bergman, Hastings, Isaacson, Lewis 42 [Page ] Job Monitoring MIB Mar 26, 1997 13. MIB specification The following pages constitute the actual Job Monitoring MIB. Bergman, Hastings, Isaacson, Lewis 43 [Page ] Job Monitoring MIB Mar 26, 1997 Job-Monitoring-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, experimental, Integer32 FROM SNMPv2-SMI TEXTUAL-CONVENTION, DateAndTime FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; -- Use the experimental (54) OID assigned to the Printer MIB before it -- was published as RFC 1759. -- Upon publication of the Job Monitoring MIB as an RFC, delete this -- comment and the line following this comment and change the -- reference of { temp 104 } (below) to { mib-2 X }. -- This will result in changing: -- 1 3 6 1 3 54 jobmonmib(105) to: -- 1 3 6 1 2 1 jobmonmib(X) -- This will make it easier to translate prototypes to -- the standard namespace because the lengths of the OIDs won't -- change. temp OBJECT IDENTIFIER ::= { experimental 54 } jobmonmib MODULE-IDENTITY LAST-UPDATED "9703260000Z" ORGANIZATION "IETF Printer MIB Working Group" CONTACT-INFO "Tom Hastings Postal: Xerox Corp. Mail stop ESAE-231 701 S. Aviation Blvd. El Segundo, CA 90245 Tel: (301)333-6413 Fax: (301)333-5514 E-mail: hastings@cp10.es.xerox.com" DESCRIPTION "The MIB module for monitoring job in servers, printers, and other devices. File: jmp-mib.doc, .pdf, .txt, .mib Version: 0.71" ::= { temp 105 } Bergman, Hastings, Isaacson, Lewis [Page 44] Job Monitoring MIB Mar 26, 1997 -- Textual conventions for this MIB module -- textual-convention 1: JmJobServiceTypesTC JmJobServiceTypesTC ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Specifies the type(s) of service to which the job has been submitted (print, fax, scan, etc.). The service type is represented as an enum that is bit encoded with each job service type so that more general and arbitrary services can be created, such as services with more than one destination type, or ones with only a source or only a destination. For example, a job service might scan, faxOut, and print a single job. In this case, three bits would be set in the jmJobServiceTypes object, corresponding to the values: 8+32+4=44, respectively. Whether this object is set from a job attribute supplied by the job submission client or is set by the recipient job submission server or device depends on the job submission protocol. With either implementation, the agent shall return a non-zero value for this object indicating the type of the job. One of the purposes of this object is to permit a requester to filter out jobs that are not of interest. For example, a printer operator may only be interested in jobs that include printing. That is why the object is in the job identification category. The following service component types are defined and are assigned a separate bit value in the enum for use with the jmJobServiceTypes object:" -- This is a type 2 enumeration. See Section 7.1 on page 35. SYNTAX INTEGER { other(1), -- The job contains some document -- production instructions that are not -- one of the identified types. unknown(2), -- The job contains some document Bergman, Hastings, Isaacson, Lewis [Page 45] Job Monitoring MIB Mar 26, 1997 -- production instructions whose type is -- unknown to the agent. print(4), -- The job contains some document -- production instructions that specify -- printing scan(8), -- The job contains some document -- production instructions that specify -- scanning faxIn(16), -- The job contains some document -- production instructions that specify -- receive fax faxOut(32), -- The job contains some document -- production instructions that specify -- sending fax getFile(64), -- The job contains some document -- production instructions that specify -- accessing files or documents putFile(128), -- The job contains some document -- production instructions that specify -- storing files or documents mailList(256) -- The job contains some document -- production instructions that specify -- distribution of documents using an -- electronic mail system. } Bergman, Hastings, Isaacson, Lewis [Page 46] Job Monitoring MIB Mar 26, 1997 -- textual-convention 2: JmJobStateTC JmJobStateTC ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The current state of the job (pending, processing, held, etc.) Management applications shall be prepared to receive all the standard job states. Servers and devices are not required to generate all job states, only those which are appropriate for the particular implementation. A companion textual convention (JmJobStateReasonsTC) and corresponding object (jmJobStateReasons) provide additional information about job states. While the job states cannot be added to without impacting deployed clients, it is the intent that additional JmJobStateReasonsTC enums can be defined without impacting deployed clients. In other words, the JmJobStateReasonsTC is intended to be extensible. See page . 51 The following job state standard values are defined by adding (+2) to the last arc of the ISO DPA OBJECT IDENTIFIER value of the job-current-state job attribute:" -- This is a type 2 enumeration. See Section 7.1 on 35 page . SYNTAX INTEGER { other(1), -- The job state is not one of the defined -- states. unknown(2), -- The job state is not known, or is -- indeterminate. preProcessing(3), -- The job has been created on the server -- or device but the submitting client is -- in the process of adding additional job -- components and no documents have -- started processing. The job maybe in -- the process of being checked by the -- server/device for attributes, defaults -- being applied, a device being selected, -- etc. Bergman, Hastings, Isaacson, Lewis [Page 47] Job Monitoring MIB Mar 26, 1997 held(12), -- The job is not yet a candidate for -- processing for any number of reasons. -- The reasons are represented as bits in -- the jmJobStateReasons object. Some -- reasons are used in other states to -- give added information about the job -- state. See the JmJobStateReasonsTC -- textual convention for the -- specification of each reason and in -- which states the reasons may be used. pending(6), -- The job is a candidate for processing, -- but is not yet processing. processing(7), -- The job is using one or more document -- transforms which include purely -- software processes, such as -- interpreting a PDL, and hardware -- devices. needsAttention(9), -- The job is using one or more devices, -- but has encountered a problem with at -- least one device that requires human -- intervention before the job can -- continue using that device. Examples -- include running out of paper or a paper -- jam. -- -- Usually devices indicate their -- condition in human readable form -- locally at the device. The management -- application can obtain more complete -- device status remotely by querying the -- appropriate device MIB using the job's -- jmDeviceIndex object in the Job -- Monitoring MIB. -- -- NOTE - Instead of the needsAttention -- job state, ISO DPA uses the multi- -- valued printer-state-of-printers- -- assigned job attribute, so that the -- state of each device that a job is -- using can be accurately represented. -- However, for the Job Monitoring MIB, -- the simpler approach is used of adding -- a single needsAttention job state if -- any device that the job is using needs -- attention and relying on the device MIB -- for more information. Bergman, Hastings, Isaacson, Lewis 48 [Page ] Job Monitoring MIB Mar 26, 1997 paused(13), -- The job has been indefinitely suspended -- by a client issuing an operation to -- suspend the job so that other jobs may -- proceed using the same devices. The -- client may issue an operation to resume -- the paused job at any time, in which -- case the server or printer places the -- job in the held or pending states and -- the job is eventually resumed at the -- point where the job was paused. interrupted(8), -- The job has been interrupted while -- processing by a client issuing an -- operation that specifies another job to -- be run instead of the current job. The -- server or printer will automatically -- resume the interrupted job when the -- interrupting job completes. terminating(14), -- The job is in the process of being -- terminated by the server or printer, -- either because the client canceled the -- job or because a serious problem was -- encountered by a document transform -- while processing the job. The job's -- jmJobStateReasons object shall contain -- the reasons that the job was -- terminated. retained(11), -- The job is being retained by the server -- or printer after processing and all of -- the media have been successfully -- stacked in the output bin(s). -- -- The job (1) has completed successfully -- or with warnings or errors, (2) has -- been aborted while printing by the -- server/device, or (3) has been -- cancelled by the submitting user or -- operator before or during processing. -- The job's jmJobStateReasons object -- shall contain the reasons that the job -- has entered the retained state. -- -- While in the retained state, all of the -- job's document data (and submitted -- resources, such as fonts, logos, and -- forms, if any) are retained by the -- server or device; thus a client could -- issue an operation to resubmit the job -- (or a copy of the job) while the job is Bergman, Hastings, Isaacson, Lewis [Page 49] Job Monitoring MIB Mar 26, 1997 -- in the retained state. -- -- The retained state is conditionally -- mandatory. Implementations that do not -- retain jobs after they are finished -- processing such that the client could -- request that the job be repeated (or -- resubmitted), need not implement the -- retained state. completed(17) -- The job has (1) completed after -- processing and all of the media have -- successfully been stacked in the output -- bin(s) and (2) the server/device is -- keeping the job in summary form for a -- site-settable period for purposes of -- aiding operators and users to determine -- the disposition of users' jobs. -- -- The job (1) has completed successfully -- or with warnings or errors, (2) has -- been aborted while printing by the -- server/device, or (3) has been -- cancelled by the submitting user or -- operator before or during processing. -- The job's jmJobStateReasons object -- shall contain the reasons that the job -- has entered the completed state. -- -- While in the completed state, a job's -- document data (and submitted resources, -- such as fonts, logos, and forms, if -- any) need not be retained by the -- server; thus a job in the completed -- state could not be reprinted. The -- length of time that a job may be in -- this state, before transitioning to -- unknown, is implementation-dependent. -- However, servers that implement the -- completed job-state shall retain all of -- the job's Job Monitoring MIB objects, -- except the jmQueueGroup objects, so -- that a management application -- accounting program can copy them to an -- accounting log. } Bergman, Hastings, Isaacson, Lewis [Page 50] Job Monitoring MIB Mar 26, 1997 -- textual-convention 3: JmJobStateReasonsTC JmJobStateReasonsTC ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This textual-convention is used in the jmJobStateReasons object to provides additional information regarding the jmJobCurrentState object. The jmJobStateReasons object identifies the reason or reasons that the job is in the preProcessing, held, pending, processing, needsAttention, paused, interrupted, terminating, retained, or completed state. The server shall indicate the particular reason(s) by setting the value of the jmJobStateReasons object. While the job states cannot be added to without impacting deployed clients, it is the intent that additional JmJobStateReasonsTC enums can be defined without impacting deployed clients. In other words, the JmJobStateReasonsTC is intended to be extensible. When the job does not have any reasons for being in its current state, the server shall set the value of the jmJobStateReasons object to a bit string containing all zeros. Bits in the bit string are assigned starting with the most significant bit in the most significant octet which is called bit 1. Bit 2 is the next most significant bit in the most significant octet, etc. Bit 9 is the most significant bit in the second most significant octet, etc., up to the maximum bit: 504 (= 8 x 63). An agent need only return the most significant octet up to the least significant octet that contains a non-zero bit. If all bits are zero, the agent may return an OCTET STRING of zero length. Alternatively, an agent may always return a fixed number of octets starting with the most significant octet and running through the least significant octet that could ever have a one bit in it for that implementation. This object is a type 2 bit string. See Section 7 entitled 'IANA Considerations' on page 35 and Bergman, Hastings, Isaacson, Lewis [Page 51] Job Monitoring MIB Mar 26, 1997 Section 12 entitled 'Datatypes used in the Job Monitoring MIB' on page 40. The following standard values are defined as bit numbers, not enums (the bit number equals the last arc of DPA id-val-reasons-xxx OID for the reasons that are in ISO DPA):" -- This is a type 2 bit string. See section 7.2 on page . 36 SYNTAX INTEGER { -- really OCTET STRING(SIZE(0..63)) documentsNeeded(1), -- The job is in the held state because -- the server or printer is waiting for -- the job's files to start and/or finish -- being transferred before the job can be -- scheduled to be printed. jobHoldSet(2), -- The job is in the held state because -- the client specified that the job is to -- be held. jobProcessAfterSpecified(3), -- The job is in the held state because -- the client specified a time -- specification reflected in the value of -- the job's jmJobProcessAfterDateAndTime -- object that has not yet occurred. requiredResourcesNotReady(4), -- The job is in the held state because at -- least one of the resources needed by -- the job, such as media, fonts, resource -- objects, etc., is not ready on any of -- the physical devices for which the job -- is a candidate. successfulCompletion(5), -- The job is in the retained or completed -- state having completed successfully. -- completedWithWarnings(6), -- The job is in the terminating, -- retained, or completed states having -- completed with warnings. completedWithErrors(7), -- The job is in the terminating, -- retained, or completed states having -- completed with errors (and possibly -- warnings too). cancelledByUser(8), -- The job is in the terminating, -- retained, or completed states having -- been cancelled by the user. Bergman, Hastings, Isaacson, Lewis [Page 52] Job Monitoring MIB Mar 26, 1997 cancelledByOperator(9), -- The job is in the terminating, -- retained, or completed states having -- been cancelled by the operator using -- the CancelJob request. abortedBySystem(10), -- The job is in the terminating, -- retained, or completed states having -- been aborted by the system. logfilePending(11), -- The job's logfile is pending file -- transfer. logfileTransferring(12), -- The job is in the terminating, -- retained, or completed states and the -- job's logfile is being transferred. cascaded(13), -- After the outbound gateway retrieves -- all job and document attributes and -- data, it stores the information into a -- spool directory. Once it has done -- this, it sends the supervisor a job- -- processing event with this job-state- -- reason which tells the supervisor to -- transition to a new job state. deletedByAdministrator(14), -- The administrator has issued a Delete -- operation on the job or a Clean -- operation on the server or queue -- containing the job; therefore the job -- may have been cancelled before or -- during processing, and will have no -- retention-period or completion-period. discardTimeArrived(15), -- The job has been deleted (cancelled -- with the job-retention-period set to 0) -- due to the fact that the time specified -- by the job's job-discard-time has -- arrived [if the job had already -- completed, the only action that would -- have occurred is that the job- -- retention-period would be set to 0 and -- the job is deleted]. postProcessingFailed(16), -- The post-processing agent failed while -- trying to log accounting attributes for -- the job; therefore the job has been -- placed into retained state for a -- system-defined period of time, so the -- administrator can examine it, resubmit -- it, etc. The post-processing agent is Bergman, Hastings, Isaacson, Lewis 53 [Page ] Job Monitoring MIB Mar 26, 1997 -- a plug-and-play mechanism which the -- system and the customer uses to add -- functionality that is executed after a -- job has finished processing. submissionInterrupted(17), -- Indicates that the job was not -- completely submitted for the following -- reasons: (1) the server has crashed -- before the job was closed by the -- client. The server shall put the job -- into the completed state (and shall not -- print the job). (2) the server or the -- document transfer method has crashed in -- some non-recoverable way before the -- document data was entirely transferred -- to the server. The server shall put -- the job into the completed state (and -- shall not print the job). (3) the -- client crashed or failed to close the -- job before the time-out period. The -- server shall close the job and put the -- job into the held state with job-state- -- reasons of submission-interrupted and -- job-hold-set and with the job's job- -- hold attribute set to TRUE. The user -- may release the job for scheduling by -- issuing a job submission or management -- protocol operation. maxJobFaultCountExceeded(18), -- The job has been faulted and returned -- by the server several times and that -- the job-fault-count exceeded the -- device's (or server's, if not defined -- for the device) cfg-max-job-fault- -- count. The job is automatically put -- into the held state regardless of the -- hold-jobs-interrupted-by-device-failure -- attribute. This job-state-reasons value -- is used in conjunction with the job- -- interrupted-by-device-failure value. devicesNeedAttentionTimeOut(19), -- One or more document transforms that -- the job is using needs human -- intervention in order for the job to -- make progress, but the human -- intervention did not occur within the -- site-settable time-out value and the -- server/device has transitioned the job -- to the held state. Bergman, Hastings, Isaacson, Lewis 54 [Page ] Job Monitoring MIB Mar 26, 1997 needsKeyOperatorTimeOut(20), -- One or more devices or document -- transforms that the job is using need a -- specially trained operator (who may -- need a key to unlock the device and -- gain access) in order for the job to -- make progress, but the key operator -- intervention did not occur within the -- site-settable time-out value and the -- server/device has transitioned the job -- to the held state. jobStartWaitTimeOut(21), -- The server/device has stopped the job -- at the beginning of processing to await -- human action, such as installing a -- special cartridge or special non- -- standard media, but the job was not -- resumed within the site-settable time- -- out value and the server/device has -- transitioned the job to the held state. -- Normally, the job is resumed by means -- outside the job submission protocol, -- such as some local function on the -- device. jobEndWaitTimeOut(22), -- The server/device has stopped the job -- at the end of processing to await human -- action, such as removing a special -- cartridge or restoring standard media, -- but the job was not resumed within the -- site-settable time-out value and the -- server/device has transitioned the job -- to the retained state. Normally, the -- job is resumed by means outside the job -- submission protocol, such as some local -- function on the device, whereupon the -- job shall transition immediately to the -- terminating state. jobPasswordWaitTimeOut(23), -- The server/device has stopped the job -- at the beginning of processing to await -- input of the job's password, but the -- human intervention did not occur within -- the site-settable time-out value and -- the server/device has transitioned the -- job to the held state. Normally, the -- password is input and the job is -- resumed by means outside the job -- submission protocol, such as some local -- function on the device. Bergman, Hastings, Isaacson, Lewis [Page 55] Job Monitoring MIB Mar 26, 1997 deviceTimedOut(24), -- A device that the job was using has not -- responded in a period specified by the -- device's site-settable attribute. connectingToDeviceTimeOut(25), -- The server is attempting to connect to -- one or more devices which may be dial- -- up, polled, or queued, and so may be -- busy with traffic from other systems, -- but server was unable to connect to the -- device within the site-settable time- -- out value and the server has -- transitioned the job to the held state. transferring(26), -- The job is being transferred to a down -- stream server or device. queuedInDevice(27), -- The job has been queued in a down -- stream server or device. jobCleanup(28), -- The server/device is performing cleanup -- activity as part of ending normal -- processing. processingToStopPoint(29), -- The requester has issued an operation -- to interrupt the job and the -- server/device is processing up until -- the specified stop point occurs. jobPasswordWait(30), -- The server/device has selected the job -- to be next to process, but instead of -- assigning resources and started the job -- processing, the server/device has -- transitioned the job to the held state -- to await entry of a password (and -- dispatched another job, if there is -- one). The user resumes the job either -- locally or by issuing a remote -- operation and supplying a job- -- password=secret-code input parameter -- that must match the job's job-password -- attribute. validating(31), -- The server/device is validating the job -- after a CreateJob operation. The job -- state may be creating, held, pending, -- or processing. queueHeld(32), -- The operator has held the entire queue -- by means outside the scope of the Job -- model. Bergman, Hastings, Isaacson, Lewis 56 [Page ] Job Monitoring MIB Mar 26, 1997 jobProofWait(33), -- The job has produced a single proof -- copy and is in the held state waiting -- for the requester to issue an operation -- to release the job to print normally, -- obeying the job-copies and copy-count -- job and document attributes that were -- originally submitted. heldForDiagnostics(34), -- The system is running intrusive -- diagnostics, so the all jobs are being -- held. serviceOffLine(35), -- The service/document transform is off- -- line and accepting no jobs. All -- pending jobs are put into the held -- state. This could be true if its input -- is impaired or broken. noSpaceOnServer(36), -- The job is held because there is no -- room on the server to store all of the -- job. For example, there is no room for -- the document data or a scan-to-file -- job. pinRequired(37), -- The System Administrator settable -- device policy is (1) to require PINs, -- and (2) to hold jobs that do not have a -- pin supplied as an input parameter when -- the job was created. The requester -- shall either (1) enter a pin locally at -- the device or issue a remote operation -- supplying the PIN in order for the job -- to be able to proceed. exceededAccountLimit(38), -- The account for which this job is drawn -- has exceeded its limit. This condition -- should be detected before the job is -- scheduled so that the user does not -- wait until his/her job is scheduled -- only to find that the account is -- overdrawn. This condition may also -- occur while the job is processing -- either as processing begins or part way -- through processing. -- -- An overdraft mechanism should be -- included to be user-friendly, so as to -- minimize the chances that the job -- cannot finish or that media is wasted. -- For example, the server/device should Bergman, Hastings, Isaacson, Lewis 57 [Page ] Job Monitoring MIB Mar 26, 1997 -- finish the current copy for a job with -- collated document copies, rather than -- stopping in the middle of the current -- document copy. heldForRetry(39), -- The job encountered some errors that -- the server/device could not recover -- from with its normal retry procedures, -- but the error is worth trying the job -- later, such as phone number busy or -- remote file system in-accessible. For -- such a situation, the server/device -- shall add the held-for-retry value to -- the job's jmJobStateReasons object and -- transition the job from the processing -- to the held, rather than to the -- retained state. cancelledByShutdown(40), -- The job was cancelled because the -- server or device was shutdown before -- completing the job. The job shall be -- placed in the pending state [if the job -- was not started, else the job shall be -- placed in the terminating state]. deviceUnavailable(41), -- This job was aborted by the system -- because the device is currently unable -- to accept jobs. This reason [shall be] -- used in conjunction with the reason -- aborted-by-system. The job shall be -- placed in the pending state. wrongDevice(42), -- This job was aborted by the system -- because the device is unable to handle -- this particular job; the spooler should -- try another device. This reason [shall -- be] used in conjunction with the reason -- aborted-by- system. The job shall be -- pending if the queue contains other -- physical devices that the job could -- print on, and the spooler is capable of -- not sending the job back to a physical -- device that has rejected the job for -- this job-state-reasons value. -- Otherwise, [the job] shall be retained. badJob(43), -- This job was aborted by the system -- because this job has a major problem, -- such as an ill-formed PDL; the spooler -- should not even try another device. -- This reason shall be used in Bergman, Hastings, Isaacson, Lewis 58 [Page ] Job Monitoring MIB Mar 26, 1997 -- conjunction with the reason aborted-by- -- system. The job shall be placed in the -- terminating state. jobInterruptedByDeviceFailure(44), -- A device or the print system software -- that the job was using has failed while -- the job was processing. The device is -- keeping the job in the held state until -- an operator can determine what to do -- with the job. jobPrinting(45) -- The job is putting marks on a medium. -- This optional job state reason is -- provided for systems where there is a -- significant difference in the time -- period while a job is in the processing -- state between putting marks on a medium -- and other activities, such as -- interpreting the document data. For -- systems that interpret and mark at the -- same time for a job need not implement -- this job state reason. -- } Bergman, Hastings, Isaacson, Lewis 59 [Page ] Job Monitoring MIB Mar 26, 1997 -- The following table shows the JmJobStateReasonsTC values and the -- job states for which they are applicable. The ISO DPA job state reasons are shown along with additional job-state-reasons that give -- users additional feedback on the progress of their job: -- -- Job States -- pendi held proces interr pause retai termin comple -- ng sing upted d ned ating ted -- 4 3 5 7 8 10 9 11 Descriptive Name -- ISO DPA values documents-needed(1) -- x -- job-hold-set(2) x job-process-after- -- x specified(3) -- required-resources- -- x not-ready(4) -- successful- -- x x -- completion(5) completed-with- -- x x warnings(6) -- completed-with- -- x x errors(7) -- -- cancelled-by-user(8) x x x -- cancelled-by- x x x -- operator(9) -- aborted-by-system(10) x x x logfile-pending(11) -- x x -- logfile- x x -- transferring(12) Additional reasons -- Bergman, Hastings, Isaacson, Lewis [Page 60] Job Monitoring MIB Mar 26, 1997 -- Job States -- pendi held proces interr pause retai termin comple -- ng sing upted d ned ating ted -- 4 3 5 8 7 10 9 11 Descriptive Name -- ISO DPA values -- pendi held proces interr pause retai termin comple -- ng sing upted d ned ating ted -- 4 3 5 8 7 10 9 11 -- cascaded(13) x x x deleted-by- -- x x x administrator(14) -- discard-time- -- x x x arrived(15) -- postprint-failed(16) -- x x x submission- -- x x x interrupted(17) -- max-job-fault-count- -- x x x exceeded(18) -- devices-need- -- x x x x -- attention-time- out(19) -- needs-key-operator- -- x x x x -- time-out(20) job-start-wait-time- -- x x x x out(21) -- job-end-wait-time- -- x x x -- out(22) -- job-password-wait- x x -- time-out(23) device-timed-out(24) -- x x x x Bergman, Hastings, Isaacson, Lewis [Page 61] Job Monitoring MIB Mar 26, 1997 -- Job States -- pendi held proces interr pause retai termin comple -- ng sing upted d ned ating ted -- 4 3 5 8 7 10 9 11 Descriptive Name -- ISO DPA values connecting-to-device- -- x x x x time-out(25) -- transferring(26) -- x -- queued-in-device(27) x job-cleanup(28) -- x processing-to-stop- -- x point(29) -- job-password-wait(30) -- x x -- validating(31) x x x queue-held(32) -- x -- job-proof-wait(33) x held-for- -- x diagnostics(34) -- -- service-off-line(35) x no-space-on- -- x -- server(36) pin-required(37) -- x x x x -- exceeded-account- x x x x -- limit(38) held-for-retry(39) -- x -- job-printing(45) x Bergman, Hastings, Isaacson, Lewis 62 [Page ] Job Monitoring MIB Mar 26, 1997 -- X/Open PSIS job-state-reasons extension -- values -- pendi held proces interr pause retai termin comple -- ng sing upted d ned ating ted -- 3 4 5 8 7 9 10 11 cancelled-by- -- x x x -- shutdown(40) -- device- x -- unavailable(41) -- wrong-device(42) x x x bad-job(43) -- x x x job-interrupted-by- -- x device-failure(44) -- Bergman, Hastings, Isaacson, Lewis 63 [Page ] Job Monitoring MIB Mar 26, 1997 -- textual-convention 4: JmAttributeTypeTC JmAttributeTypeTC ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The type of the attribute. Attributes may represent information about a job, such as a file-name, or a document-name, or submission-time or completion time. Attributes may also represent resources required, e.g., a medium or a colorant , etc. to process the job before the job start processing OR to indicate the amount of the resource that is being consumed while the job is processing, e.g., pages completed or impressions completed. If both a required and a consumed value of a resource is needed, two separate attribute enums are assigned in the textual convention. In the following definitions of the enums, each description indicates whether the value of the attribute shall be represented using the jmAttributeValueAsInteger or the jmAttributeValueAsOctets objects by the initial tag: 'Integer:' or 'Octets:', respectively. A very few attributes use both objects at the same time to represent a pair of values (mediumConsumed)and so have both tags. If the jmAttributeValueAsInteger object is not used (no 'Integer:' tag), the agent shall return the value (-1) indicating other. If the jmAttributeValueAsOctets object is not used (no 'Octets:' tag), the agent shall return a zero-length octet string. The standard attribute types defined so far are:" -- This is a type 2 enumeration. See Section 7.1 on page 35. SYNTAX INTEGER { -- jmAttributeTypeIndex Description - including Octets: or -- Integer: to specify whether the value -- is represented in the -- jmAttributeValueAsOctets or the -- jmAttributeValueAsInteger object, -- respectively. Bergman, Hastings, Isaacson, Lewis [Page 64] Job Monitoring MIB Mar 26, 1997 other(1), -- An attribute that is not in the list -- and/or that has not been registered -- with IANA. fileName(3), -- Octets: The coded character set file -- name of the document. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job. documentName(4), -- Octets: The coded character set name -- of the document. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job. jobAccountName(5), -- Octets: Arbitrary binary information -- which may be coded character set data -- or encrypted data supplied by the -- submitting user for use by accounting -- services to allocate or categorize -- charges for services provided, such as -- a customer account name. -- -- NOTE: This attribute need not be -- printable characters. jobComment(6), -- Octets: An arbitrary human-readable -- coded character text string supplied by -- the submitting user or the job -- submitting application program for any -- purpose. For example, a user might -- indicate what he/she is going to do -- with the printed output or the job -- submitting application program might -- indicate how the document was produced. -- -- The jobComment attribute is not -- intended to be a name; see the -- jmJobName object. processingMessage(7), -- Octets: A coded character set message -- that is generated during the processing -- of the job as a simple form of -- processing log to show progress and any -- problems. -- -- A row with this attribute item may Bergman, Hastings, Isaacson, Lewis 65 [Page ] Job Monitoring MIB Mar 26, 1997 -- appear more than once in the -- jmAttributeTable for a job. jobSourceChannelIndex(8), -- Integer: The index of the row in the -- associated Printer MIB of the channel -- which is the source of the print job. -- See RFC 1759. -- -- Must be 1 or greater. -- -- NOTE - the Job Monitoring MIB points to -- the Channel row in the Printer MIB, so -- there is no need for a port object in -- the Job Monitoring MIB, since the PWG -- is adding a prtChannelInformation -- object to the Channel table of the -- draft Printer MIB. outputBinIndex(9), -- Integer: The output subunit index in -- the Printer MIB of the output bin to -- which all or part of the job is placed -- in. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job, but the -- jmAttributeValueAsInteger shall be -- different for each such row. outputBinName(10), -- Octets: The name of the output bin to -- which all or part of the job is placed -- in. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job, but the -- jmAttributeValueAsOctets shall be -- different for each such row. sides(11), -- Integer: The number of sides that any -- document in this job will require or -- did use. documentFormatIndex(12), -- Integer: The interpreter language -- family index in the Printer MIB of the -- prtInterpreterLangFamily object, that -- this job requires and uses. A document -- or a job may use more than one PDL. -- -- A row with this attribute item may -- appear more than once in the Bergman, Hastings, Isaacson, Lewis 66 [Page ] Job Monitoring MIB Mar 26, 1997 -- jmAttributeTable for a job, but the -- jmAttributeValueAsInteger shall be -- different for each such row. As with -- all intensive attribute items where -- multiple rows are allowed, there shall -- be only one distinct row for each -- distinct PDL; there shall be no -- duplicates. -- -- NOTE - This attribute type is intended -- to be used with an agent that -- implements the Printer MIB and shall -- not be used if the agent does not -- implement the Printer MIB. Such as -- agent shall use the documentFormatEnum -- attribute instead. documentFormatEnum(13), -- Integer: The interpreter language -- family corresponding to the Printer MIB -- prtInterpreterLangFamily object, that -- this job requires and uses. A document -- or a job may use more than one PDL. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job, but the -- jmAttributeValueAsInteger shall be -- different for each such row. As with -- all intensive attribute items where -- multiple rows are allowed, there shall -- be only one distinct row for each -- distinct PDL; there shall be no -- duplicates. -- -- This enum is a type 2 enum. -- -- NOTE: This textual convention is -- imported from the draft Printer MIB, -- but is not in RFC 1759. physicalDeviceIndex(14), -- Integer: The index of the physical -- device MIB instance requested/used, -- such as the Printer MIB. This value is -- an hrDeviceIndex value. See the Host -- Resource MIB. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job that is -- using more than one physical device, -- but the jmAttributeValueAsInteger shall Bergman, Hastings, Isaacson, Lewis [Page 67] Job Monitoring MIB Mar 26, 1997 -- be different for each such row. -- -- If there is no physical device MIB -- instance for this job, this row shall -- not be present in the jmAttributeTable. physicalDeviceName(15), -- Octets: The name of the physical -- device to which the job is assigned. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job that is -- using more than one physical device, -- but the jmAttributeValueAsOctets shall -- be different for each such row. -- ******************************************************************** -- Resources requested and consumed attributes -- Pairs of these attributes can be used by monitoring -- applications to show users thermometers of usage. -- ******************************************************************** jobCopiesRequested(16), -- Integer: The number of copies of the -- entire job that are to be produce -- -- A value of -2 means unknown. jobCopiesCompleted(17), -- Integer: The number of copies of the -- entire job that the entire job has -- completed so far. -- -- A value of (-2) means unknown. documentCopiesRequested(18), -- Integer: The total count of the number -- of document copies requested. If there -- are documents A, B, and C, and document -- B is specified to produce 4 copies, the -- number of document copies requested is -- 6 for the job. documentCopiesCompleted(19), -- Integer: The total count of the number -- of document copies completed so far for -- the job as a whole. If there are -- documents A, B, and C, and document B -- is specified to produce 4 copies, the -- number of document copies starts a 0 -- and runs up to 6 for the job as the job -- processes. jobKOctetsTotal(20), -- Integer: The total number of K (1024) Bergman, Hastings, Isaacson, Lewis [Page 68] Job Monitoring MIB Mar 26, 1997 -- octets to be processed in the job, -- including document and job copies. The -- agent shall round the actual number of -- octets up to the next highest K. Thus -- 0 octets shall be represented as 0, 1- -- 1024 octets shall be represented as 1, -- 1025-2048 shall be represented as 2, -- etc. -- -- The server/device may update the value -- of this attribute after each document -- has been transferred to the -- server/device or the server/device may -- provide this value after all documents -- have been transferred to the -- server/device, depending on -- implementation. In other words, while -- the job is in the preProcessing state -- and when the job is in the held state -- with the jmJobStateReasons object -- containing a documentsNeeded value, the -- value of the jobKOctetsTotal attribute -- depends on implementation and may not -- correctly reflect the size of the job. -- -- In computing this value, the -- server/device shall include the -- multiplicative factors contributed by -- (1) the number of document copies, and -- (2) the number of job copies, -- independent of whether the device can -- process multiple copies of the job or -- document without making multiple passes -- over the job or document data and -- independent of whether the output is -- collated or not. Thus the -- server/device computation is -- independent of the implementation and -- shall be: -- -- (1) Document contribution: -- Multiply the size of each document -- in octets by the number of document -- copies of that document. -- -- (2) Add each document contribution -- together. -- -- (3) Job copy contribution: -- Multiply the job size by the number -- of job copies. Bergman, Hastings, Isaacson, Lewis [Page 69] Job Monitoring MIB Mar 26, 1997 -- -- (4) Round up the result to the next -- higher K (1024 multiple). -- -- The total K octets to be processed can -- be used in the denominator with the -- jmJobKOctetsCompleted attribute in the -- numerator in order to produce a -- 'thermometer' that indicates the -- progress of the job. -- -- The value (-2) means unknown. jobKOctetsCompleted(21), -- Integer: The number of K (1024) octets -- currently processed by the device, -- including document and job copies. For -- printing, the completed count includes -- processing (interpreting) and marking. -- For scanning, the completed count -- include scanning. -- -- The agent shall round the actual number -- of octets completed up to the next -- higher K. Thus 0 octets is represented -- as 0, 1-1023, is represented as 1, -- 1024-2047 is 2, etc. When the job -- completes, the values of the -- jobKOctetsTotal and the -- jmJobKOctetsCompleted attributes shall -- be equal. -- -- For multiple copies generated from a -- single data stream, the value shall be -- incremented as if each copy was printed -- from a new data stream without -- resetting the count between copies. -- See the pagesCompletedCurrentCopy -- attribute that is reset on each -- document copy. -- -- The total K octets completed can be -- used in the numerator with the -- jobKOctetsTotal attribute in the -- denominator in order to produce a -- "thermometer" that indicates the -- progress of the job. -- -- The value of this attribute shall be 0 -- if processing has not started for this -- job. Bergman, Hastings, Isaacson, Lewis 70 [Page ] Job Monitoring MIB Mar 26, 1997 -- ******************************************************************** -- Impression attributes: For a print job, an impression is the -- marking of the entire side of a sheet. Two-sided processing -- involves two impressions per sheet. Two-up is the placement of two -- logical pages on one side of a sheet and so is still a single -- impression. -- ******************************************************************** impressionsSpooled(22), -- Integer: The number of impressions -- spooled to the server or device for the -- job. impressionsSentToDevice(23), -- Integer: The number of impressions -- sent to the device for the job. impressionsInterpreted(24), -- Integer: The number of impressions -- interpreted for the job. impressionsRequested(25), -- Integer: The number of impressions -- requested by this job to produce. impressionsCompleted(26), -- Integer: The total number of -- impressions completed by this job so -- far. -- -- The value of this attribute shall be 0 -- if processing has not started for this -- job. impressionsCompletedCurrentCopy(27), -- Integer: The number of impressions -- completed for the current copy of the -- current document. -- -- The value of this attribute shall be 0 -- if processing has not started for this -- job. -- ******************************************************************** -- Page attributes: A page is a logical page. Number up can impose -- more than one page on a single side of a sheet. Two-up is the -- placement of two logical pages on one side of a sheet so that each -- side counts as two pages. -- ******************************************************************** pagesRequested(28), -- Integer: The number of logical pages -- requested by the job to be processed. pagesCompleted(29), -- Integer: The total number of logical Bergman, Hastings, Isaacson, Lewis 71 [Page ] Job Monitoring MIB Mar 26, 1997 -- pages completed for this job. pagesCompletedCurrentCopy(30), -- Integer: The number of logical pages -- completed for the current copy of the -- document. This value is reset to 0 for -- each document and for each document -- copy. -- ******************************************************************** -- Sheet attributes: The sheet is a single piece of a medium, whether -- printing on one or both sides. -- ******************************************************************** sheetsRequested(31), -- Integer: The total number of medium -- sheets requested to be processed for -- this job. sheetsCompleted(32), -- Integer: The total number of medium -- sheets that have been completed for the -- entire job whether those sheets have -- been processed on one side or on both. -- The value of this attribute shall be 0 -- if processing has not started for this -- job. -- sheetsCompletedCurrentCopy(33), -- Integer: The number of medium sheets -- that have been completed for the -- current copy of a document in the job -- whether those sheets have been -- processed on one side or on both. -- The value of this attribute shall be 0 -- if processing has not started for this -- job. mediumRequested(34), -- Octets: The name of the medium that is -- required by the job. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job, but the -- jmAttributeValueAsOctets shall be -- different for each such row. mediumConsumed(35), -- Octets: The name of the medium AND -- -- Integer: the number of sheets that -- have been consumed whether those sheets -- have been processed on one side or on Bergman, Hastings, Isaacson, Lewis [Page 72] Job Monitoring MIB Mar 26, 1997 -- both. This attribute shall have both -- values. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job, but the -- jmAttributeValueAsOctets shall contain -- a different name for each such row. -- -- The value of this attribute shall be 0 -- if processing has not started for this -- job. colorantRequestedIndex(36), -- Integer: The index -- (prtMarkerColorantIndex) in the Printer -- MIB of the colorant requested. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job, but the -- jmAttributeValueAsOctets shall be -- different for each such row. colorantRequestedName(37), -- Octets: The name of the colorant -- requested. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job, but the -- jmAttributeValueAsOctets shall be -- different for each such row. colorantConsumedIndex(38), -- Integer: The index -- (prtMarkerColorantIndex) in the Printer -- MIB of the colorant consumed. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job, but the -- jmAttributeValueAsOctets shall be -- different for each such row. colorantConsumedName(39), -- Octets: The name of the colorant -- consumed. -- -- A row with this attribute item may -- appear more than once in the -- jmAttributeTable for a job, but the -- jmAttributeValueAsOctets shall be -- different for each such row. Bergman, Hastings, Isaacson, Lewis 73 [Page ] Job Monitoring MIB Mar 26, 1997 -- ******************************************************************** -- Time attributes: two forms of time are provided: DateAndTime and -- TimeStamp from SNMPv2TC (RFC 1903). DateAndTime is an 8- or -- 11-octet binary encoded year, month, day, hour, minute, second, -- deci-second with optional offset from UTC. TimeStamp is the -- integer value of sysUpTime (in hundredths of a second). See page 40. -- ******************************************************************** jobSubmissionDateAndTime(40), -- Octets: The date and time that the job -- was submitted. The value shall be -- specified using the DateAndTime textual -- convention from SMIv2-TC (see page 40). -- -- NOTE: DateAndTime is not printable -- characters. jobSubmissionTimeStamp(41), -- Integer: The time that the job was -- submitted. The value shall be -- specified using the TimeStamp textual -- convention from SMIv2-TC (see page 40). jobStartedProcessingDateAndTime(42), -- Octets: The date and time that the job -- started processing. The value shall be -- specified using the DateAndTime textual -- convention from SMIv2-TC (see page 40). jobStartedProcessingTimeStamp(43), -- Integer: The time that the job started -- processing. The value shall be -- specified using the TimeStamp textual -- convention from SMIv2-TC (see page 40). jobCompletedDateAndTime(44), -- Octets: The date and time that the job -- completed processing and the medium is -- completely stacked in the output bin. -- The value shall be specified using the -- DateAndTime textual convention from -- SMIv2-TC (see page ). 40 jobCompletedTimeStamp(45), -- Integer: The time that the job -- completed processing and the medium is -- completely stacked in the output bin. -- The value shall be specified using the -- TimeStamp textual convention from -- SMIv2-TC (see page 40). processingCPUTime(46) -- Integer: The amount of CPU time that -- the job has been processing in seconds. Bergman, Hastings, Isaacson, Lewis 74 [Page ] Job Monitoring MIB Mar 26, 1997 -- If the job needs attention, that -- elapsed time shall not be included. In -- other words, the processingCPUTime -- should be relatively repeatable. -- -- The value of this attribute shall be 0 -- if processing has not started for this -- job. } Bergman, Hastings, Isaacson, Lewis [Page 75] Job Monitoring MIB Mar 26, 1997 -- The General Group (Mandatory) -- The jmGeneralGroup consists of information of a general -- nature that are per-job-set, but are not per-job. The -- jmGeneralGroup consists entirely of the jmGeneralEntry which -- is indexed by: -- -- -- -- 1. jmJobSetIndex - a running index of Job Set instances -- supported by this device or server. A job set is used in -- the MIB to represent the separation of jobs into disjoint -- sets for scheduling purposes in a server, typically into -- separate job queues. See Terminology and Job Model on -- for the definition of a job set. page 11 -- -- -- Implementation of every object in this group is mandatory. See Section entitled ' 4 Conformance Considerations' on page . 31 jmGeneral OBJECT IDENTIFIER ::= { jobmonmib 5 } jmGeneralTable OBJECT-TYPE SYNTAX SEQUENCE OF JmGeneralEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of general information per-job-set ( queue), but not per-job. See Terminology and Job Model on page for the definition of a job set." 11 ::= { jmGeneral 1 } jmGeneralEntry OBJECT-TYPE SYNTAX JmGeneralEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Information about a job set (queue). See Terminology and Job Model on page 11 for the definition of a job set. An entry shall exist in this table for each job set." INDEX { jmJobSetIndex } ::= { jmGeneralTable 1 } JmGeneralEntry ::= SEQUENCE { jmJobSetIndex Integer32(1..32767), jmGeneralJobSetName OCTET STRING(SIZE(0..63)), jmGeneralJobCompletedPolicy Integer32(0..2147483647), Bergman, Hastings, Isaacson, Lewis 76 [Page ] Job Monitoring MIB Mar 26, 1997 jmGeneralMaxNumberOfJobs Integer32(0..2147483647), jmGeneralNumberOfJobsToComplete Integer32(0..2147483647), jmGeneralNumberOfJobsCompleted Integer32(0..2147483647) } jmJobSetIndex OBJECT-TYPE SYNTAX Integer32(1..32767) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The 16-bit index of a Job Set instance used to represent the separation of jobs into disjoint sets for scheduling purposes in a server, typically into separate job queues. See Terminology and Job Model on page for the definition of a job set. Agents 11 implementing a single Job Set instance shall use an index value of 1 for this object." ::= { jmGeneralEntry 1 } jmGeneralJobSetName OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..63)) MAX-ACCESS read-only STATUS current DESCRIPTION "The human readable administratively assigned name of this job set. Typically, this name will be the name of the job queue. If a server or printer has only a single job set, this object can be the administratively assigned name of the server or printer itself. This name does not need to be unique, though each job set in a single Job Monitoring MIB should have distinct names. The purpose of this object is to help the user of the job monitoring application distinguish between several job sets in implementations that support more than one job set." ::= { jmGeneralEntry 2 } jmGeneralJobCompletedPolicy OBJECT-TYPE SYNTAX Integer32(0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The time in seconds that the device or server keeps jobs in the jmJobTable and jmJobCompletedTable after processing as specified by the system administrator for this instance of the Job Set." ::= { jmGeneralEntry 3 } jmGeneralMaxNumberOfJobs OBJECT-TYPE Bergman, Hastings, Isaacson, Lewis 77 [Page ] Job Monitoring MIB Mar 26, 1997 SYNTAX Integer32(0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum number of queued and completed jobs that this server or print can support at the same time. The value (-1) indicating other shall indicate that there is no fixed limit." ::= { jmGeneralEntry 4 } jmGeneralNumberOfJobsToComplete OBJECT-TYPE SYNTAX Integer32(0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of jobs currently in the jmJobTable that are to be completed, i.e., the total number of jobs that are in the following states: pre-processing, held, pending, processing, needs- attention, paused, interrupted, or terminating, but not retained or completed. See JmJobStateTC on page 47 for the exact specification of the semantics of the job states." ::= { jmGeneralEntry 5 } jmGeneralNumberOfJobsCompleted OBJECT-TYPE SYNTAX Integer32(0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of jobs currently in the jmJobTable that are completed, i.e., the total number of jobs that are in the following states: retained or completed, but not pre-processing, held, pending, processing, needs-attention, paused, interrupted, or terminating. See JmJobStateTC on page for the exact specification of the semantics 47 of retained, completed and the other states. The value of the jmGeneralNumberOfJobsCompleted shall equal the number of jobs in the jmCompletedTable. The sum of jmGeneralNumberOfJobsToComplete and jmGeneralNumberOfJobsCompleted shall be equal to the number of jobs in the jmJobTable." ::= { jmGeneralEntry 6 } Bergman, Hastings, Isaacson, Lewis 78 [Page ] Job Monitoring MIB Mar 26, 1997 -- The Queue Group (Conditionally Mandatory) -- The jmQueueGroup consists of job objects that are needed by a -- server or device that queues jobs, but are not needed after the -- job has completed processing, i.e., are not needed by accounting -- -- applications. -- -- The jmQueueGroup is conditionally mandatory meaning that the -- jmQueueGroup shall be implemented by a Job Monitoring MIB agent -- that is instrumenting a server or printer that performs queuing (or spooling). -- -- The jmQueueGroup is made up entirely of the jmQueueTable which is -- an ordered list of jobs in a job set that have not completed -- processing. The jmQueueTable is indexed by: -- -- -- jmJobSetIndex - a running index of Job Set instances 1. -- supported by this device or server. A job set is used in the -- MIB to represent the separation of jobs into disjoint sets -- for scheduling purposes in a server, typically into separate -- job queues. See -- Terminology and Job Model on page for the 11 definition of a job set. -- -- -- -- jmQueueIndex - a running index of the jobs that have not 2. -- finished processing and shall indicate the order that the -- jobs are currently scheduled to be processed. -- -- -- Implementation of this group is conditionally mandatory, i.e., mandatory if the server or printer that the agent is -- -- instrumenting queues jobs (rather than just passing the jobs through). See Section 4 entitled 'Conformance Considerations' on page 31. jmQueue OBJECT IDENTIFIER ::= { jobmonmib 6 } jmQueueTable OBJECT-TYPE SYNTAX SEQUENCE OF JmQueueEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of per-job information needed by a server or device that performs queuing." ::= { jmQueue 1 } jmQueueEntry OBJECT-TYPE SYNTAX JmQueueEntry MAX-ACCESS not-accessible Bergman, Hastings, Isaacson, Lewis [Page 79] Job Monitoring MIB Mar 26, 1997 STATUS current DESCRIPTION "Information about a job in a server or printer that performs queuing. An entry shall exist in this table for each job in a job set that is queued, i.e., for each job that has not completed processing." INDEX { jmJobSetIndex, jmQueueIndex } ::= { jmQueueTable 1 } JmQueueEntry ::= SEQUENCE { jmQueueIndex Integer32(1..2147483647), jmQueueJobIndex Integer32(1..2147483647), jmQueueNumberOfInterveningJobs Integer32(0..2147483647), jmJobPriority Integer32(0..100), jmJobProcessAfterDateAndTime DateAndTime } jmQueueIndex OBJECT-TYPE SYNTAX Integer32(1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The 32-bit index of the jobs that have not finished processing. The index values shall be assigned monatonically increasing as the server or printer determines the order of processing. The agent shall change the value of this object dynamically as the priority ordering of jobs changes. Thus the jmQueueTable orders the jobs into their current priority order which can change as new jobs are submitted and/or the configuration of the Printer is changed." ::= { jmQueueEntry 1 } jmQueueJobIndex OBJECT-TYPE SYNTAX Integer32(1..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The job's identifier generated by the server or device when that server or device accepted the job. This value permits the management application to access the other tables to obtain the job-specific objects. This value shall be the same for a job in the jmQueueTable as the corresponding jmJobIndex value in the jmJobTable for this job. The value 0 shall not be generated. Agents instrumenting systems that contain jobs with a job Bergman, Hastings, Isaacson, Lewis [Page 80] Job Monitoring MIB Mar 26, 1997 identifier of 0 shall map the value 0 to a value that is one higher than the highest job identifier value that any job can have on that system." ::= { jmQueueEntry 2 } jmQueueNumberOfInterveningJobs OBJECT-TYPE SYNTAX Integer32(0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The number of jobs that are expected to be processed before this job is processed according to the implementation's queuing algorithm if no other jobs were to be submitted. The agent shall return a value of 0 for this object when the job starts processing." ::= { jmQueueEntry 3 } jmJobPriority OBJECT-TYPE SYNTAX Integer32(0..100) MAX-ACCESS read-only STATUS current DESCRIPTION "This attribute specifies a priority for scheduling the job. It is used by servers and devices that employ a priority-based scheduling algorithm. A higher value specifies a higher priority. The value 1 is defined to indicate the lowest possible priority (a job which a priority-based scheduling algorithm shall pass over in favor of higher priority jobs). The value 100 is defined to indicate the highest possible priority. Priority is expected to be evenly or 'normally' distributed across this range. The mapping of vendor-defined priority over this range is implementation-specific. A value of 0 shall be returned by implementations that do not have a priority-based queuing algorithm." ::= { jmQueueEntry 4 } jmJobProcessAfterDateAndTime OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the calendar date and time of day after which the job shall become a candidate to be scheduled for processing. If the value of this attribute is in the future, the server shall set the Bergman, Hastings, Isaacson, Lewis [Page 81] Job Monitoring MIB Mar 26, 1997 value of the job's jmJobCurrentState to held and add the jobProcessAfterSpecified bit value to the job's jmJobStateReasons object and shall not schedule the job for processing until the specified date and time has passed. When the specified date and time arrives, the server shall remove the jobProcessAfterSpecified bit value from the job's jmJobStateReasons object and, if no other reasons remain, shall change the job's jmJobCurrentState to pending so that the job becomes a candidate for being scheduled on devices(s). The server shall assign an empty value to the jmJobProcessAfterDateAndTime object when no process after time has been specified, so that the job shall be a candidate for processing immediately." ::= { jmQueueEntry 5 } Bergman, Hastings, Isaacson, Lewis [Page 82] Job Monitoring MIB Mar 26, 1997 -- The Completed Group (Mandatory) -- The jmCompletedGroup consists entirely of the jmCompletedTable -- which is an ordered list of the jobs in the job set that have -- completed processing, i.e., jobs that are in the terminating, -- retained or completed state. The jmCompletedTable is indexed by: -- -- -- 1. -- jmJobSetIndex - a running index of Job Set instances -- supported by this device or server. A job set is used in the MIB to represent the separation of jobs into disjoint sets -- for scheduling purposes in a server, typically into separate -- -- job queues. See Terminology and Job Model on page for the 11 definition of a job set. -- -- -- -- jmCompletedIndex - a running index of the jobs that have 2. -- finished processing. -- -- Implementation of every object in this group is mandatory. See Section entitled ' 4 Conformance Considerations' on page . 31 jmCompleted OBJECT IDENTIFIER ::= { jobmonmib 7 } jmCompletedTable OBJECT-TYPE SYNTAX SEQUENCE OF JmCompletedEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of pointers to jobs that have finished processing, have been cancelled by a user or operator, or the system has aborted." ::= { jmCompleted 1 } jmCompletedEntry OBJECT-TYPE SYNTAX JmCompletedEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A pointer to a job that has finished processing. An entry shall exist in this table for each job that has finished processing, due to normal completion, cancellation by a user, or termination by the system." INDEX { jmJobSetIndex, jmCompletedIndex } ::= { jmCompletedTable 1 } JmCompletedEntry ::= SEQUENCE { Bergman, Hastings, Isaacson, Lewis 83 [Page ] Job Monitoring MIB Mar 26, 1997 jmCompletedIndex Integer32(1..2147483647), jmCompletedJobIndex Integer32(1..2147483647) } jmCompletedIndex OBJECT-TYPE SYNTAX Integer32(1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The 32-bit index of the jobs that are in the retained or completed states. The agent shall add jobs to the end of the jmCompletedTable, so that monitor programs can quickly determine what jobs have completed since the last time that the monitoring programs accessed the jmCompletedTable. The index values shall be monatonically increasing. Therefore, the order of the jobs specified by the value of this index shall be the order in which the jobs finished processing. Since the jmCompletedIndex shall roll over when the jmCompletedIndex would have reached 2^31 (but no lower), monitoring programs shall handle such roll over." ::= { jmCompletedEntry 1 } jmCompletedJobIndex OBJECT-TYPE SYNTAX Integer32(1..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The job's identifier generated by the server or device when that server or device accepted the job. This value permits the management application to access the other tables to obtain the job-specific objects. This value shall be the same for a job in the jmQueueTable as the corresponding jmJobIndex value in the jmJobTable for this job. The value 0 shall not be generated. Agents instrumenting systems that contain jobs with a job identifier of 0 shall map the value 0 to a value that is one higher than the highest job identifier value that any job can have on that system." ::= { jmCompletedEntry 2 } Bergman, Hastings, Isaacson, Lewis 84 [Page ] Job Monitoring MIB Mar 26, 1997 -- The Job Group (Mandatory) -- The jmJobGroup consists of basic job identification and status -- -- information for each job in a job set that (1) monitoring -- applications need to be able to access in a single SNMP Get -- operation, (2) that have a single value per job, and (3) that -- shall always be implemented. -- -- The jmJobGroup consists entirely of the jmJobTable which is -- indexed by: -- -- 1. jmJobSetIndex - a running index of Job Set instances -- supported by this device or server. A job set is used in the -- -- MIB to represent the separation of jobs into disjoint sets -- for scheduling purposes in a server, typically into separate -- job queues. See Terminology and Job Model on page 11 for the definition of a job set. -- -- -- -- jmJobIndex - the job identifier that was generated by the 2. -- server or device that accepted the job. -- -- Implementation of every object in this group is mandatory. See Section 4 entitled 'Conformance Considerations' on page . 31 jmJob OBJECT IDENTIFIER ::= { jobmonmib 8 } jmJobTable OBJECT-TYPE SYNTAX SEQUENCE OF JmJobEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of basic job identification and status information for each job in a job set." ::= { jmJob 1 } jmJobEntry OBJECT-TYPE SYNTAX JmJobEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Basic per-job identification and status information. An entry shall exist in this table for each job, no matter what the state of the job is. Each job shall appear in one and only one job set." INDEX { jmJobSetIndex, jmJobIndex } Bergman, Hastings, Isaacson, Lewis [Page 85] Job Monitoring MIB Mar 26, 1997 ::= { jmJobTable 1 } JmJobEntry ::= SEQUENCE { -- Job Identification (I) objects: jmJobIndex Integer32(1..2147483647), jmJobName OCTET STRING(SIZE(0..63)), jmJobIdName OCTET STRING(SIZE(0..63)), jmJobIdNumber Integer32(0..2147483647), jmJobServiceTypes Integer32(1..2147483647), -- JmJobServiceTypesTC jmJobOwner OCTET STRING(SIZE(0..63)), jmJobDeviceNameOrQueueRequested OCTET STRING(SIZE(0..63)), -- Job Status (S) objects: jmJobCurrentState JmJobStateTC, jmJobStateReasons OCTET STRING(SIZE(0..63)) -- encoded as a bit string } -- Job Identification (I) objects -- The following jmJobGroup objects identify the job to the user of -- the management application which may be acting in the role of an -- end-user or a system operator: -- jmJobIndex OBJECT-TYPE SYNTAX Integer32(1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The identifier of the job on the device or server. The job's identifier is generated by the server or device when that server or device accepted the job. However, if the device does not generate a job identifier for each job, then the Job Monitoring MIB agent shall generate the job identifier for the job. The value 0 shall not be generated. Agents instrumenting systems that contain jobs with a job identifier of 0 shall map the value 0 to a value that is one higher than the highest job identifier value that any job can have on that system." ::= { jmJobEntry 1 } OBJECT-TYPE jmJobName SYNTAX OCTET STRING(SIZE(0..63)) MAX-ACCESS read-only STATUS current DESCRIPTION Bergman, Hastings, Isaacson, Lewis 86 [Page ] Job Monitoring MIB Mar 26, 1997 "This object is the human readable string name of the job as assigned by the submitting user to help the user distinguish between his/her various jobs. This name does not need to be unique. This attribute is intended for enabling a user or the user's application to convey a job name that may be printed on a start sheet, returned in a query result, or used in notification or logging messages. If this attribute is not specified when the job is submitted, no job name is assumed, but implementation specific defaults are allowed, such as the value of the documentName(4) resource item of the first document in the job or the fileName(3) resource item of the first document in the job. The jmJobName is distinguished from the jobComment attribute, in that the jmJobName is intended to permit the submitting user to distinguish between different jobs that he/she has submitted. The jobComment attribute is intended to be free form additional information that a user might wish to use to communicate with himself/herself, such as a reminder of what to do with the results or to indicate a different set of input parameters were tried in several different job submissions." ::= { jmJobEntry 2 } jmJobIdName OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..63)) MAX-ACCESS read-only STATUS current DESCRIPTION "Identifies the job on the 'client-side' of the printing process as coded character set data in combination with the jmJobIdNumber object. The jmJobIdName and the jmJobIdNumber objects are referred to as the 'client-side' identifiers because they allow the user, operator, or the system administrator to uniquely identify the print jobs of interest from all the jobs currently 'known' by the server or device. The client-side identifiers can be assigned by either the job submission client's local system or a downstream server, depending on implementation and the job submission protocol. The format of the coded character set data and point of assignment of the client-side identifiers depend upon the job Bergman, Hastings, Isaacson, Lewis [Page 87] Job Monitoring MIB Mar 26, 1997 submission protocol in use. See Appendix A on page 103 for the mapping from selected job submission protocols to these client-side job identifiers. Unlike jmJobName, which is assigned by the submitting user, the jmJobIdName and jmJobIdNumber client-side identifiers provide for unique identification of jobs. The jmJobIdName object may be used alone or in conjunction with the jmJobIdNumber object, depending upon the format of the job submission protocol client side identifier. For example, the LPD job identifier normally contains three alpha characters followed by a three digit number. The agent may represent the alpha portion by jmJobIdName and the numeric portion by jmJobIdNumber. Alternatively, the agent may represent the LPD client-side id entirely in the jmJobIdName object." ::= { jmJobEntry 3 } jmJobIdNumber OBJECT-TYPE SYNTAX Integer32(0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "Identifies the job on the 'client-side' of the printing process in combination with the jmJobIdName object. This object may be used alone or in conjunction with the jmJobIdName object, depending upon the format of the job submission protocol client-side identifier. Refer to the jmJobIdName object specification. If the value of this object is unknown, the agent shall return the value (-2)." ::= { jmJobEntry 4 } jmJobServiceTypes OBJECT-TYPE SYNTAX Integer32(1..2147483647) -- See JmJobServiceTypesTC -- on page 45 MAX-ACCESS read-only STATUS current DESCRIPTION "Specifies the type(s) of service to which the job has been submitted (print, fax, scan, etc.). The service type is represented as an enum that is bit encoded with each job service type so that more general and arbitrary services can be created, such as services with more than one destination type, or Bergman, Hastings, Isaacson, Lewis 88 [Page ] Job Monitoring MIB Mar 26, 1997 ones with only a source or only a destination. For example, a job service might scan, fax, and print a single job. In this case, three bits would be set in the jmJobServiceTypes object, corresponding to the values: 8+32+4=44, respectively. Whether this object is set from a job attribute supplied by the job submission client or is set by the recipient job submission server or device depends on the job submission protocol. With either implementation, the agent shall return a non-zero value for this object indicating the type of the job. One of the purposes of this object is to permit a requester to filter out jobs that are not of interest. For example, a printer operator may only be interested in jobs that include printing. That is why the object is in the job identification category. This object is a type 2 enum. The JmJobServiceTypesTC textual convention defines component types as separate bit value in the enum. See page ." 45 ::= { jmJobEntry 5 } jmJobOwner OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..63)) MAX-ACCESS read-only STATUS current DESCRIPTION "The coded character set name of the user that submitted the job. The method of assigning this user name will be system and/or site specific but the method must insure that the name is unique to the network that is visible to the client and target device. This value should be the authenticated name of the user submitting the job." ::= { jmJobEntry 6 } jmJobDeviceNameOrQueueRequested OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..63)) MAX-ACCESS read-only STATUS current DESCRIPTION "The administratively defined coded character set name of the target device or queue. Its value Bergman, Hastings, Isaacson, Lewis [Page 89] Job Monitoring MIB Mar 26, 1997 corresponds to the Printer MIB: prtGeneralAdminName object (added to the draft Printer MIB) for printers. For servers, this object is the name that users supply to indicate whether they want the job to be processed, typically, but not limited to, a job queue name or logical printer name." ::= { jmJobEntry 7 } jmJobCurrentState OBJECT-TYPE SYNTAX JmJobStateTC -- See page 47 MAX-ACCESS read-only STATUS current DESCRIPTION "The current state of the job (pending, processing, held, etc.) Management applications shall be prepared to receive all the standard job states. Servers and devices are not required to generate all job states, only those which are appropriate for the particular implementation. A companion textual convention (JmJobStateReasonsTC) and corresponding object (jmJobStateReasons) provide additional information about job states. While the job states cannot be added to without impacting deployed clients, it is the intent that additional JmJobStateReasonsTC enums can be defined without impacting deployed clients. In other words, the JmJobStateReasonsTC is intended to be extensible. See page 51. This object is a type 2 enum." ::= { jmJobEntry 8 } jmJobStateReasons OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..63)) -- encoded as a bit string -- See JmJobStateReasonsTC -- on page 51 MAX-ACCESS read-only STATUS current DESCRIPTION "This object provides additional information regarding the jmJobCurrentState object. This object identifies the reason or reasons that the job is in the preProcessing, held, pending, processing, needsAttention, paused, interrupted, terminating, retained, or completed state. The server shall indicate the particular reason(s) by setting the Bergman, Hastings, Isaacson, Lewis 90 [Page ] Job Monitoring MIB Mar 26, 1997 value of the jmJobStateReasons object. While the job states cannot be added to without impacting deployed clients, it is the intent that additional JmJobStateReasonsTC enums can be defined without impacting deployed clients. In other words, the JmJobStateReasonsTC is intended to be extensible. See page . 51 When the job does not have any reasons for being in its current state, the server shall set the value of the jmJobStateReasons object to a bit string containing all zeros. Bits in the bit string are assigned starting with the most significant bit in the most significant octet which is called bit 1. Bit 2 is the next most significant bit in the most significant octet, etc. Bit 9 is the most significant bit in the second most significant octet, etc., up to the maximum bit: 504 (= 8 x 63). See JmJobStateReasonsTC on page 51 An agent only need return the most significant octet up to the least significant octet that contains a non-zero bit. If all bits are zero, the agent may return an OCTET STRING of zero length. Alternatively, an agent may always return a fixed number of octets starting with the most significant octet and running through the least significant octet that could ever have a one bit in it for that implementation. This object is a type 2 bit string. See Section 7 entitled 'IANA Considerations' on page and 35 Section 12 entitled 'Datatypes used in the Job Monitoring MIB' on page ." 40 ::= { jmJobEntry 9 } Bergman, Hastings, Isaacson, Lewis 91 [Page ] Job Monitoring MIB Mar 26, 1997 -- The Attribute Group (Mandatory) -- The jmAttributeGroup consists attributes of the job and -- document(s). Attribute may represent information about the job -- and document(s), such as file-names, document-names, submission- -- time, completion-time, size. Attributes may also represent -- requested and/or consumed resources for each job. Instead of -- allocating distinct objects for each attribute, each attribute -- item is represented as a separate row in the jmAttributeTable. -- -- Each column in the row describes the attribute, such as its type -- represented as an enum, and the value represented as (1) an -- integer or (2) an octet string (character coded text and binary -- octet strings, such as DateAndTime) or (3) both. -- -- Most attribute items shall have only one row per job. However, a -- few attribute items can have multiple values per job or even per -- document, where each value is a separate row in the -- jmAttributeTable. Unless indicated otherwise, an agent shall -- ensure that each attribute item occurs only once in the -- jmAttributeTable. Attribute items that may appear multiple times -- in the jmAttributeTable are indicated in their specification in -- the JmAttributeTypeTC (see page 64). However, such attribute -- items shall not contain duplicates for "intensive" (as opposed to -- "extensive") attributes. For example, each documentFormat(11) -- shall appear in the jmAttributeTable only once for a job since -- the interpreter language is an intensive attribute item, even though the job has a number of documents that all use the same -- PDL. As another example of an intensive attribute that can have -- multiple entries, if a document or job uses multiple types of -- media, there shall be only one row in the jmAttributeTable for -- each media type, not one row for each document that uses that -- medium type. On the other hand, if a job contains two documents -- -- of the same name, there can be separate rows for the -- documentName(4) attribute item with the same name, since a -- document name is an extensive attribute item. -- The jmAttributeGroup consists entirely of the jmAttributeTable -- -- which is indexed by (from most significant to least significant): -- -- -- jmJobSetIndex - a running index of Job Set instances 1. supported by this device or server. A job set is used in the -- -- MIB to represent the separation of jobs into disjoint sets -- for scheduling purposes in a server, typically into separate job queues. See -- Terminology and Job Model on page 11 for the -- definition of a job set. -- -- 2. -- jmJobIndex - the job identifier that was generated by the -- Bergman, Hastings, Isaacson, Lewis 92 [Page ] Job Monitoring MIB Mar 26, 1997 -- server or device that accepted the job. -- -- 3. jmAttributeTypeIndex - the enum that indicates the type of -- attribute. See JmAttributeTypeTC on page -- 64. -- -- 4. jmAttributeInstanceIndex - a running index of attributes of -- the same type for each job. For those attributes with only a -- -- single instance per job, this index value shall be 1. For those attributes that are a single value per document, the -- index value shall be the document number, starting with 1 for -- -- the first document in the job. Jobs with only a single -- document shall use the index value of 1. For those -- attributes that can have multiple values per job and per -- document, such as documentFormatIndex or documentFormatEnum, -- the index shall be a running index for the job as a whole, -- starting at 1. -- -- The jmAttributeTable is a per job table with an extra index for -- each type of attribute (jmAttributeTypeIndex) that a job can have -- and an additional index (jmAttributeInstanceIndex)for those -- attributes that can have multiple instances per job. The -- jmAttributeTypeIndex object shall contain an enum type that -- indicates the type of attribute. Some attribute types are used -- to represent a resources that is both requested and consumed as a single value, depending on the point in time, while other -- attributes have distinct types for requested versus consumed -- -- values. The agent is able to discover the attributes either from the job submission protocol itself or from the document PDL. As -- the documents are interpreted, the interpreter may discover -- -- additional attributes and so adds additional rows to this table. As the resources are actually consumed, the usage counter -- contained in the jmAttributeValueAsInteger object is incremented -- according to the units indicated in the description of the enum. -- See JmAttributeTypeTC on page -- 64. -- -- Some attributes are mandatory for conformance, and the rest are are conditionally mandatory, i.e., an agent shall implement an -- -- attribute if the device or server being instrumented has the -- feature with the semantics associated with the attribute. The mandatory attributes are: -- -- -- sheetsCompleted(32) -- However, a monitoring application shall accept all of the -- attributes from an agent and either display them to its user or ignore them. Implementation of every object in this group is mandatory. See Section entitled ' 4 Conformance Considerations' on page . 31 Bergman, Hastings, Isaacson, Lewis [Page 93] Job Monitoring MIB Mar 26, 1997 jmAttribute OBJECT IDENTIFIER ::= { jobmonmib 9 } jmAttributeTable OBJECT-TYPE SYNTAX SEQUENCE OF JmAttributeEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of attributes for each job in a job set. Attributes may represent information about the job and document(s) or resources required and/or consumed." ::= { jmAttribute 1 } jmAttributeEntry OBJECT-TYPE SYNTAX JmAttributeEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Attributes representing information about the job and document(s) or resources required and/or consumed. Zero or more entries shall exist in this table for each job in a job set. Each job shall appear in one and only one job set." INDEX { jmJobSetIndex, jmJobIndex, jmAttributeTypeIndex, jmAttributeInstanceIndex } ::= { jmAttributeTable 1 } JmAttributeEntry ::= SEQUENCE { jmAttributeTypeIndex JmAttributeTypeTC, -- See page 64 jmAttributeInstanceIndex Integer32(1..32767), jmAttributeValueAsInteger Integer32(0..2147483647), jmAttributeValueAsOctets OCTET STRING(SIZE(0..63)) } jmAttributeTypeIndex OBJECT-TYPE SYNTAX JmAttributeTypeTC -- See page 64 MAX-ACCESS not-accessible STATUS current DESCRIPTION "The type of attribute. The type may identify information about the job or document(s) or may identify a resource required to process the job before the job start processing and/or consumed by the job as the job is processed. Bergman, Hastings, Isaacson, Lewis [Page 94] Job Monitoring MIB Mar 26, 1997 Examples of job and document information include: jobCopiesRequested, documentCopiesRequested, jobCopiesCompleted, documentCopiesCompleted, fileName, and documentName. Examples of resources required and consumed include: jobKOctetsTotal, jobKOctetsCompleted, pagesRequested, pagesCompleted, mediumRequested, and mediumConsumed. See the JmAttributeTypeTC textual convention on page 64. In the definitions of the enums in the JmAttributeTypeTC textual convention, each description indicates whether the value of the attribute shall be represented using the jmAttributeValueAsInteger or the jmAttributeValueAsOctets objects by the initial tag: 'Integer:' or 'Octets:', respectively. A very few attributes use both objects (mediumConsumed)and so have both tags. If the jmAttributeValueAsInteger object is not used (no 'Integer:' tag), the agent shall return the value (-1) indicating other. If the jmAttributeValueAsOctets object is not used (no 'Octets:' tag), the agent shall return a zero-length octet string. This value is a type 2 enum." ::= { jmAttributeEntry 1 } jmAttributeInstanceIndex OBJECT-TYPE SYNTAX Integer32(1..32767) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A running 16-bit index of the attributes of the same type for each job. For those attributes with only a single instance per job, this index value shall be 1. For those attributes that are a single value per document, the index value shall be the document number, starting with 1 for the first document in the job. Jobs with only a single document shall use the index value of 1. For those attributes that can have multiple values per job and per document, such as documentFormatIndex or documentFormatEnum, the index shall be a running index for the job as a whole, starting at 1. Bergman, Hastings, Isaacson, Lewis [Page 95] Job Monitoring MIB Mar 26, 1997 Each job shall be identified by jmJobIndex value and each job shall be in one job set identified by jmJobSetIndex." ::= { jmAttributeEntry 2 } jmAttributeValueAsInteger OBJECT-TYPE SYNTAX Integer32(0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The integer value of the attribute. The value of the attribute shall be represented as an integer if the enum description JmAttributeTypeTC definition (see JmAttributeTypeTC on page 64) has the tag: 'Integer:'. Depending on the enum definition, this object value may be an integer, a counter, an index, or an enum, depending on the jmAttributeTypeIndex value. The units of this value are specified in the enum description. For those attributes that are accumulating job consumption as the job is processed as specified in the JmAttributeTypeTC, shall contain the final value after the job completes processing, i.e., this value shall indicate the total usage of this resource made by the job. A monitoring application is able to copy this value to a suitable longer term storage for later processing as part of an accounting system. Since the agent may add attributes representing resources to this table while the job is waiting to be processed or being processed, which can be a long time before any of the resources are actually used, the agent shall set the value of the jmAttributeValueAsInteger object to 0 for resources that the job has not yet consumed. Attributes for which the concept of an integer value is meaningless, such as fileName, interpreter, and physicalDevice, do not have the 'Integer:' tag in the JmAttributeTypeTC definition and so shall return a value of (-1) to indicate other for jmAttributeValueAsInteger." ::= { jmAttributeEntry 3 } jmAttributeValueAsOctets OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..63)) Bergman, Hastings, Isaacson, Lewis [Page 96] Job Monitoring MIB Mar 26, 1997 MAX-ACCESS read-only STATUS current DESCRIPTION "The octet string value of the attribute. The value of the attribute shall be represented as an OCTET STRING if the enum description JmAttributeTypeTC definition (see JmAttributeTypeTC on page ) has 64 the tag: 'Octets:'. Depending on the enum definition, this object value may be a coded character set string (text) or a binary octet string, such as DateAndTime. Attributes for which the concept of an octet string value is meaningless, such as pagesCompleted, do not have the tag 'Octets:' in the JmAttributeTypeTC definition and so shall return a value of a zero length string for jmAttributeValueAsOctets." ::= { jmAttributeEntry 4 } Bergman, Hastings, Isaacson, Lewis [Page 97] Job Monitoring MIB Mar 26, 1997 -- Conformance Information jmMIBConformance OBJECT IDENTIFIER ::= { jobmonmib 2 } -- compliance statements jmMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for agents that implement the job monitoring MIB." MODULE -- this module MANDATORY-GROUPS { jmGeneralGroup, jmCompletedGroup, jmJobGroup, jmAttributeGroup } OBJECT jmJobCurrentState SYNTAX INTEGER { processing(7), needsAttention(9), completed(17) } DESCRIPTION "It is conformant for an agent to implement just these three job states in this object, and the rest are are conditionally mandatory, i.e., an agent shall implement a job state if the device or server being instrumented has the job state with the semantics associated with the state. However, a monitoring application shall accept all of the job states from an agent." OBJECT jmAttributeTypeIndex SYNTAX INTEGER { sheetsCompleted(32) } DESCRIPTION "It is conformant for an agent to implement just the sheetsCompleted(32) attribute. All other attributes are conditionally mandatory, i.e., an agent shall implement an attribute if the device or server being instrumented has the feature with the semantics associated with the attribute. However, a monitoring application shall accept all of the attributes from an agent and either display them to its user or ignore them." -- the jmQueueGroup is conditionally mandatory. An agent shall implement the jmQueueGroup if the server or device that the agent -- -- instruments performs queuing. ::= { jmMIBConformance 1 } Bergman, Hastings, Isaacson, Lewis [Page 98] Job Monitoring MIB Mar 26, 1997 jmMIBGroups OBJECT IDENTIFIER ::= { jmMIBConformance 2 } jmGeneralGroup OBJECT-GROUP OBJECTS { jmGeneralJobSetName, jmGeneralJobCompletedPolicy, jmGeneralMaxNumberOfJobs, jmGeneralNumberOfJobsToComplete, jmGeneralNumberOfJobsCompleted } STATUS current DESCRIPTION "The general group." ::= { jmMIBGroups 1 } jmQueueGroup OBJECT-GROUP OBJECTS { jmQueueJobIndex, jmQueueNumberOfInterveningJobs, jmJobPriority, jmJobProcessAfterDateAndTime } STATUS current DESCRIPTION "The queue group - conditionally mandatory." ::= { jmMIBGroups 2 } jmCompletedGroup OBJECT-GROUP OBJECTS { jmCompletedJobIndex } STATUS current DESCRIPTION "The completed group." ::= { jmMIBGroups 3 } jmJobGroup OBJECT-GROUP OBJECTS { jmJobName, jmJobIdName, jmJobIdNumber, jmJobServiceTypes, jmJobOwner, jmJobDeviceNameOrQueueRequested, jmJobCurrentState, jmJobStateReasons } STATUS current DESCRIPTION "The job group." ::= { jmMIBGroups 4 } jmAttributeGroup OBJECT-GROUP OBJECTS { jmAttributeValueAsInteger, jmAttributeValueAsOctets } STATUS current DESCRIPTION "The attribute group." ::= { jmMIBGroups 5 } Bergman, Hastings, Isaacson, Lewis 99 [Page ] Job Monitoring MIB Mar 26, 1997 END Bergman, Hastings, Isaacson, Lewis [Page 100] Job Monitoring MIB Mar 26, 1997 Appendix A - Mapping Of Job Submission Protocols To The Job Monitoring MIB Objects and Attributes This appendix specifies the mapping of the input parameters of popular job submission protocols to the objects and attributes of the Job Monitoring MIB. Appendix A - Mapping Of Job Submission Protocols To The 14. Job Monitoring MIB Objects and Attributes So far, this Appendix only has a few input parameters and only has ISO DPA. More input parameters will be added and more job submission protocols. The protocol list should include: ISO DPA, Apple PAP, IPDS, LPR/LPD, NDPS, PJL, PostScript(tm), PSERVER, SMB, and IEEE 1284.1 (TIPSI). The Internet Printing Protocol (IPP) under development will be included as well. Summary: the jmJobIndex is an Integer32(0..2147483647) data type and represents the job identifier attribute assigned by the server or device when the job is accepted by the server or device. The submitting user and client have no control over the value assigned by the server or device. The jmJobIdName and jmJobIdNumber are "client-side" identifiers that the submitting client specifies or is assigned by a downstream server on behalf of the client. The jmJobIdName is an alphanumeric OCTET STRING(SIZE(0..63)) one- or two- octet coded character set data type. The jmJobIdNumber is an Integer32(0..2147483647) data type. 1 - Table 14 - Mapping of Job Submission Protocol Job Ids to the Corresponding MIB objects Job jmJobIndex data jmJobIdNam jmJobIdNum data data Submission equiv. type e equiv. type ber type Protocol attribute attribute ISO DPA job- ASCII(SIjob- N/A OCTET identifier ZE(0..40client-id STRING(S Bergman, Hastings, Isaacson, Lewis 101 [Page ] Job Monitoring MIB Mar 26, 1997 Job jmJobIndex data jmJobIdNamdata jmJobIdNumdata Submission equiv. type e equiv. ber type type Protocol attribute attribute 95)) IZE(0..4 095)) LPD TBD... Bergman, Hastings, Isaacson, Lewis 102 [Page ] Job Monitoring MIB Mar 26, 1997 Appendix B - Comparison with ISO DPA The ISO DPA attribute specifications have been moved from the JMP object specifications to this appendix for reference. The corresponding JMP object is indicated in the first column. If the second column is empty, there is no corresponding ISO DPA attribute. 15. Appendix B - Comparison with ISO DPA The order of the groups is the same as the specification. 15.1 The General Group - comparison with ISO DPA jmGeneralGroup (G) Corresponding ISO DPA specification 1. jmJobSetIndex - a The client can get a list of jobs that are running index of Job competing for a logical or physical Set instances printer that the client specifies as an supported by this input parameter. device or server. 2. jmGeneralJobSetName The logical printer or physical printer - The human readable name. administratively assigned name of this job set. Typically, this name will be the name of the job queue. Bergman, Hastings, Isaacson, Lewis 103 [Page ] Job Monitoring MIB Mar 26, 1997 jmGeneralGroup (G) Corresponding ISO DPA specification 3. jmGeneralJobComplete dPolicy -the time in seconds that jobs are kept in the jmJobTable and the jmCompletedTable after processing. jmGeneralMaxNumberOf 4. - the maximum Jobs number of job; -1 means no limit. jmGeneralNumberOfJob 5. sToComplete - the total number of jobs currently in the Job Table that are to be completed. 6. jmGeneralNumberOfJob sCompleted - the total number of jobs currently in the Job Table that are completed. Bergman, Hastings, Isaacson, Lewis 104 [Page ] Job Monitoring MIB Mar 26, 1997 15.2 The Queue Group - comparison with ISO DPA jmQueueGroup (Q) Corresponding ISO DPA specification jmQueueIndex 1. - a running index of the jobs that have not finished processing. jmQueueJobIndex 2. Job-identifier - the job's identifier generated by the device or server See below. implementing this Job Monitoring MIB jmQueueNumberOfInter 3. Intervening-jobs veningJobs - the number of jobs in front of this job This attribute indicates the number of other jobs to be printed before this job may be scheduled for printing. The server shall set the value of this attribute to 0 when the job begins printing. Bergman, Hastings, Isaacson, Lewis 105 [Page ] Job Monitoring MIB Mar 26, 1997 jmQueueGroup (Q) Corresponding ISO DPA specification 4. jmJobPriority - Job Job-priority priority This attribute specifies a priority for scheduling the print-job. It is used by servers that employ a priority-based scheduling algorithm. A higher value specifies a higher priority. The value 1 is defined to indicate the lowest possible priority (a job which a priority-based scheduling algorithm shall pass over in favor of higher priority jobs). The value 100 is defined to indicate the highest possible priority. Priority is expected to be evenly or 'normally' distributed across this range. The mapping of vendor-defined priority over this range is implementation-specific. The omission of this attribute implies that the user places no constraints concerning priority on the scheduling of the print-job. Bergman, Hastings, Isaacson, Lewis 106 [Page ] Job Monitoring MIB Mar 26, 1997 jmQueueGroup (Q) Corresponding ISO DPA specification 5. jmJobProcessAfterDat Job-print-after eAndTime - The date and time after which the job shall become This attribute specifies the calendar date a candidate for and time of day after which the print-job processing. shall become a candidate to be scheduled for printing. If the value of this attribute is in the future, the server shall set the value of the job's current-job-state to held and add the job-print-after-specified value to the job's job-state-reasons attribute and shall not schedule the print-job for printing until the specified date and time has passed. When the specified date and time arrives, the server shall remove the job-print-after-specified value from the job's job-state-reason attribute and, if no other reasons remain, shall change the job's current-job-state to pending so that the job becomes a candidate for being scheduled on printer(s). The server shall assign an empty value (see 9.1.2) to the job-print-after attribute when no print after time has been assigned, so that the job shall be a candidate for scheduling immediately. Bergman, Hastings, Isaacson, Lewis 107 [Page ] Job Monitoring MIB Mar 26, 1997 15.3 The Completed Group - comparison with ISO DPA jmCompletedGroup (C) Corresponding ISO DPA specification jmCompletedIndex 1. - a running index of the jobs that have finished processing. jmCompletedJobIndex 2. Job-identifier - the job's identifier generated by the device or See below. server implementing this Job Monitoring MIB Bergman, Hastings, Isaacson, Lewis 108 [Page ] Job Monitoring MIB Mar 26, 1997 15.4 The Job Group - comparison with ISO DPA jmJobGroup - Corresponding ISO DPA specification Identification (I) 1. jmJobIndex - the Job-identifier job's identifier generated by the server or device This attribute provides the job-identifier implementing this for this job on the server. The server Job Monitoring MIB shall generate a job-identifier value that is unique on that server, but need not be unique across the distributed environment. The value of the job-identifier attribute shall be returned by the server as part of the PrintResult in the first Print operation for the job (see 8.2.1). The client shall pass its value as part of the PrintArgument in subsequent Print operations for the same job. Bergman, Hastings, Isaacson, Lewis [Page 109] Job Monitoring MIB Mar 26, 1997 jmJobGroup - Corresponding ISO DPA specification Identification (I) jmJobName 2. - Job name Job-name (assigned by job owner) which is not necessarily unique. This attribute supplies a human readable string for the print-job. This string is used for naming the print-job in human- readable "free-form" fashion. This attribute is intended for enabling a user or the user's application to convey a job name that may be printed on a start sheet, returned in a ListObjectAttributes result, or used in notification or logging messages. If this attribute is not specified, no job name is assumed, but implementation specific defaults are allowed, such as the value of the document-name attribute of the first document in the job. Bergman, Hastings, Isaacson, Lewis 110 [Page ] Job Monitoring MIB Mar 26, 1997 jmJobGroup - Corresponding ISO DPA specification Identification (I) jmJobIdName 3. - the Job-client-id job's identifier name generated by the job submitting This attribute supplies a human-readable software using the descriptor for the job. This descriptor job submission may be printed by the server on auxiliary protocol. This name sheets to help identify the user's printed can be anything that output, and discriminate between different helps identifier the jobs. job to the job submitter, including the name of the Use and treatment of this attribute is queue from which the implementation and site specific. job was submitted. If the client specifies the value of the job attribute job-client-id, no server shall change it. If the client does not specify the value of the job attribute job-client-id, the first server shall set it to the value of the job attribute job- identifier, so that no downstream server shall change it. These rules ensure that if an implementation prints the value of the job-client-id on an auxiliary sheet, it has a value that is meaningful to the client originally submitting the job, no matter how many servers the job passes through. For example, client A submits a job to server B and does not specify a value for the job attribute job-client-id. Server B assigns a job-identifier of 123 to the job, and forwards this job to server C. Server C assigns a job-identifier of 456 to the job and forwards this job to printer D. Printer D is not a DPA server, but it has its own queue and assigns a job-id of 789 to the job. The following table shows the value of the relevant job attributes in the two servers B and C: Bergman, Hastings, Isaacson, Lewis 111 [Page ] Job Monitoring MIB Mar 26, 1997 jmJobGroup - Corresponding ISO DPA specification Identification (I) jmJobIdNumber 4. - the job's identifier number generated by the job submitting software using the job submission protocol. A (-2) value shall indicate that the submitter did not supply a job identifier number. 5. jmJobServiceTypes - Job types (print, fax, scan, etc.) - bit vector to get multiple values in a single object Bergman, Hastings, Isaacson, Lewis [Page 112] Job Monitoring MIB Mar 26, 1997 jmJobGroup - Corresponding ISO DPA specification Identification (I) jmJobOwner 6. - Job Job-owner owner (User name of the user that originally submitted This attribute supplies the name of the the job) human owner of the print-job, i.e., the name of the user who submitted the job originally, not the user who most recently (re)submitted the job. The value of job-owner will often be the same as job-originator. The job-owner will be different from job-originator when the job has been submitted by the originator on behalf of the owner. This attribute is not to take the place of the security parameters or the access-and-accounting attributes. If this attribute is not specified, the value of user-name or job-originator should be used for any circumstances which require a value for job-owner. Bergman, Hastings, Isaacson, Lewis [Page 113] Job Monitoring MIB Mar 26, 1997 jmJobGroup - Corresponding ISO DPA specification Identification (I) jmJobDeviceNameOrQue 7. Printer-name-requested ueRequested - Device name (Device- specific name of This attribute identifies the printer to device) or queue be used for printing the job. The client requested by the shall specify the value of this attribute submitting user. with the first invocation of the Print operation for the print-job as the explicit printer-name component of the PrintArgument, rather than as an attribute (see 8.2.1.1). NOTES To cause a server to select a printer according to other attributes, the system administrator should define a logical printer that supports ALL of the physical printers supported by the server. For the server that supports only a single printer, the logical printer name may be the same as the server name, as long as they cannot be confused for each other in the name service directory. Initial-value-job objects should have the value of their printer-name-requested attribute specified as an empty value in order to indicate that no printer-name is defaulted. Bergman, Hastings, Isaacson, Lewis [Page 114] Job Monitoring MIB Mar 26, 1997 Corresponding ISO DPA specification jmJobGroup - Status (S) 8. jmJobCurrentState Current-job-state - Job state (pending, processing, completed, etc.) This attribute identifies the current state of the job (pending, printing, held, etc.) The following job state standard values are defined: Descripti Descriptor Text ve Name unknown unknown The job state is not known, or is indeterminate. Bergman, Hastings, Isaacson, Lewis [Page 115] Job Monitoring MIB Mar 26, 1997 Descripti Descriptor Text ve Name preProcessing pre- The job has been created on the processin server by the create-job sub- g operation of the print-request, but a print-request with a TRUE value for the job-submission- complete component of the PrintArgument has not yet been received and no document has started processing. The job maybe in the process of being checked by the server for attributes, defaults being applied, a printer being selected, etc. held held The job is waiting to be released for scheduling for any number of reasons as specified by the value of the job's job- state-reasons attribute. pending pending The job's job-submission- complete attribute is TRUE since the server has received a print- request with the job-submission- complete parameter TRUE and the job is waiting to start processing on a printer. Bergman, Hastings, Isaacson, Lewis [Page 116] Job Monitoring MIB Mar 26, 1997 Descripti Descriptor Text ve Name processing processin The server is processing the g job, or has made the job ready for printing, but the output device is not yet printing it, either because the job hasn't reached the output device or because the job is queued in the output device or some other spooler, awaiting the output device to print it. needsAttention processin The printer-states-of-printers- g assigned job attribute indicates the state of the printer, such as needs-attention. paused paused The job has been paused as a result of a PauseJob operation. interrupted interrupt The job was interrupted by the ed InterruptJob request for an intervening job, and shall resume processing automatically once the intervening job has completed. terminating terminati The job has been cancelled by a ng CancelJob request or aborted by the server and is in the process of terminating. The job's job- state-reasons attribute contains the reasons that the job is being terminated. Bergman, Hastings, Isaacson, Lewis 117 [Page ] Job Monitoring MIB Mar 26, 1997 Descripti Descriptor Text ve Name retained retained The job is being retained at the server as a result of the job's job-retention-period being non- zero. The job has (1) completed successfully or with warnings or errors, (2) been aborted while printing by the server, or (3) been cancelled by the CancelJob request before or during processing. The job's job- state-reasons attribute contains the reasons that the job has been retained. While in the retained state, all of the job's document data (and resources, if any) shall be retained by the server; thus a job in the retained state could be reprinted, using some means outside the scope of ISO\IEC 10175-Part 1. Bergman, Hastings, Isaacson, Lewis 118 [Page ] Job Monitoring MIB Mar 26, 1997 Descripti Descriptor Text ve Name completed completed The job has: (1) completed successfully or with warnings or errors, (2) been aborted by the server while printing, or (3) been cancelled by the CancelJob request, AND the job's: (1) job-retention-period was zero or has expired, or (2) job-discard-time has arrived. The job's job-state-reasons attribute contains the reason(s) that the job has been completed. While in the completed state, a job's document data (and resources if any) need not be retained by the server; thus a job in the completed state could not be reprinted. The length of time that a job may be in this state, before transitioning to unknown, is implementation- dependent. However, servers that implement the completed job-state shall retain, as a minimum, the following attributes for any job in the Bergman, Hastings, Isaacson, Lewis completed state: job-identifier, [Page 119] job-owner, job-name, current- job-state, printers-assigned, and job-state-reasons. Print clients and DP-Servers shall be prepared to receive all Job Monitoring MIB Mar 26, 1997 Descripti Descriptor Text ve Name jmJobStateReasons 9. - Job-state-reasons Job state reasons - additional information about the This attribute identifies the reason or job state: reasons reasons that the job is in the held, being held, terminating, retained, or completed state. additional completed The server shall indicate the particular information such as reason(s) by setting the value of the job- successful, warnings, state-reasons attribute. When the job is or errors. not in any of these states, the server shall set the value of the job-state- reasons attribute to the empty set. The following [DPA] standard values are defined: documents-needed, job-hold-set, job-print-after-specified, required- resources-not-ready, successful completion, completed-with-warnings, completed-with-errors, cancelled-by-user, cancelled-by-operator, aborted-by-system, logfile-pending , and logfile- transferring. Bergman, Hastings, Isaacson, Lewis 120 [Page ] Job Monitoring MIB Mar 26, 1997 15.5 The Attribute Group - comparison with ISO DPA jmAttributeGroup (R) Corresponding ISO DPA specification jmAttributeTypeIndex 1. Corresponds to the attribute-type OID that - identifies which identifies each attribute in ISO DPA. attribute is being represented by this row: other(1) - not one of the following fileName(3) - file name Document-file-name of the document. This attribute specifies the file name of the document, if the document came from a file. The file name may include the full path to the file, in which case the name-syntax element of the DistinguishedNameString data type shall specify the syntax of the file name. If the document did not come from a file, the client should not specify this attribute. Bergman, Hastings, Isaacson, Lewis [Page 121] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification documentName(4) - Document-name Document name (defaults from the file-name) This attribute supplies a human readable string for the document. This string is used for naming the document in a human- readable "free-form" fashion. This attribute is intended for enabling a user or the user's application to convey a document name that may be printed on a start sheet, returned in a ListObjectAttributes result, or used in notification or logging messages. If this attribute is not specified, no document name is assumed, but implementation specific defaults are allowed, such as the simple-name part of the value of the document-file-name attribute. It is suggested, however, that the server not supply additional text for this attribute when printing its value (e.g. on a start sheet). This string only has meaning to the clients and can therefore take several forms, e.g. the name of a mail folder, name of a revisable document, the file specification minus the file path, the title of a document, etc. Bergman, Hastings, Isaacson, Lewis 122 [Page ] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification jobAccountName(5) - name Accounting-information of the account to which the job shall be charged. This attribute specifies information required by accounting services (e.g. the account to be charged for any services rendered). Accounting information is intended to be interpreted by an accounting system, and may be opaque to the print service. jobComment(6) - free Job-comment form comment. This attribute supplies an arbitrary human-readable text string associated with the print-job. This attribute is intended for enabling a user to convey a text string that may be printed on a job start sheet, for example, in an implementation-dependent manner. processingMessage(7) - current job status and any problems as a human readable message. Bergman, Hastings, Isaacson, Lewis [Page 123] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification jobSourceChannelIndex(8) - index in Printer MIB of the job source channel. Bergman, Hastings, Isaacson, Lewis [Page 124] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification outputBinIndex(9) - results-profile.output-bin index in the Printer MIB of the output bin(s) that this job is using. The output-bin element specifies the output receptacle for the media on which the job-result-set is to be printed. The NameOrOid type provides two choice types for use in system implementations that (1) use a simple-named bin identification and (2) for those that use named bins that are identified with object identifiers. The output-bin element specifies the output receptacle for the media on which the job-result-set is to be printed. The NameOrOid type provides two choice types for use in system implementations that (1) use a simple-named bin identification (which may consist of a simple-name or solely of numeric digits for numbered bins, including leading 0 digits), and (2) for those that use named bins that are identified with object identifiers. The correspondence between the integer name of an output-bin and the actual output-bin in the printer is printer- dependent, and an output-bin named by a simple-name may also have an object identifier that names the output-bin as well. A server may try to convert a simple-name received from a client to one of the server's OIDs, depending on implementation. However, a server shall always return an output-bin as an OID to the client if the server identifies the output-bin using an OID. Bergman, Hastings, Isaacson, Lewis [Page 125] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification outputBinName(10) - name results-profile.output-bin of the output bin(s) that the job is using. See above. sides(11) - Number of Sides sides requested (one- sided, two-sided) This attribute specifies the number of printable surfaces of the medium to be imaged. Bergman, Hastings, Isaacson, Lewis 126 [Page ] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification documentFormatIndex(12) Document-format - the index in the Printer MIB of the interpreter(s) that the This attribute identifies the overall job requires/uses. print document format used for the document. It consists of three elements, a document-format, a document-format- variants and a document-format-version. The latter two elements are optional. The document-format element identifies a particular family of document formats, of which there may exist several versions or variants. The document-format-variants and document-format-version elements identify a specific instance of a document format. The variant refers to a particular functional subset of a format. For example, the format PostScript has variants of level 1 and level 2, and the format PCL has several variants, including PCL4 and PCL5. The version distinguishes among successive releases of the same basic format and variant. For example, successive versions of Xerox Interpress include versions 2.0, 2.1, 3.0, 3.1, etc. Put in a separate table so can have multiple values, one for each document. documentFormatEnum(13) - document-format the enum identifying the interpreter(s) that the job requires/uses. See above. Bergman, Hastings, Isaacson, Lewis [Page 127] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification physicalDevice(14) - printers-assigned physical devices used This attribute identifies the physical printer or printers to which this job has been assigned, if any. When the job is first submitted and the server has not yet assigned any printers to the job, the SEQUENCE shall be empty. If the server intends to use a single printer for the job, and the server has assigned a printer to the job, the SEQUENCE shall contain just that printer. If a server has split the job into multiple pieces and assigned each piece to a different printer, the SEQUENCE shall contain n elements, one for each assigned printer. A job with multiple job-result- sets is an example of a job that would be easy to split into multiple pieces. printers-assigned ATTRIBUTE WITH ATTRIBUTE-SYNTAX distinguishedNameStringSequenceSyntax SINGLE VALUE ::= id-att-printers-assigned A SEQUENCE with no elements shall be returned if this attribute is supported, but this job has not yet been assigned to any physical printers. The number of elements in the SEQUENCE for this attribute shall be the same as the number of elements in the SEQUENCE for the Bergman, Hastings, Isaacson, Lewis associated job attribute printer-state-of- [Page 128] printers-assigned. In addition, the ith element of the value of printer-state-of-printers-assigned shall be the state of the printer named by the ith element of printers-assigned. Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification physicalDeviceName(15) - printers-assigned the physical device name(s) used or being used by the job. See above. jobCopiesRequested(16) - job-copies Number of job copies requested Total number of job copies in the job, i.e., number of job copies summed across the job-result-sets. Whether job copies are collated or not depends on implementation. NOTE - In ISO DPA, job-copies is a separate value for each job result set, not the summation. But it didn't seem worth the effort to make job-copies a table for the MIB. Bergman, Hastings, Isaacson, Lewis [Page 129] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification jobCopiesCompleted(17) - total-job-copies Number of job copies produced Total number of job copies in the job, i.e., number of job copies summed across the job-result-sets. Whether job copies are collated or not depends on implementation. NOTE - In ISO DPA, job-copies is a separate value for each job result set, not the summation. But it didn't seem worth the effort to make job-copies a table for the MIB. documentCopiesRequested( copy-count 18) This attribute specifies the number of - Number of document copies of the documents, or of the copies requested selected pages of the document, to be printed. In ISO DPA, there is a copy-count attribute for each document in the job. The proposal here is to have a single per- job count of the number of copies of documents, in order to avoid a per- document table. Bergman, Hastings, Isaacson, Lewis [Page 130] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification documentCopiesCompleted( copies-completed 19) In ISO DPA, there is a copy-count - Number of document attribute for each document in the job. copies completed The proposal here is to have a single per- job count of the number of copies of documents, in order to avoid a per- document table. Bergman, Hastings, Isaacson, Lewis [Page 131] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification jobKOctetsTotal (20) total-job-octets - total K octets to be processed in the job - rounded up to next This attribute indicates the size of the higher K (1024) job in octets, including document and job copies. total-job-octets ATTRIBUTE WITH ATTRIBUTE-SYNTAX cardinal64Syntax SINGLE VALUE ::= id-att-total-job-octets The server may update the value of this attribute after each document has been transferred to the server or the server may provide this value after all documents have been transferred to the server, depending on implementation. In other words, while the job is in the pre- processing state and when the job is in the held state with the job-state-reasons containing a document-needed value, the value of the total-job-octets job status attribute depends on implementation and may not correctly reflect the size of the job. In computing this value, the server shall include the multiplicative factors contributed by the (1) copy-count document attribute, (2) the results-profile.job- copies job attribute element and (3) multiple values of the results-profile job attribute, independent of whether the printer can process multiple copies of the job or document without making multiple passes over the job or document data and independent of the value of the output document attribute (page-collate vs. no- page-collate). Thus the server Bergman, Hastings, Isaacson, Lewis computation is independent of the printer [Page 132] implementation and shall be: Document contribution: Multiply each copy-count by the size of the document in octets. Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification jobKOctetsCompleted(21) Octets-completed - K octets completed - rounded up to nearest K (1024). This attribute indicates the number of octets of the job that the printer(s) have completed printing. The server shall not reset its value during the processing of multiple copies of documents or the job. Since this attribute is intended to measure the progress of a job, the value shall include repeated pages due to multiple copies. The accuracy of this value is implementation-dependent. It may be approximated by the number of octets conveyed to the printer. This attribute may not be supported for all printers and all page description languages. The value of this attribute shall be 0 if printing has not started for this job. impressionsSpooled(22) - impressions spooled for the job. impressionsSentToDevice( 23) - impressions sent to the device for the job. Bergman, Hastings, Isaacson, Lewis 133 [Page ] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification impressionsInterpreted(2 4) - impressions interpreted for the job. Bergman, Hastings, Isaacson, Lewis 134 [Page ] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification impressionsRequested(25) job-impression-count - impressions completed This attribute contains the number of impressions that the server expects the printer to make. The server shall compute this value by the following procedure: a) For each document in the job object, multiply the value of document's page- count attribute by the value of its copy- count attribute. Then divide the result by the value of number-up (if non-zero) and make into an integer using the ceiling operator. Call the result document-set- impression-count. NOTE The number-up attribute may contain - a number or an OID. For the OID case, the server either knows implicitly what number is associated with the OID or it must query the number-up object for its imposition-n-up attribute. In the case where the server cannot obtain the value, it should assume the value of number-up is 1. Add up all the document-set- b) impression-counts from the previous step and call this sum the job-copy-impression- count. c) For each job-result-set, multiply the value of job-copy-impression-count from the previous step by the value of job- copies element of the job-result-set and call the result job-result-set-impression- count. Bergman, Hastings, Isaacson, Lewis d) Add up all the job-result-set- 135 [Page ] impression-counts from the previous step and set this sum into the job-impression- count attribute. The value of this attribute is a measure of the amount of time the job will take to Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification impressionsCompleted(26) impressions-completed - impressions completed for the job. This attribute indicates the number of impressions that the printer engine(s) have placed on the media for the job. See the note in the pages-completed attribute for the relationship of the pages- completed, impressions-completed and media-sheets-completed attributes. The server shall not reset its value during the processing of multiple copies of documents or the job. Since this attribute is intended to measure the progress of a job, the value shall include repeated pages due to multiple copies. When the job completes, this attribute should contain the value of the total number of impressions that the printer made for the print-job. The accuracy of this value is implementation-dependent. It is expected that the value reported is never greater than the actual value. This attribute may not be supported for all printers and all page description languages. The value of this attribute shall be 0 if printing has not started for this job. Bergman, Hastings, Isaacson, Lewis [Page 136] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification impressionsCompletedCurr entCopy(27) - impressions completed on the current copy. Bergman, Hastings, Isaacson, Lewis [Page 137] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification pagesRequested(28) - job-page-count logical pages requested to be processed This attribute contains the number of source pages in the job that the server expects to image. The server shall compute this value by the following procedure: a) For each document in the job object, multiply the value of document's page- count attribute by the value of its copy- count attribute and call the result document-set-page-count. Add up all the document-set-page- b) counts from the previous step and call this sum the job-copy-page-count. For each job-result-set, multiply the c) value of job-copy-page-count from the previous step by the value of job-copies element of the job-result-set and call the result job-result-set-page-count. d) Add up all the job-result-set-page- counts from the previous step and set this sum into the job-page-count attribute. The value of this attribute is a measure of the amount of computation involved. The accuracy of this value is dependent on the accuracy of the page-count attribute in each document. If some documents have a page-count value of 0, the server may set the value of this attribute to 0 and not use it for scheduling. Bergman, Hastings, Isaacson, Lewis 138 [Page ] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification pagesCompleted(29) - pages-completed logical pages completed for the job. This attribute indicates the number of pages of the job that the printer(s) have completed printing. NOTE - The number of source pages, impressions and sheets of media may differ. The following examples illustrate how they may differ when attributes, rather than the document contents, control the printing. If number-up is 0 or 1, there is one source page per impression, and if number-up is 2, there are two source pages per impression. If sides is 1, there is one impression per sheet of media, but if sides is 2, there are two impressions per sheet of media. By inference, if number-up is 4 and sides is 2, there are 4 source pages per impression and 8 source pages per sheet of media. The server shall not reset its value during the processing of multiple copies of documents or the job. Since this attribute is intended to measure the progress of a job, the value shall include repeated pages due to multiple copies. When the job completes, this attribute should contain the value of the total number of source pages that the printer processed for the print-job. The accuracy of this value is implementation-dependent. It is expected that the value reported is never greater than the actual value. This attribute may not be supported for all printers and all page description languages. Bergman, Hastings, Isaacson, Lewis [Page 139] The value of this attribute shall be 0 if printing has not started for this job. Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification pagesCompletedCurrentCop y(30) - logical pages completed on the current copy. Bergman, Hastings, Isaacson, Lewis [Page 140] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification sheetsRequested(31) - job-media-sheet-count sheets requested to be processed. This attribute contains the number of sheets of media that the server expects to consume for the job. The server shall compute this value by the following procedure: For each document in the job object, a) multiply the value of document's page- count attribute by the value of its copy- count attribute. Then divide the result by the value of number-up (if non-zero) and make into an integer using the ceiling operator. Then, if sides is 2, divide the result by 2 and round. Call the result document-set-media-sheet-count. NOTE See the note on number-up in the - job-impression-count attribute. b) Add up all the document-set-media- sheet-counts from the previous step and call this sum the job-copy-media-sheet- count. c) For each job-result-set, multiply the value of job-copy-media-sheet-count from the previous step by the value of job- copies element of the job-result-set and call the result job-result-set-media- sheet-count. d) Add up all the job-result-set-media- sheet-counts from the previous step and set this sum into the job-media-sheet- count attribute. Bergman, Hastings, Isaacson, Lewis 141 [Page ] The value of this attribute is a measure of the total number of sheets of media that will be consumed and it is a good measure of the amount of time the job will take to print on printers with two print engines, one for each side of the media. Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification sheetsCompleted(32) - This attribute indicates the number of sheets completed for the sheets of media that the printer(s) have job. completed printing for the job. See the note in the pages-completed attribute for the relationship of the pages-completed, impressions-completed and media-sheets- completed attributes. The server shall not reset its value during the processing of multiple copies of documents or the job. Since this attribute is intended to measure the progress of a job, the value shall include repeated pages due to multiple copies. When the job completes, this attribute should contain the value of the total number of sheets of media used for the print-job. The accuracy of this value is implementation-dependent. It is expected that the value reported is never greater than the actual value. This attribute may not be supported for all printers and all page description languages. The value of this attribute shall be 0 if printing has not started for this job. sheetsCompletedCurrentCo py(33) - sheets completed on the current copy. Bergman, Hastings, Isaacson, Lewis [Page 142] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification mediumRequested(34) - the medium(a) requested for this job, kind and number. mediumConsumed(35) - the medium(a) consumed for this job, kind and number. colorantRequestedIndex(3 6) colorantRequestedName(37 ) colorantConsumedIndex(38 ) colorantConsumedName(39) jobSubmissionDateAndTime Submission-time (40) This attribute indicates the time at which the latest print request for this job was accepted by the server. Bergman, Hastings, Isaacson, Lewis [Page 143] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification jobSubmissionTimeStamp(4 Submission-time 1) See above. jobStartedProcessingDate started-printing-time AndTime(42) This attribute indicates the time at which this job started printing. jobStartedProcessingTime started-printing-time Stamp(43) See above. jobCompletedDateAndTime( completion-time 44) This attribute indicates the time at which this job completed. Providing this time is useful for jobs which are retained after printing. jobCompletedTimeStamp(45 completion-time ) See above. Bergman, Hastings, Isaacson, Lewis 144 [Page ] Job Monitoring MIB Mar 26, 1997 jmAttributeGroup (R) Corresponding ISO DPA specification processingCPUTime(46) - processing-time Processing time so far, not counting needs attention time. This attribute indicates how long an individual job has been processing [in seconds]. 2. jmAttributeInstanceIn ISO DPA has multi-valued job attributes dex- attribute and as per-document attributes. instance index for the job as a whole or document number if an attribute is per- document. jmAttributeValueAsInt 3. - attribute value eger as an integer. 4. jmAttributeValueAsOct - attribute value ets as an OCTET STRING for coded characters (text) or binary bit strings or binary octet strings. Bergman, Hastings, Isaacson, Lewis 145 [Page ] Job Monitoring MIB Mar 26, 1997 16. APPENDIX C - Comparison of Job Submission Protocols to JMP Objects The JMP objects and attributes are divided into the following categories: Job Identification (I) 1. Job Parameters (P) 2. 3. Job Status and Accounting (S) The following table lists each JMP object and attribute and indicates in each column whether there is a corresponding input parameter in the indicated job submission protocol. The first column contains the MIB name followed by a descriptive name for the object. The Conf. column specifies the conformance: means Mandatory for conformance to this MIB M specification means Conditional Mandatory (for spooling systems, CM and systems with day and time clocks, etc.). The Cardinality columns contains: meaning there is only one of these objects per job, 1 so that the object can be in a table that is indexed by jmJobSetIndex and jmJobIndex. n meaning that there may be more than one of these objects per job, so that that the object must be in another table that in indexed by jmJobSetIndex, jmJobIndex, and jmAttributeInstanceIndex Bergman, Hastings, Isaacson, Lewis [Page 147] Job Monitoring MIB Mar 26, 1997 Job Identification (I) Conf ISO Card Appl LPR IPD PJL NDPS TIPS SMB PSER DPA inal orma /LP e S I VER ity nce D PAP jmQueueNumberOfInterveningJobs - the number of jobs in front of this job jmJobPriority - Job priority: 1 x CM x x 1 to 100. jmJobProcessAfterDateAndTime -CM x 1 date and time after which the job becomes a candidate for processing jmJobIndex - Job current id x 1 M x x x x x generated by the server implementing this Job Monitoring MIB when the job was submitted) jmJobName - Job name assigned M 1 x x x x x by job owner which is not necessarily unique. Bergman, Hastings, Isaacson, Lewis 148 [Page ] Job Monitoring MIB Mar 26, 1997 Job Identification (I) Conf ISO Card Appl LPR IPD PJL NDPS TIPS SMB PSER DPA inal orma /LP e S I VER ity nce D PAP jmJobIdName - the job's x M 1 x x x x x x identifier name generated by the job submitting software using the job submission protocol. This name can be anything that helps identifier the job to the job submitter, including the name of the queue from which the job was submitted. jmJobIdNumber - the job's 1 M identifier number generated by the job submitting software using the job submission protocol. A (-2) value shall indicate that the submitter did not supply a job identifier number in the job submission protocol. jmJobServiceTypes - Job types 1 M x x x (print, fax, scan, etc.) - bit vector to get multiple values in a single object jmJobOwner - Job owner (User x 1 M x x x x x x name of the user that originally submitted the job) Bergman, Hastings, Isaacson, Lewis 149 [Page ] Job Monitoring MIB Mar 26, 1997 Job Identification (I) Conf ISO Card Appl LPR IPD PJL NDPS TIPS SMB PSER DPA inal orma /LP e S I VER ity nce D PAP jmJobDeviceNameOrQueueRequeste x 1 M x x x d - Device name (Device- specific name of device) or queue name requested by the submitting user. Bergman, Hastings, Isaacson, Lewis 150 [Page ] Job Monitoring MIB Mar 26, 1997 Conf ISO Card Appl LPR IPD PJL PSER NDPS TIPS SMB Job Status (S) orma DPA inal /LP e S VER I nce ity D PAP jmJobCurrentState - Job 1. M 1 x x x x x x x state (held, pending, processing, completed, etc.) jmJobStateReasons - Job 2. M x 1 x x x x state reasons - additional information about the job state: reasons being held, additional executing information such as device(s) needs attention, additional completed information such as successful, warnings, or errors. 3. jmAttributeTypeIndex - M n Attributes representing information and resources required/consumed (table): a) Other File names b) CM n x Document name(s) (or c) file-names) CM x n x x x x x x Bergman, Hastings, Isaacson, Lewis [Page 151] Job Monitoring MIB Mar 26, 1997 Conf ISO Card Appl LPR IPD PJL PSER NDPS TIPS SMB Job Status (S) orma DPA inal /LP e S VER I nce ity D PAP jobAccountName - Account d) Name CM x 1 x x jobComment - Job comment e) CM x 1 x x x x processingMessage(7) f) CM n jobSourceChannelIndex - g) CM 1 x x x Source channel (index of channel row in Printer MIB) outputBinIndex(9) h) CM n outputBinName(10) i) CM n j) Number of sides requested/used (one- CM 1 x x x x x sided, two-sided) PDLs requested/used - k) index CM n PDL requested/used - l) enum CM n x x x x x Bergman, Hastings, Isaacson, Lewis 152 [Page ] Job Monitoring MIB Mar 26, 1997 Conf ISO Card Appl LPR IPD PJL PSER NDPS TIPS SMB Job Status (S) orma DPA inal /LP e S VER I nce ity D PAP jmDeviceIndex(14) - the m) CM n host resources index of the corresponding Printer MIB that the job was submitted to or has been assigned to be printed on by the server. 0 indicates if the server has not assigned a printer to the job. physicalDeviceName(15) - n) the physical device CM x n x x x x x name(s) used or being used by the job. Number of job copies o) requested CM x 1 x x x p) Number of job copies completed CM 1 x Number of document q) copies requested CM 1 x x x x r) Number of document copies completed CM 1 x Bergman, Hastings, Isaacson, Lewis [Page 153] Job Monitoring MIB Mar 26, 1997 Conf ISO Card Appl LPR IPD PJL PSER NDPS TIPS SMB Job Status (S) orma DPA inal /LP e S VER I nce ity D PAP jobKOctetsTotal - total s) K octets to be processed CM 1 x in the job - rounded up to next K value. jobKOctetsCompleted - K t) octets completed - CM x 1 x x should be rounded down to lower K until completed. impressionsSpooled(22) - u) impressions spooled for CM 1 the job. impressionsSentToDevice( v) 23) - impressions sent CM 1 to the device for the job. impressionsInterpreted(2 w) 4) - impressions CM 1 interpreted for the job. x) impressionsRequested(25) - impressions requested CM 1 y) impressionsCompleted(26) - impressions (sides) CM 1 x x x completed for the job. Bergman, Hastings, Isaacson, Lewis [Page 154] Job Monitoring MIB Mar 26, 1997 Conf ISO Card Appl LPR IPD PJL PSER NDPS TIPS SMB Job Status (S) orma DPA inal /LP e S VER I nce ity D PAP impressionsCompletedCurr z) entCopy(27) - CM 1 impressions completed on the current copy. pagesRequested(28) - aa) logical pages requested CM 1 to be processed pagesCompleted(29) - bb) logical pages completed CM 1 x for the job. pagesCompletedCurrentCop cc) y(30) - logical pages CM x 1 completed on the current copy. sheetsRequested(31) - dd) sheets requested to be CM 1 processed. ee) sheetsCompleted(32) - sheets completed for the M x 1 x job. sheetsCompletedCurrentCo ff) py(33) - sheets CM 1 completed on the current copy. Bergman, Hastings, Isaacson, Lewis [Page 155] Job Monitoring MIB Mar 26, 1997 Conf ISO Card Appl LPR IPD PJL PSER NDPS TIPS SMB Job Status (S) orma DPA inal /LP e S VER I nce ity D PAP mediumRequested(34) - gg) the medium(a) requested CM n for this job, kind and number. mediumConsumed(35) - the hh) medium(a) consumed for CM n this job, kind and number. colorantRequestedIndex(3 ii) 6) CM n colorantRequestedName(37 jj) ) CM n colorantConsumedIndex(38 kk) ) CM n ll) colorantConsumedName(39) CM n mm) jmJobSubmissionDateAndTiCM 1 x x x x me - Date/Time of job submission by job owner jobSubmissionTimeStamp(4 nn) 1) CM 1 Bergman, Hastings, Isaacson, Lewis 156 [Page ] Job Monitoring MIB Mar 26, 1997 Conf ISO Card Appl LPR IPD PJL PSER NDPS TIPS SMB Job Status (S) orma DPA inal /LP e S VER I nce ity D PAP jobStartedProcessingDate oo) AndTime - Date/Time of CM 1 x x x day job started processing on device pp) jobStartedProcessingTime Stamp(43) CM 1 jobCompletionDateAndTime qq) - Date/Time of day job CM x 1 finished using the device jobCompletedTimeStamp(45 rr) ) CM 1 Processing CPU time so ss) far CM x 1 x 8. jmAttributeValueAsInteger - attribute as integer M n value jmAttributeValueAsOctets - 9. attribute value as coded M n character data or octet string. Appendix D - Use of MS-WORD Version 6.0 to format the MIB Bergman, Hastings, Isaacson, Lewis [Page 157] Job Monitoring MIB Mar 26, 1997 17. Appendix D - Use of MS-WORD Version 6.0 to format the MIB This appendix describes how this MIB specification was created using MS-WORD to perform the formatting and produce plain text, 72-columns wide, with only ASCII characters, and running headers and footers as required by the IETF RFCs and Internet Drafts. Don't use smart quotes. To turn off: Tools/AutoCorrect/ replace straight quotes with smart quotes, turn off. The word template mib.dot was created with the following styles: 1. Fixed - CourierNew 12 point set which gives 10 characters per inch. Also set line spacing exactly 12 point. Have no leading indent. Have no right indent. Depend on the margins to wrap whether on full lines or in tables. 2. Fixed Indent - indents 4 characters (0.4 inches) Fixed Double Indent - indents 8 characters (0.8 inches) 3. Comment Full - full line comments. 4. Quoted Running Text - indented 8 characters 5. 6. Normal - TimesRoman 12 point for text that is outside the BEGIN END statements while reviewing the document. To produce the Internet Draft, change the definition of the Normal style to use the Courier 12 point with line spacing exactly 12 point. The following macros are defined in mib.dot with speed keys indicated in parens: 1. CreateFullComment (ALT+C) - creates a full line comment as two column table with the first column being 3 Bergman, Hastings, Isaacson, Lewis 158 [Page ] Job Monitoring MIB Mar 26, 1997 characters wide for the ASN.1 "-- "comment characters. The second column is the full line comments with line wrapping. CreateMIBGroup (ALT+G) - produces a skeleton group to be 2. filled in. 3. CreateMIBObject (ALT+O) - produces a skeleton OBJECT- TYPE to be filled in 4. CreateTC (ALT+T) - produces a skeleton textual- convention to be filled in. To produce the final plain text, follow the following steps: Accept all revisions 1. Redefine Normal style to be CourierNew 12 point with 2. exactly 12 point line spacing. 3. Set the left and right margins to 0 and 1.3, so that text comes out without leading spaces and has exactly 72 characters (8.5-1.3=7.2). Set the top and bottom margins to 0. 4. Select the entire document and type Control Q to get rid 5. of all character formatting, such as bold, italic, etc. Since all indents were done with styles, no indention changes. (be sure not to use the toolbar to indent, else the Control Q will undo that). Replace the table of contents (since new pagination) and 6. make sure NOT to have any leader for the table of contents, figure table, or table of issues. Else the generic text driver will output CR with overstrike which won't meet IETF requirements for plain text. Bergman, Hastings, Isaacson, Lewis 159 [Page ] Job Monitoring MIB Mar 26, 1997 7. Select the generic text printer (but do not keep selected, else always get fixed pitch font, no matter what font selected). Output to file. This will produce a file with headers 8. and footers that meet IETF requirements. Bergman, Hastings, Isaacson, Lewis 160 [Page ] Job Monitoring MIB Mar 26, 1997 18. Author's Addresses Ron Bergman Dataproducts Corp. Phone: 805-578-4421 Fax: Email: rbergman@dpc.com Tom Hastings Xerox Corporation, ESAE-231 701 S. Aviation Blvd. El Segundo, CA 90245 Phone: 310-333-6413 Fax: 310-333-5514 EMail: hastings@cp10.es.xerox.com Scott A. Isaacson Novell, Inc. 122 E 1700 S Provo, UT 84606 Phone: 801-861-7366 Fax: 801-861-4025 EMail: scott_isaacson@novell.com Harry Lewis IBM Corporation P.O. Box 1900 Boulder, CO 80301-9191 Phone: (303) 924-5337 Fax: Email: harryl@vnet.ibm.com Send comments to: JMP Mailing List: jmp@pwg.org JMP Mailing List Subscription Information: jmp-request@pwg.org Bergman, Hastings, Isaacson, Lewis 161 [Page ] Job Monitoring MIB Mar 26, 1997 Other Participants: Chuck Adams - Tektronix Jeff Barnett - IBM Keith Carter, IBM Corporation Jeff Copeland - QMS Andy Davidson - Tektronix Roger deBry - IBM Mabry Dozier - QMS Lee Ferrel - Canon Steve Gebert - IBM Robert Herriot - Sun Microsystems Inc. Shige Kanemitsu - Kyocera David Kellerman - Northlake Software Rick Landau - Digital Harry Lewis - IBM Pete Loya - HP Ray Lutz - Cognisys Jay Martin - Underscore Mike MacKay, Novell, Inc. Stan McConnell - Xerox Carl-Uno Manros, Xerox, Corp. Pat Nogay - IBM Bob Pentecost - HP Rob Rhoads - Intel David Roach - Unisys Hiroyuki Sato - Canon Bob Setterbo - Adobe Gail Songer, EFI Mike Timperman - Lexmark Randy Turner - Sharp William Wagner - Digital Products Jim Walker - Dazel Chris Wellens - Interworking Labs Rob Whittle - Novell Don Wright - Lexmark Lloyd Young - Lexmark Atsushi Yuki - Kyocera Peter Zehler, Xerox, Corp. Bergman, Hastings, Isaacson, Lewis [Page 162] Job Monitoring MIB Mar 26, 1997 19. INDEX This index includes the textual conventions, the objects, and the attributes. Textual conventions all start with the prefix: "JM" and end with the suffix: "TC". Objects all starts with the prefix: "jm" followed by the group name. Attributes are identified with enums, and so start with any lower case letter and have not special prefix. 2157 jmCompletedIndex, 84, 108 C ------ 2158 jmCompletedJobIndex, 84, 2159 108 colorantConsumedIndex, 73 2160 jmGeneralJobCompletedPolicy colorantConsumedName, 73 2161 , 77, 104 colorantRequestedIndex, 73 2162 jmGeneralJobSetName, 77, colorantRequestedName, 73 2163 103 2164 jmGeneralMaxNumberOfJobs, --- D --- 2165 77, 104 2166 jmGeneralNumberOfJobsComple documentCopiesRequested, 682167 ted, 78, 104 documentFormatEnum, 67 2168 jmGeneralNumberOfJobsToComp documentFormatIndex, 66 2169 lete, 78, 104 documentName, 65 2170 jmJobCurrentState, 90, 115 2171 jmJobDeviceNameOrQueueReque --- F --- 2172 sted, 89, 114 2173 jmJobIdName, 87, 111 fileName, 65 2174 jmJobIdNumber, 88, 112 2175 jmJobIndex, 86, 109 --- I --- 2176 jmJobName, 86, 110 2177 jmJobOwner, 89, 113 impressionsCompleted, 71 2178 jmJobPriority, 81, 106 impressionsCompletedCurrent2179 jmJobProcessAfterDateAndTim Copy, 71 2180 e, 81, 107 impressionsInterpreted, 71 2181 jmJobServiceTypes, 88, 112 impressionsRequested, 71 2182 JmJobServiceTypesTC, 45 impressionsSentToDevice, 712183 jmJobSetIndex, 77, 103 impressionsSpooled, 71 2184 jmJobStateReasons, 90, 120 2185 JmJobStateReasonsTC, 51 J--- --- 2186 JmJobStateTC, 47 2187 jmQueueIndex, 80, 105 jmAttributeInstanceIndex, 2188 jmQueueJobIndex, 80, 105 95, 145 2189 jmQueueNumberOfInterveningJ jmAttributeTypeIndex, 94, 2190 obs, 81, 105 121 2191 jobAccountName, 65 JmAttributeTypeTC, 64 2192 jobComment, 65 jmAttributeValueAsInteger, 2193 jobCompletedDateAndTime, 74 96, 145 2194 jobCompletedTimeStamp, 74 jmAttributeValueAsOctets, 2195 jobCopiesCompleted, 68 96, 145 2196 jobCopiesRequested, 68 Bergman, Hastings, Isaacson, Lewis [Page 163] Job Monitoring MIB Mar 26, 1997 jobKOctetsCompleted, 70, 2214 outputBinName, 66 133 jobKOctetsTotal, 68, 132 2215 P--- --- jobSourceChannelIndex, 66 jobStartedProcessingDateAnd2216 pagesCompleted, 71 Time, 74 2217 pagesCompletedCurrentCopy, jobStartedProcessingTimeSta2218 72 mp, 74 2219 pagesRequested, 71 jobSubmissionDateAndTime, 2220 physicalDeviceIndex, 67 74 2221 physicalDeviceName, 68 jobSubmissionTimeStamp, 74 2222 processingCPUTime, 74 2223 processingMessage, 65 --- M --- 2224 S ------ mediumConsumed, 72 mediumRequested, 72 2225 sheetsCompleted, 72 2226 sheetsCompletedCurrentCopy, O ------ 2227 72 2228 sheetsRequested, 72 other, 65 2229 sides, 66 outputBinIndex, 66 Bergman, Hastings, Isaacson, Lewis 164 [Page ]