home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_j_p / draft-ietf-printmib-job-monitor-01.txt < prev    next >
Text File  |  1997-06-11  |  190KB  |  5,509 lines

  1.  
  2.                           Job Monitoring MIB, V0.82     June 9, 1997
  3.  
  4.  
  5. INTERNET-DRAFT                                               Ron Bergman
  6.                                                       Dataproducts Corp.
  7.                                                             Tom Hastings
  8.                                                        Xerox Corporation
  9.                                                           Scott Isaacson
  10.                                                             Novell, Inc.
  11.                                                              Harry Lewis
  12.                                                                IBM Corp.
  13.                                                               April 1997
  14.  
  15.  
  16.                        Job Monitoring MIB - V0.82
  17.  
  18.                 <draft-ietf-printmib-job-monitor-01.txt>
  19.  
  20.                           Expires Dec 10, 1997
  21.  
  22.  
  23. Status of this Memo
  24.  
  25.      This document is an Internet-Draft.  Internet-Drafts are working
  26.      documents of the Internet Engineering Task Force (IETF), its areas,
  27.      and its working groups.  Note that other groups may also distribute
  28.      working documents as Internet-Drafts.
  29.  
  30.      Internet-Drafts are draft documents valid for a maximum of six
  31.      months and may be updated, replaced, or obsoleted by other
  32.      documents at any time.  It is inappropriate to use Internet-Drafts
  33.      as reference material or to cite them other than as "work in
  34.      progress."
  35.  
  36.      To learn the current status of any Internet-Draft, please check the
  37.      "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
  38.      Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  39.      munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  40.      ftp.isi.edu (US West Coast).
  41.  
  42.                                 Abstract
  43.  
  44.      This Internet-Draft specifies a set of 17 SNMP MIB objects for (1)
  45.      monitoring the status and progress of print jobs (2) obtaining
  46.      resource requirements before a job is processed, (3) monitoring
  47.      resource consumption while a job is being processed and (4)
  48.      collecting resource accounting data after the completion of a job.
  49.      This MIB is intended to be implemented (1) in a printer or (2) in a
  50.      server that supports one or more printers.  Use of the object set
  51.      is not limited to printing.  However, support for services other
  52.      than printing is outside the scope of this Job Monitoring MIB.
  53.  
  54.  
  55.  
  56. Bergman, Hastings, Isaacson, Lewis                  [Page 1]
  57.  
  58.  
  59.  
  60.  
  61.  
  62.                           Job Monitoring MIB, V0.82     June 9, 1997
  63.  
  64.  
  65.      Future extensions to this MIB may include, but are not limited to,
  66.      fax machines and scanners.
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116. Bergman, Hastings, Isaacson, Lewis                  [Page 2]
  117.  
  118.  
  119.  
  120.  
  121.  
  122.                           Job Monitoring MIB, V0.82     June 9, 1997
  123.  
  124.  
  125.  
  126.  
  127.                            TABLE OF CONTENTS
  128.  
  129.  
  130. 1. INTRODUCTION........................................................9
  131.  
  132.  1.1 Types of Information in the MIB ..................................9
  133.  
  134.  1.2 Types of Job Monitoring Applications ............................11
  135.  
  136.  
  137. 2. TERMINOLOGY AND JOB MODEL..........................................12
  138.  
  139.  
  140. 3. SYSTEM CONFIGURATIONS FOR THE JOB MONITORING MIB...................14
  141.  
  142.  3.1 Configuration 1 - client-printer ................................15
  143.  
  144.  3.2 Configuration 2 - client-server-printer - agent in the server ...16
  145.  
  146.  3.3 Configuration 3 - client-server-printer - client monitors printer
  147.  agent and server ....................................................17
  148.  
  149.  
  150. 4. CONFORMANCE CONSIDERATIONS.........................................18
  151.  
  152.  4.1 Conformance Terminology .........................................19
  153.  
  154.  4.2 Agent Conformance Requirements ..................................19
  155.    4.2.1 MIB II System Group objects .................................19
  156.    4.2.2 MIB II Interface Group objects ..............................20
  157.    4.2.3 Printer MIB objects .........................................20
  158.  
  159.  4.3 Job Monitoring Application Conformance Requirements .............20
  160.  
  161.  
  162. 5. JOB IDENTIFICATION.................................................20
  163.  
  164.  
  165. 6. INTERNATIONALIZATION CONSIDERATIONS................................21
  166.  
  167.  
  168. 7. IANA CONSIDERATIONS................................................22
  169.  
  170.  7.1 IANA Registration of enums ......................................22
  171.    7.1.1 Type 1 enumerations .........................................22
  172.    7.1.2 Type 2 enumerations .........................................22
  173.  
  174.  
  175.  
  176. Bergman, Hastings, Isaacson, Lewis                  [Page 3]
  177.  
  178.  
  179.  
  180.  
  181.  
  182.                           Job Monitoring MIB, V0.82     June 9, 1997
  183.  
  184.  
  185.    7.1.3 Type 3 enumeration ..........................................23
  186.  
  187.  7.2 IANA Registration of type 2 bit values ..........................23
  188.  
  189.  7.3 IANA Registration of Job Submission Id Formats ..................23
  190.  
  191.  
  192. 8. SECURITY CONSIDERATIONS............................................24
  193.  
  194.  8.1 Read-Write objects ..............................................24
  195.  
  196.  8.2 Read-Only Objects In Other User's Jobs ..........................24
  197.  
  198.  
  199. 9. RETURNING OBJECTS WITH NO VALUE IN MANDATORY GROUPS................24
  200.  
  201.  
  202. 10. NOTIFICATION AND TRAPS............................................25
  203.  
  204.  
  205. 11. MIB SPECIFICATION.................................................25
  206.  
  207.  Textual conventions for this MIB module .............................27
  208.    JmTimeStampTC - simple time in seconds ............................27
  209.    JmJobSourcePlatformTypeTC - operating system platform definitions .27
  210.    JmFinishingTC - device finishing definitions ......................28
  211.    JmPrintQualityTC - print quality ..................................29
  212.    JmPrinterResolutionTC - printer resolution ........................30
  213.    JmTonerEconomyTC - toner economy setting ..........................31
  214.    JmMediumTypeTC - medium type definitions ..........................31
  215.    JmJobStateTC - job state definitions ..............................32
  216.    JmAttributeTypeTC - attribute type definitions ....................35
  217.       other ..........................................................38
  218.       unknown ........................................................39
  219.      Job State attributes.............................................39
  220.       jobStateReasons2 ...............................................39
  221.       jobStateReasons3 ...............................................39
  222.       jobStateReasons4 ...............................................39
  223.       deviceAlertCode ................................................40
  224.       processingMessage ..............................................40
  225.      Job Identification attributes....................................40
  226.       jobOwner (MANDATORY) ...........................................40
  227.       jobAccountName .................................................41
  228.       serverAssignedJobName ..........................................41
  229.       jobName ........................................................41
  230.       jobServiceTypes ................................................42
  231.       jobSourceChannelIndex ..........................................42
  232.       jobSourcePlatformType ..........................................43
  233.  
  234.  
  235.  
  236. Bergman, Hastings, Isaacson, Lewis                  [Page 4]
  237.  
  238.  
  239.  
  240.  
  241.  
  242.                           Job Monitoring MIB, V0.82     June 9, 1997
  243.  
  244.  
  245.       submittingServerName ...........................................43
  246.       submittingApplicationName ......................................43
  247.       jobOriginatingHost .............................................43
  248.       deviceNameRequested ............................................43
  249.       queueNameRequested .............................................44
  250.       physicalDevice .................................................44
  251.       numberOfDocuments ..............................................44
  252.       fileName .......................................................44
  253.       documentName ...................................................45
  254.       jobComment .....................................................45
  255.       documentFormatIndex ............................................45
  256.       documentFormat .................................................45
  257.      Job Parameter attributes.........................................46
  258.       jobPriority ....................................................46
  259.       jobProcessAfterDateAndTime .....................................46
  260.       jobHoldUntil ...................................................47
  261.       jobHoldUntil ...................................................47
  262.       outputBin ......................................................47
  263.       sides ..........................................................48
  264.       finishing ......................................................48
  265.      Image Quality attributes (requested and used)....................48
  266.       printQualityRequested ..........................................48
  267.       printQualityUsed ...............................................48
  268.       printerResolutionRequested .....................................48
  269.       printerResolutionUsed ..........................................48
  270.       tonerEcomonyRequested ..........................................49
  271.       tonerEcomonyUsed ...............................................49
  272.       tonerDensityRequested ..........................................49
  273.       tonerDensityUsed ...............................................49
  274.      Job Progress attributes (requested and consumed).................49
  275.       jobCopiesRequested .............................................49
  276.       jobCopiesCompleted .............................................50
  277.       documentCopiesRequested ........................................50
  278.       documentCopiesCompleted ........................................50
  279.       jobKOctetsTransferred ..........................................50
  280.      Impression attributes (requested and consumed)...................51
  281.       impressionsSpooled .............................................51
  282.       impressionsSentToDevice ........................................51
  283.       impressionsInterpreted .........................................51
  284.       impressionsCompletedCurrentCopy ................................52
  285.       fullColorImpressionsCompleted ..................................52
  286.       highlightColorImpressionsCompleted .............................52
  287.      Page attributes (requested and consumed).........................52
  288.       pagesRequested .................................................53
  289.       pagesCompleted .................................................53
  290.       pagesCompletedCurrentCopy ......................................53
  291.      Sheet attributes (requested and consumed)........................53
  292.       sheetsRequested ................................................53
  293.  
  294.  
  295.  
  296. Bergman, Hastings, Isaacson, Lewis                  [Page 5]
  297.  
  298.  
  299.  
  300.  
  301.  
  302.                           Job Monitoring MIB, V0.82     June 9, 1997
  303.  
  304.  
  305.       sheetsCompleted ................................................53
  306.       sheetsCompletedCurrentCopy .....................................54
  307.      Resource attributes (requested and consumed).....................54
  308.       mediumRequested ................................................54
  309.       mediumConsumedName .............................................54
  310.       colorantRequested ..............................................54
  311.       colorantConsumed ...............................................55
  312.      Time attributes (set by server or device)........................55
  313.       jobSubmissionToServerTime ......................................55
  314.       jobSubmissionToDeviceTime ......................................55
  315.       timeSinceJobWasSubmittedToDevice ...............................56
  316.       jobStartedBeingHeldTimeStamp ...................................56
  317.       jobStartedProcessingTime .......................................56
  318.       timeSinceStartedProcessing .....................................56
  319.       jobCompletedTime ...............................................56
  320.       timeSinceCompleted .............................................57
  321.       jobProcessingCPUTime ...........................................57
  322.      JmJobServiceTypesTC - bit encoded job service type definitions...57
  323.       JmJobStateReasons1TC - additional information about job states .59
  324.       JmJobStateReasons2TC - More additional information about job
  325.       states .........................................................62
  326.       JmJobStateReasons3TC - More additional information about job
  327.       states .........................................................66
  328.       JmJobStateReasons4TC - More additional information about job
  329.       states .........................................................67
  330.      The General Group (Mandatory)....................................69
  331.       jmGeneralNumberOfActiveJobs ....................................69
  332.       jmGeneralOldestActiveJobIndex ..................................70
  333.       jmGeneralNewestActiveJobIndex ..................................70
  334.       jmGeneralJobPersistence ........................................72
  335.       jmGeneralAttributePersistence ..................................72
  336.       jmGeneralJobSetName ............................................72
  337.  
  338.  
  339. THE JOB ID GROUP (MANDATORY)..........................................73
  340.  
  341.  
  342. JMJOBSUBMISSIONID.....................................................74
  343.  
  344.  
  345. JMJOBSETINDEX.........................................................75
  346.  
  347.  
  348. JMJOBINDEX............................................................76
  349.  
  350.  
  351. THE JOB GROUP (MANDATORY).............................................76
  352.  
  353.  
  354.  
  355.  
  356. Bergman, Hastings, Isaacson, Lewis                  [Page 6]
  357.  
  358.  
  359.  
  360.  
  361.  
  362.                           Job Monitoring MIB, V0.82     June 9, 1997
  363.  
  364.  
  365. JMJOBSTATE............................................................77
  366.  
  367.  
  368. JMJOBSTATEREASONS1....................................................78
  369.  
  370.  
  371. JMNUMBEROFINTERVENINGJOBS.............................................78
  372.  
  373.  
  374. JMJOBKOCTETSREQUESTED.................................................79
  375.  
  376.  
  377. JMJOBKOCTETSPROCESSED.................................................79
  378.  
  379.  
  380. JMJOBIMPRESSIONSREQUESTED.............................................80
  381.  
  382.  
  383. JMJOBIMPRESSIONSCOMPLETED.............................................80
  384.  
  385.  
  386. THE ATTRIBUTE GROUP (MANDATORY).......................................81
  387.  
  388.  
  389. JMATTRIBUTETYPEINDEX..................................................82
  390.  
  391.  
  392. JMATTRIBUTEINSTANCEINDEX..............................................82
  393.  
  394.  
  395. JMATTRIBUTEVALUEASINTEGER.............................................83
  396.  
  397.  
  398. JMATTRIBUTEVALUEASOCTETS..............................................84
  399.  
  400.  
  401. 12. APPENDIX A - INSTRUMENTING THE JOB LIFE CYCLE.....................87
  402.  
  403.  
  404. 13. APPENDIX B - SUPPORT OF THE JOB SUBMISSION ID IN JOB SUBMISSION
  405. PROTOCOLS.............................................................88
  406.  
  407.  13.1 Hewlett-Packard's Printer Job Language (PJL) ...................88
  408.  
  409.  
  410. 14. BIBLIOGRAPHY......................................................88
  411.  
  412.  
  413.  
  414.  
  415.  
  416. Bergman, Hastings, Isaacson, Lewis                  [Page 7]
  417.  
  418.  
  419.  
  420.  
  421.  
  422.                           Job Monitoring MIB, V0.82     June 9, 1997
  423.  
  424.  
  425. 15. AUTHOR'S ADDRESSES................................................89
  426.  
  427.  
  428. 16. INDEX.............................................................92
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476. Bergman, Hastings, Isaacson, Lewis                  [Page 8]
  477.  
  478.  
  479.  
  480.  
  481.  
  482.                           Job Monitoring MIB, V0.82     June 9, 1997
  483.  
  484.  
  485.  
  486.                            Job Monitoring MIB
  487.  
  488. 1. Introduction
  489.  
  490. The Job Monitoring MIB consists of a 6-object General Group, a 2-object
  491. Job Submission ID Group, a 7-object Job Group, and a 2-object Attribute
  492. Group.  Each group is a table.  The General Group contains general
  493. information that applies to all jobs in a job set.  The Job Submission
  494. ID table maps the job submission ID that the client uses to identify a
  495. job to the jmJobIndex that the Job Monitoring Agent uses to identify
  496. jobs in the Job and Attribute tables.  The Job table contains the
  497. mandatory integer job state and status objects.  The Attribute table
  498. consists of multiple entries per job that specify (1) job and document
  499. identification and parameters,  (2) requested resources, and (3)
  500. consumed resources during and after job processing/printing.  One
  501. MANDATORY attribute and 70 OPTIONAL attributes are defined as textual
  502. conventions.
  503.  
  504. The Job Monitoring MIB is intended to be instrumented by an agent within
  505. a printer or the first server closest to the printer, where the printer
  506. is either directly connected to the server only or the printer does not
  507. contain the job monitoring MIB agent.  It is recommended that
  508. implementations place the SNMP agent as close as possible to the
  509. processing of the print job.  This MIB applies to printers with and
  510. without spooling capabilities.  This MIB is designed to be compatible
  511. with most current commonly-used job submission protocols.  In most
  512. environments that support high function job submission/job control
  513. protocols, like ISO DPA[2], those protocols would be used to monitor and
  514. manage print jobs rather than using the Job Monitoring MIB.
  515.  
  516. 1.1 Types of Information in the MIB
  517.  
  518. The job MIB is intended to provide the following information for the
  519. indicated Role Models in the Printer MIB[1] (Appendix D - Roles of
  520. Users).
  521.  
  522.    User:
  523.  
  524.       Provide the ability to identify the least busy printer.  The user
  525.       will be able to determine the number and size of jobs waiting for
  526.       each printer.  No attempt is made to actually predict the length
  527.       of time that jobs will take.
  528.  
  529.       Provide the ability to identify the current status of the user's
  530.       job (user queries).
  531.  
  532.  
  533.  
  534.  
  535.  
  536. Bergman, Hastings, Isaacson, Lewis                  [Page 9]
  537.  
  538.  
  539.  
  540.  
  541.  
  542.                           Job Monitoring MIB, V0.82     June 9, 1997
  543.  
  544.  
  545.       Provide a timely indication that the job has completed and where
  546.       it can be found.
  547.  
  548.       Provide error and diagnostic information for jobs that did not
  549.       successfully complete.
  550.  
  551.    Operator:
  552.  
  553.       Provide a presentation of the state of all the jobs in the print
  554.       system.
  555.  
  556.       Provide the ability to identify the user that submitted the print
  557.       job.
  558.  
  559.       Provide the ability to identify the resources required by each
  560.       job.
  561.  
  562.       Provide the ability to define which physical printers are
  563.       candidates for the print job.
  564.  
  565.       Provide some idea of how long each job will take.  However, exact
  566.       estimates of time to process a job is not being attempted.
  567.       Instead, objects are included that allow the operator to be able
  568.       to make gross estimates.
  569.  
  570.    Capacity Planner:
  571.  
  572.       Provide the ability to determine printer utilization as a function
  573.       of time.
  574.  
  575.       Provide the ability to determine how long jobs wait before
  576.       starting to print.
  577.  
  578.    Accountant:
  579.  
  580.       Provide information to allow the creation of a record of resources
  581.       consumed and printer usage data for charging users or groups for
  582.       resources consumed.
  583.  
  584.       Provide information to allow the prediction of consumable usage
  585.       and resource need.
  586.  
  587. The MIB supports printers that can contain more than one job at a time,
  588. but still be usable for low end printers that only contain a single job
  589. at a time.  In particular, the MIB supports the needs of Windows and
  590. other PC environments for managing low-end networked devices without
  591. unnecessary overhead or complexity, while also providing for higher end
  592. systems and devices.
  593.  
  594.  
  595.  
  596. Bergman, Hastings, Isaacson, Lewis                 [Page 10]
  597.  
  598.  
  599.  
  600.  
  601.  
  602.                           Job Monitoring MIB, V0.82     June 9, 1997
  603.  
  604.  
  605. 1.2 Types of Job Monitoring Applications
  606.  
  607. The Job Monitoring MIB is designed for the following types of monitoring
  608. applications:
  609.  
  610.   1.monitor a single job starting when the job is submitted and
  611.     finishing a defined period after the job completes.  The Job
  612.     Submission ID table provides the map to find the specific job to be
  613.     monitored.
  614.  
  615.   2.monitor all 'active' jobs in a queue, which this specification
  616.     generalizes to a "job set".  End users may use such a program when
  617.     selecting a least busy printer, so the MIB is designed for such a
  618.     program to start up quickly and find the information needed quickly
  619.     without having to read all (completed) jobs in order to find the
  620.     active jobs.  System operators may also use such a program, in
  621.     which case it would be running for a long period of time and may
  622.     also be interested in the jobs that have completed.  Finally such a
  623.     program may be co-located with the printer to provide an enhanced
  624.     console and logging capability.
  625.  
  626.   3.collect resource usage for accounting or system utilization
  627.     purposes that copy the completed job statistics to an accounting
  628.     system. It is recognized that depending on accounting programs to
  629.     copy MIB data during the job-retention period is somewhat
  630.     unreliable, since the accounting program may not be running (or may
  631.     have crashed).  Such a program is expected to keep a shadow copy of
  632.     the entire Job Attribute table including completed, canceled, and
  633.     aborted jobs which the program updates on each polling cycle.  Such
  634.     a program polls at the rate of the persistence of the Attribute
  635.     table.  The design is not optimized to help such an application
  636.     determine which jobs are completed, canceled, or aborted.  Instead,
  637.     the application SHALL query each job that the application's shadow
  638.     copy shows was not complete, canceled, or aborted at the previous
  639.     poll cycle to see if it is now complete or canceled, plus any new
  640.     jobs that have been submitted.
  641.  
  642. The MIB provides a set of objects that represent a compatible subset of
  643. job and document attributes of the ISO DPA standard[2] and the Internet
  644. Printing Protocol (IPP)[3], so that coherence is maintained between
  645. these two protocols and the information presented to end users and
  646. system operators by monitoring applications.  However, the job
  647. monitoring MIB is intended to be used with printers that implement other
  648. job submitting and management protocols, such as IEEE 1284.1 (TIPSI)[4],
  649. as well as with ones that do implement ISO DPA.  So nothing in the job
  650. monitoring MIB requires implementation of the ISO DPA or IPP protocols.
  651.  
  652.  
  653.  
  654.  
  655.  
  656. Bergman, Hastings, Isaacson, Lewis                 [Page 11]
  657.  
  658.  
  659.  
  660.  
  661.  
  662.                           Job Monitoring MIB, V0.82     June 9, 1997
  663.  
  664.  
  665. The MIB is designed so that an additional MIB(s) can be specified in the
  666. future for  monitoring  multi-function  (scan, FAX,  copy)  jobs  as  an
  667. augmentation to this MIB.
  668.  
  669. 2. Terminology and Job Model
  670.  
  671. This section defines the terms that are used in this specification and
  672. the general model for jobs.
  673.  
  674.   NOTE - Existing systems use conflicting terms, so these terms are
  675.   drawn from the ISO 10175 Document Printing Application (DPA)
  676.   standard[2].  For example, PostScript systems use the term session for
  677.   what we call a job in this specification and the term job to mean what
  678.   we call a document in this specification.  PJL systems use the term
  679.   job to mean what we call a job in this specification.  PJL also
  680.   supports multiple documents per job, but does not support specifying
  681.   per-document attributes independently for each document.
  682.  
  683. A job is a unit of work whose results are expected together without
  684. interjection of unrelated results.  A client is able to specify job
  685. instructions that apply to the job as a whole.  Proscriptive
  686. instructions specify how, when, and where the job is to be printed.
  687. Descriptive instructions describe the job.  A job contains one or more
  688. documents.
  689.  
  690. A job set is a set of jobs that are queued and scheduled together
  691. according to a specified scheduling algorithm for a specified device or
  692. set of devices.  For implementations that embed the SNMP agent in the
  693. device, the MIB job set normally represents all the jobs known to the
  694. device, so that the implementation only implements a single job set
  695. which MAY be identified with a hard-coded value 1.  If the SNMP agent is
  696. implemented in a server that controls one or more devices, each MIB job
  697. set represents a job queue for (1) a specific device or (2) set of
  698. devices, if the server uses a single queue to load balance between
  699. several devices.  Each job set is disjoint; no job SHALL be represented
  700. in more than one MIB job set.
  701.  
  702. A document is a sub-section within a job.  A document contains print
  703. data and document instructions that apply to just the document.  The
  704. client is able to specify document instructions separately for each
  705. document in a job.  Proscriptive instructions specify how the document
  706. is to be processed and printed by the server.  Descriptive instructions
  707. describe the document.  Server implementation of more than one document
  708. per job is optional.
  709.  
  710. A client is the network entity that end users use to submit jobs to
  711. spoolers, servers, or printers and other devices, depending on the
  712. configuration, using any job submission protocol.
  713.  
  714.  
  715.  
  716. Bergman, Hastings, Isaacson, Lewis                 [Page 12]
  717.  
  718.  
  719.  
  720.  
  721.  
  722.                           Job Monitoring MIB, V0.82     June 9, 1997
  723.  
  724.  
  725. A server is a network entity that accepts jobs from clients and in turn
  726. submits the jobs to printers and other devices.  A server MAY be a
  727. printer supervisor control program, or a print spooler.
  728.  
  729. A device is a hardware entity that (1) interfaces to humans in human
  730. perceptible means, such as produces marks on paper, scans marks on paper
  731. to produce an electronic representations, or writes CD-ROMs or (2)
  732. interfaces to a network, such as sends FAX data to another FAX device.
  733.  
  734. A printer is a device that puts marks on media.
  735.  
  736. A supervisor is a server that contains a control program that controls a
  737. printer or other device.  A supervisor is a client to the printer or
  738. other device.
  739.  
  740. A spooler is a server that accepts jobs, spools the data, and decides
  741. when and on which printer to print the job.  A spooler is a client to a
  742. printer or a printer supervisor, depending on implementation.
  743.  
  744. Spooling is the act of a device or server of (1) accepting jobs and (2)
  745. writing the job's attributes and document data on to secondary storage.
  746.  
  747. Queuing is the act of a device or server of ordering (queuing) the jobs
  748. for the purposes of scheduling the jobs to be processed.
  749.  
  750. A monitor or job monitoring application  is the network entity that End
  751. Users, System Operators, Accountants, Asset Managers, and Capacity
  752. Planners use to monitor jobs using SNMP.  A monitor MAY be either a
  753. separate application or MAY be part of the client that also submits
  754. jobs.
  755.  
  756. An agent is the network entity that accepts SNMP requests from a monitor
  757. and implements the Job Monitoring MIB by instrumenting a server or a
  758. device.
  759.  
  760. A proxy is an agent that acts as a concentrator for one or more other
  761. agents by accepting SNMP operations on the behalf of one or more other
  762. agents, forwarding them on to those other agents, gathering responses
  763. from those other agents and returning them to the original requesting
  764. monitor.
  765.  
  766. A user is a person that uses a client or a monitor.
  767.  
  768. An end user is a user that uses a client to submit a print job.
  769.  
  770. A system operator is a user that uses a monitor to monitor the system
  771. and carries out tasks to keep the system running.
  772.  
  773.  
  774.  
  775.  
  776. Bergman, Hastings, Isaacson, Lewis                 [Page 13]
  777.  
  778.  
  779.  
  780.  
  781.  
  782.                           Job Monitoring MIB, V0.82     June 9, 1997
  783.  
  784.  
  785. A system administrator is a user that specifies policy for the system.
  786.  
  787. A job instruction is an instruction specifying how, when, or where the
  788. job is to be processed.  Job instructions MAY be passed in the job
  789. submission protocol or MAY be embedded in the document data or a
  790. combination depending on the job submission protocol and implementation.
  791.  
  792. A document instruction is an instruction specifying how to process the
  793. document.  Document instructions MAY be passed in the job submission
  794. protocol separate from the actual document data, or MAY be embedded in
  795. the document data or a combination, depending on the job submission
  796. protocol and implementation.
  797.  
  798. An SNMP information object is a name, value-pair that specifies an
  799. action, a status, or a condition in an SNMP MIB.  Objects are identified
  800. in SNMP by an OBJECT IDENTIFIER.
  801.  
  802. An attribute is a name, value-pair that specifies an instruction, a
  803. status, or a condition of a job or a document that has been submitted to
  804. a server or device.  A particular attribute NEED NOT be present in each
  805. job instance.  In other words, attributes are present in a job instance
  806. only when there is a need to express the value, either because (1) the
  807. client supplied a value in the job submission protocol, (2) the document
  808. data contained an embedded attribute, or (3) the server or device
  809. supplied a default value.  An agent SHALL represent an attribute as an
  810. entry (row) in the Attribute table in this MIB in which entries are
  811. present only when necessary.  Attributes are identified in this MIB by
  812. an enum.
  813.  
  814. Job monitoring using SNMP is (1) identifying jobs within the serial
  815. streams of data being processed by the server, printer or other devices,
  816. (2) creating "rows" in the job table for each job, and (3) recording
  817. information, known by the agent, about the processing of the job in that
  818. "row".
  819.  
  820. Job accounting is recording what happens to the job during the
  821. processing and printing of the job.
  822.  
  823. 3. System Configurations for the Job Monitoring MIB
  824.  
  825. This section enumerates the three configurations in which the Job
  826. Monitoring MIB is intended to be used.  To simplify the pictures, the
  827. devices are shown as printers.  See Goals section.
  828.  
  829. The diagram in the Printer MIB[1] entitled: "One Printer's View of the
  830. Network" is assumed for this MIB as well.  Please refer to that diagram
  831. to aid in understanding the following system configurations.
  832.  
  833.  
  834.  
  835.  
  836. Bergman, Hastings, Isaacson, Lewis                 [Page 14]
  837.  
  838.  
  839.  
  840.  
  841.  
  842.                           Job Monitoring MIB, V0.82     June 9, 1997
  843.  
  844.  
  845. 3.1 Configuration 1 - client-printer
  846.  
  847. In the client-printer configuration, the client(s) submit jobs directly
  848. to the printer, either by some direct connect, or by network connection.
  849. The client-printer configuration can accommodate multiple job submitting
  850. clients in either of two ways:
  851.  
  852.      1.if each client relinquishes control of the Print Job Delivery
  853.        Channel after each job (or after a number of jobs)
  854.  
  855.      2.if the printer supports more than one Print Job Delivery Channel
  856.  
  857. The job submitting client and/or monitoring application monitor jobs by
  858. communicating directly with an agent that is part of the printer.  The
  859. agent in the printer SHALL keep the job in the Job Monitoring MIB as
  860. long as the job is in the Printer, and longer in order to implement the
  861. completed state in which monitoring programs can copy out the accounting
  862. data from the Job Monitoring MIB.
  863.  
  864.  
  865.                all         end-user     ######## SNMP query
  866.             +-------+     +--------+    ---- job submission
  867.             |monitor|     | client |
  868.             +---#---+     +--#--+--+
  869.                 #            #  |
  870.                 # ############  |
  871.                 # #             |
  872.          +==+===#=#=+==+        |
  873.          |  | agent |  |        |
  874.          |  +-------+  |        |
  875.          |   PRINTER   <--------+
  876.          |             | Print Job Delivery Channel
  877.          |             |
  878.          +=============+
  879.  
  880. Figure 3-1 - Configuration 1 - client-printer - agent in the printer
  881.  
  882.  
  883. The Job Monitoring MIB is designed to support the following
  884. relationships (not shown in Figure 3-1):
  885.   1.Multiple clients MAY submit jobs to a printer.
  886.   2.Multiple clients MAY monitor a printer.
  887.   3.Multiple monitors MAY monitor a printer.
  888.   4.A client MAY submit jobs to multiple printers.
  889.   5.A monitor MAY monitor multiple printers.
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896. Bergman, Hastings, Isaacson, Lewis                 [Page 15]
  897.  
  898.  
  899.  
  900.  
  901.  
  902.                           Job Monitoring MIB, V0.82     June 9, 1997
  903.  
  904.  
  905. 3.2 Configuration 2 - client-server-printer - agent in the server
  906.  
  907. In the client-server-printer configuration 2, the client(s) submit jobs
  908. to an intermediate server by some network connection, not directly to
  909. the printer.  While configuration 2 is included, the design center for
  910. this MIB is configurations 1 and 3,
  911.  
  912. The job submitting client and/or monitoring application monitor job by
  913. communicating directly with:
  914.  
  915.      1.a Job Monitoring MIB agent that is part of the server (or a
  916.        front for the server)
  917.  
  918. There is no SNMP Job Monitoring MIB agent in the printer in
  919. configuration 2, at least that the client or monitor are aware.  In this
  920. configuration, the agent SHALL return the current values of the objects
  921. in the Job Monitoring MIB both for jobs the server keeps and jobs that
  922. the server has submitted to the printer.  In configuration 2, the server
  923. keeps a copy of the job during the time that the server has submitted
  924. the job to the printer.  Only some time after the printer completes the
  925. job, SHALL the server remove the representation of the job from the Job
  926. Monitoring MIB in the server.  The agent NEED NOT access the printer,
  927. except when a monitor queries the agent using an SNMP Get for an object
  928. in the Job Monitoring MIB.  Or the agent can subscribe to the
  929. notification events that the printer generates and keep the Job
  930. Monitoring MIB update to date.  The agent in the server SHALL keep the
  931. job in the Job Monitoring MIB as long as the job is in the Printer, and
  932. longer in order to implement the completed state in which monitoring
  933. programs can copy out the accounting data from the Job Monitoring MIB.
  934.  
  935.              all          end-user
  936.           +-------+     +----------+
  937.           |monitor|     |  client  |     ######## SNMP query
  938.           +---+---#     +---#----+-+     **** non-SNMP cntrl
  939.                    #        #    |       ---- job submission
  940.                     #       #    |
  941.                      #      #    |
  942.                       #=====#=+==v==+
  943.                       | agent |     |
  944.                       +-------+     |
  945.                       |    server   |
  946.                       +----+-----+--+
  947.                    control *     |
  948.                   **********     |
  949.                   *              |
  950.          +========v====+         |
  951.          |             |         |
  952.          |             |         |
  953.  
  954.  
  955.  
  956. Bergman, Hastings, Isaacson, Lewis                 [Page 16]
  957.  
  958.  
  959.  
  960.  
  961.  
  962.                           Job Monitoring MIB, V0.82     June 9, 1997
  963.  
  964.  
  965.          |   PRINTER   <---------+
  966.          |             | Print Job Delivery Channel
  967.          |             |
  968.          +=============+
  969.  
  970. Figure 3-2 - Configuration 2 - client-server-printer - agent in the
  971. server
  972.  
  973.  
  974. The Job Monitoring MIB is designed to support the following
  975. relationships (not shown in Figure 3-2):
  976.   1.Multiple clients MAY submit jobs to a server.
  977.   2.Multiple clients MAY monitor a server.
  978.   3.Multiple monitors MAY monitor a server.
  979.   4.A client MAY submit jobs to multiple servers.
  980.   5.A monitor MAY monitor multiple servers.
  981.   6.Multiple servers MAY submit jobs to a printer.
  982.   7.Multiple servers MAY control a printer.
  983.  
  984. 3.3 Configuration 3 - client-server-printer - client monitors printer
  985. agent and server
  986.  
  987. In the client-server-printer configuration 3, the client(s) submit jobs
  988. to an intermediate server by some network connection, not directly to
  989. the printer.
  990.  
  991. The job submitting client and/or monitoring application monitor jobs by
  992. communicating directly with:
  993.  
  994.      1.the server using some protocol to monitor jobs in the server
  995.        that does not contain the Job Monitoring MIB AND
  996.  
  997.      2.a Job Monitoring MIB agent that is part of the printer to
  998.        monitor jobs after the server passes the jobs to the printer.
  999.        In such configurations, the server deletes its copy of the job
  1000.        from the server after submitting the job to the printer usually
  1001.        almost immediately (before the job does much processing, if
  1002.        any).
  1003.  
  1004. There is no SNMP Job Monitoring MIB agent in the server in configuration
  1005. 3, at least that the client or monitor are aware.  In this
  1006. configuration, the agent (in the printer) SHALL keep the values of the
  1007. objects in the Job Monitoring MIB that the agent implements updated for
  1008. a job that the server has submitted to the printer.  The agent SHALL
  1009. obtain information about the jobs submitted to the printer from the
  1010. server (either in the job submission protocol, in the document data, or
  1011. by direct query of the server), in order to populate some of the objects
  1012. the Job Monitoring MIB in the printer.  The agent in the printer SHALL
  1013.  
  1014.  
  1015.  
  1016. Bergman, Hastings, Isaacson, Lewis                 [Page 17]
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.                           Job Monitoring MIB, V0.82     June 9, 1997
  1023.  
  1024.  
  1025. keep the job in the Job Monitoring MIB as long as the job is in the
  1026. Printer, and longer in order to implement the completed state in which
  1027. monitoring programs can copy out the accounting data from the Job
  1028. Monitoring MIB.
  1029.  
  1030.              all          end-user
  1031.           +-------+     +----------+
  1032.           |monitor|     |  client  |     ######## SNMP query
  1033.           +---+---*     +---*----+-+     **** non-SNMP query
  1034.               #    *        *    |       ---- job submission
  1035.               #     *       *    |
  1036.               #      *      *    |
  1037.               #       *=====v====v==+
  1038.               #       |             |
  1039.               #       |    server   |
  1040.               #       |             |
  1041.               #       +----#-----+--+
  1042.               #    optional#     |
  1043.               #   ##########     |
  1044.               #   #              |
  1045.          +==+=v===v=+==+         |
  1046.          |  | agent |  |         |
  1047.          |  +-------+  |         |
  1048.          |   PRINTER   <---------+
  1049.          |             | Print Job Delivery Channel
  1050.          |             |
  1051.          +=============+
  1052.  
  1053. Figure 3-3 - Configuration 3 - client-server-printer - client monitors
  1054. printer agent and server
  1055.  
  1056.  
  1057. The Job Monitoring MIB is designed to support the following
  1058. relationships (not shown in Figure 3-3):
  1059.   1.Multiple clients MAY submit jobs to a server.
  1060.   2.Multiple clients MAY monitor a server.
  1061.   3.Multiple monitors MAY monitor a server.
  1062.   4.A client MAY submit jobs to multiple servers.
  1063.   5.A monitor MAY monitor multiple servers.
  1064.   6.Multiple servers MAY submit jobs to a printer.
  1065.   7.Multiple servers MAY control a printer.
  1066.  
  1067. 4. Conformance Considerations
  1068.  
  1069. In order to achieve interoperability between job monitoring applications
  1070. and job monitoring agents, this specification includes the conformance
  1071. requirements for both monitoring applications and agents.
  1072.  
  1073.  
  1074.  
  1075.  
  1076. Bergman, Hastings, Isaacson, Lewis                 [Page 18]
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.                           Job Monitoring MIB, V0.82     June 9, 1997
  1083.  
  1084.  
  1085. 4.1 Conformance Terminology
  1086.  
  1087. This specification uses the verbs: "SHALL", "SHOULD", "MAY", and "NEED
  1088. NOT" to specify conformance requirements according to RFC 2119 as
  1089. follows:
  1090.  
  1091.   . "SHALL":  indicates an action that the subject of the sentence must
  1092.     implement in order to claim conformance to this specification
  1093.  
  1094.   . "MAY":  indicates an action that the subject of the sentence does
  1095.     not have to implement in order to claim conformance to this
  1096.     specification, in other words that action is an implementation
  1097.     option
  1098.  
  1099.   . "NEED NOT":  indicates an action that the subject of the sentence
  1100.     does not have to implement in order to claim conformance to this
  1101.     specification.  The verb "NEED NOT" is used instead of "may not",
  1102.     since "may not" sounds like a prohibition.
  1103.  
  1104.   . "SHOULD":  indicates an action that is recommended for the subject
  1105.     of the sentence to implement, but is not required, in order to
  1106.     claim conformance to this specification.
  1107.  
  1108. 4.2 Agent Conformance Requirements
  1109.  
  1110. A conforming agent:
  1111.  
  1112. 1.SHALL implement all MANDATORY groups and attributes in this
  1113.   specification.
  1114.  
  1115. 2.NEED NOT implement any OPTIONAL attributes, whether the agent is able
  1116.   to obtain the information from the server or device.
  1117.  
  1118. 3.NEED NOT implement both forms of an attribute if it implements an
  1119.   attribute that permits a choice of Integer and Octets forms, though
  1120.   implementing both forms may help management applications by giving
  1121.   them a choice of representations, since the representation are
  1122.   equivalent.  See page 55.
  1123.  
  1124.   NOTE - This MIB, like the Printer MIB, is written following the
  1125.   subset of SMIv2 that can be supported by SMIv1 and SNMPv1
  1126.   implementations.
  1127.  
  1128. 4.2.1 MIB II System Group objects
  1129.  
  1130. The Job Monitoring MIB agent SHALL implement all objects in the system
  1131. group of MIB-II (RFC 1213)[5], whether the Printer MIB[1] is implemented
  1132. or not.
  1133.  
  1134.  
  1135.  
  1136. Bergman, Hastings, Isaacson, Lewis                 [Page 19]
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.                           Job Monitoring MIB, V0.82     June 9, 1997
  1143.  
  1144.  
  1145. 4.2.2 MIB II Interface Group objects
  1146.  
  1147. The Job Monitoring MIB agent SHALL implement all objects in the
  1148. Interfaces Group of MIB-II (RFC 1213)[5], whether the Printer MIB[1] is
  1149. implemented or not.
  1150.  
  1151. 4.2.3 Printer MIB objects
  1152.  
  1153. If the agent is instrumenting a device that is a printer, the agent
  1154. SHALL implement all of the mandatory objects in the Printer MIB[1] and
  1155. all the objects in other MIBs that conformance to the Printer MIB
  1156. requires, such as the Host Resources MIB (RFC 1514)[6].  If the agent is
  1157. instrumenting a server that controls one or more networked printers, the
  1158. agent NEED NOT implement the Printer MIB and NEED NOT implement the Host
  1159. Resources MIB.
  1160.  
  1161. 4.3 Job Monitoring Application Conformance Requirements
  1162.  
  1163. A conforming job monitoring application:
  1164.  
  1165. 1.SHALL accept all objects in all MANDATORY groups and all MANDATORY
  1166.   attributes that are required to be implemented by an agent according
  1167.   to Section 4.2 and SHALL either present them to the user or ignore
  1168.   them.
  1169.  
  1170. 2.SHALL accept all OPTIONAL attributes, including enum and bit values
  1171.   specified in this specification and additional ones that may be
  1172.   registered with IANA and SHALL either present them to the user or
  1173.   ignore them.  In particular, a conforming job monitoring application
  1174.   SHALL not malfunction when receiving any standard or registered enum
  1175.   or bit values.  See Section 7 entitled "IANA Considerations" on page
  1176.   22.
  1177.  
  1178. 3.SHALL accept either form of time attribute, if it supports a time
  1179.   attribute, since agents are free to implement either time form.  See
  1180.   page 55.
  1181.  
  1182. 5. Job Identification
  1183.  
  1184. There are a number of attributes that permit a user, operator or system
  1185. administrator to identify jobs of interest, such as jobOwner, jobName,
  1186. etc.  In addition, there is a Job Submission ID object that allows a
  1187. monitoring application to quickly locate and identify a particular job
  1188. of interest that was submitted from a particular client by the user
  1189. invoking the monitoring application.  The Job Monitoring MIB needs to
  1190. provide for identification of the job at both sides of the job
  1191. submission process.  The primary identification point is the client
  1192. side.  The Job Submission ID allows the monitoring application to
  1193.  
  1194.  
  1195.  
  1196. Bergman, Hastings, Isaacson, Lewis                 [Page 20]
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.                           Job Monitoring MIB, V0.82     June 9, 1997
  1203.  
  1204.  
  1205. identify the job of interest from all the jobs currently "known" by the
  1206. server or device.  The Job Submission ID can be assigned by either the
  1207. client's local system or a downstream server or device.  The point of
  1208. assignment will be determined by the job submission protocol in use.
  1209.  
  1210. The server/device-side identifier, called the jmJobIndex object, will be
  1211. assigned by the server or device that accepts the jobs from submitting
  1212. clients.  The MIB agent SHALL use the job identifier assigned by the
  1213. server or device to the job as the value of the jmJobIndex object that
  1214. defines the table rows (there are multiple tables) that contain the
  1215. information relating to the job.  This object allows the interested
  1216. party to obtain all objects desired that relate to this job.  The MIB
  1217. provides a mapping table that maps each Job Submission ID to the
  1218. corresponding jmJobIndex value, so that an application can determine the
  1219. correct value for the jmJobIndex value for the job of interest in a
  1220. single Get operation.  See the jmJobIDGroup on page 73.
  1221.  
  1222. The jobName attribute provides a name that the user supplies as a job
  1223. attribute with the job.  The jobName attribute is not necessarily
  1224. unique, even for one user, let alone across users.
  1225.  
  1226. 6. Internationalization Considerations
  1227.  
  1228. There are a number of objects in this MIB that are represented as coded
  1229. character sets.  The data type for such objects is OCTET STRING.  Such
  1230. objects could be in different coded character sets and could be
  1231. localized in the language and country, i.e., could be localized.
  1232. However, for the Job Monitoring MIB, most of the objects are supplied as
  1233. job attributes by the client that submits the job to the server or
  1234. device and so are represented in the coded character set specified by
  1235. that client.  Therefore, the agent is not able to provide for different
  1236. representations depending on the locale of the server, device, or user
  1237. of the job monitoring application.  The only exception is job submission
  1238. protocols that pass job or document attributes as OBJECT IDENTIFIERS or
  1239. enums.  For those job and document attributes, the agent SHALL represent
  1240. the corresponding objects in the Job Monitoring MIB as coded character
  1241. sets in the current (default) locale of the server or printer as
  1242. established by the system administrator or the implementation.
  1243.  
  1244. For simplicity, this specification assumes that the clients, job
  1245. monitoring applications, servers, and devices are all running in the
  1246. same locale.  However, this specification allows them to run in any
  1247. locale, including locales that use two-octet coded character sets, such
  1248. as ISO 10646 (Unicode).  Job monitors applications are expected to
  1249. understand the coded character set of the client (and job), server, or
  1250. device.  No special means is provided for the monitor to discover the
  1251. coded character set used by jobs or by the server or device.  This
  1252. specification does not contain an object that indicates what locale the
  1253.  
  1254.  
  1255.  
  1256. Bergman, Hastings, Isaacson, Lewis                 [Page 21]
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.                           Job Monitoring MIB, V0.82     June 9, 1997
  1263.  
  1264.  
  1265. server or device is running in, let alone contain an object to control
  1266. what locale the agent is to use to represent coded character set
  1267. objects.
  1268.  
  1269. This MIB also contains objects that are represented using the
  1270. DateAndTime textual convention from SNMPv2-TC (RFC 1903).  The job
  1271. management application SHALL display such objects in the locale of the
  1272. user running the monitoring application.
  1273.  
  1274. 7. IANA Considerations
  1275.  
  1276. During the development of this standard, the Printer Working Group (PWG)
  1277. working with IANA will register additional enums while the standard is
  1278. in the proposed and draft states according to the procedures described
  1279. in this section.  IANA will handle registration of additional enums
  1280. after this standard is approved in cooperation with an IANA-appointed
  1281. registration editor from the PWG according to the procedures described
  1282. in this section:
  1283.  
  1284. 7.1 IANA Registration of enums
  1285.  
  1286. This specification uses textual conventions to define enumerated values
  1287. (enums) and bit values.  Enumerations (enums) and bit values are sets of
  1288. symbolic values defined for use with one or more objects or attributes.
  1289. All enumeration sets and bit value sets are assigned a symbolic data
  1290. type name (textual convention).  As a convention the symbolic name ends
  1291. in "TC" for textual convention.  These enumerations are defined at the
  1292. beginning of the MIB module specification.
  1293.  
  1294. This working group has defined several type of enumerations for use in
  1295. the Job Monitoring MIB and the Printer MIB[1].  These types differ in
  1296. the method employed to control the addition of new enumerations.
  1297. Throughout this document, references to "type n enum", where n can be 1,
  1298. 2 or 3 can be found in the various tables.  The definitions of these
  1299. types of enumerations are:
  1300.  
  1301. 7.1.1 Type 1 enumerations
  1302.  
  1303. Type 1 enumeration:  All the values are defined in the Job Monitoring
  1304. MIB specification (RFC for the Job Monitoring MIB).  Additional
  1305. enumerated values require a new RFC.
  1306.  
  1307. NOTE - There are no type 1 enums in the current draft.
  1308.  
  1309. 7.1.2 Type 2 enumerations
  1310.  
  1311. Type 2 enumeration:  An initial set of values are defined in the Job
  1312. Monitoring MIB specification.  Additional enumerated values are
  1313.  
  1314.  
  1315.  
  1316. Bergman, Hastings, Isaacson, Lewis                 [Page 22]
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.                           Job Monitoring MIB, V0.82     June 9, 1997
  1323.  
  1324.  
  1325. registered after review by this working group. The initial versions of
  1326. the MIB will contain the values registered so far. After the MIB is
  1327. approved, additional values will be registered through IANA after
  1328. approval by this working group.
  1329.  
  1330. The following type 2 enums are contained in the current draft :
  1331.   1.JmTimeStampTC
  1332.   2.JmFinishingTC
  1333.   3.JmPrintQualityTC
  1334.   4.JmTonerEconomyTC
  1335.   5.JmPrinterResolutionTC
  1336.   6.JmMediumTypeTC
  1337.   7.JmJobStateTC
  1338.   8.JmAttributeTypeTC
  1339.  
  1340. 7.1.3 Type 3 enumeration
  1341.  
  1342. Type 3 enumeration:  An initial set of values are defined in the Job
  1343. Monitoring MIB specification.  Additional enumerated values are
  1344. registered without working group review.  The initial versions of the
  1345. MIB will contain the values registered so far.  After the MIB is
  1346. approved, additional values will be registered through IANA without
  1347. approval by this working group.
  1348.  
  1349. NOTE - There are no type 3 enums in the current draft.
  1350.  
  1351. 7.2 IANA Registration of type 2 bit values
  1352.  
  1353. This draft contains the following type 2 bit value textual-conventions:
  1354.   1.JmJobServiceTypesTC
  1355.   2.JmJobStateReasons1TC
  1356.   3.JmJobStateReasons2TC
  1357.   4.JmJobStateReasons3TC
  1358.   5.JmJobStateReasons4TC
  1359.  
  1360. These textual-conventions are defined as bits in an Integer so that they
  1361. can be used with SNMPv1 SMI.  The jobStateReasonsn (n=1..4) attributes
  1362. are defined as bit values using the corresponding JmJobStateReasonsnTC
  1363. textual-conventions.
  1364.  
  1365. The registration of JmJobServiceTypesTC and JmJobStateReasonsnTC bit
  1366. values SHALL follow the procedures for a type 2 enum as specified in
  1367. Section 7.1.2.
  1368.  
  1369. 7.3 IANA Registration of Job Submission Id Formats
  1370.  
  1371. In addition to enums and bit values, this specification assigns numbers
  1372. to various job submission ID formats.  See jmJobSubmissionID on page 74.
  1373.  
  1374.  
  1375.  
  1376. Bergman, Hastings, Isaacson, Lewis                 [Page 23]
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.                           Job Monitoring MIB, V0.82     June 9, 1997
  1383.  
  1384.  
  1385. The registration of  jmJobSubmissionID format numbers SHALL follow the
  1386. procedures for a type 2 enum as specified in Section 7.1.2.
  1387.  
  1388. 8. Security Considerations
  1389.  
  1390. 8.1 Read-Write objects
  1391.  
  1392. All objects are read-only greatly simplifying the security
  1393. considerations.  If another MIB augments this MIB, that MIB might allow
  1394. objects in this MIB to be modified.  However, that MIB SHALL have to
  1395. support the required access control in order to achieve security, not
  1396. this MIB.
  1397.  
  1398. 8.2 Read-Only Objects In Other User's Jobs
  1399.  
  1400. The security policy of some sites may be that unprivileged users can
  1401. only get the objects from jobs that they submitted, plus a few minimal
  1402. objects from other jobs, such as the jmJobKOctetsRequested and
  1403. jmJobKOctetsCompleted objects, so that a user can tell how busy a
  1404. printer is.  Other sites might allow all unprivileged users to see all
  1405. objects of all jobs.  It is up to the agent to implement any such
  1406. restrictions based on the identification of the user making the SNMP
  1407. request.  This MIB does not require, nor does it specify how, such
  1408. restrictions would be implemented.  A monitoring application SHOULD
  1409. enforce the site security policy with respect to returning information
  1410. to an unprivileged end user that is using the monitoring application to
  1411. monitor jobs that do not belong to that user, i.e., the jobOwner
  1412. attribute in the jmAttributeTable does not match the user's user name.
  1413. See the JmAttributeTypeTC textual convention on page Error! Bookmark not
  1414. defined. and the jmAttributeTable on page 81.
  1415.  
  1416. An operator is a privileged user that would be able to see all objects
  1417. of all jobs, independent of the policy for unprivileged users.
  1418.  
  1419. 9. Returning Objects With No Value In Mandatory Groups
  1420.  
  1421. If an object in a mandatory group does not have an instrumented value
  1422. for a particular job submission protocol or the job submitting client
  1423. did not supply a value (and the accepting server or device does not
  1424. supply a default), this MIB requires that the agent SHALL follow the
  1425. normal SNMP practice of returning a distinguished value, such as a zero-
  1426. length string, an unknown(2) value for an enum, or a (-2) for an integer
  1427. value.
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436. Bergman, Hastings, Isaacson, Lewis                 [Page 24]
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.                           Job Monitoring MIB, V0.82     June 9, 1997
  1443.  
  1444.  
  1445. 10. Notification and Traps
  1446.  
  1447. This MIB does not specify any traps.  For simplicity, management
  1448. applications are expected to poll for status.  The resulting network
  1449. traffic is not expected to be significant.
  1450.  
  1451. 11. MIB specification
  1452.  
  1453. The following pages constitute the actual Job Monitoring MIB.
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496. Bergman, Hastings, Isaacson, Lewis                 [Page 25]
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.                           Job Monitoring MIB, V0.82     June 9, 1997
  1503.  
  1504.  
  1505. Job-Monitoring-MIB DEFINITIONS ::= BEGIN
  1506.  
  1507. IMPORTS
  1508.     MODULE-IDENTITY, OBJECT-TYPE, experimental,
  1509.     Integer32                                        FROM SNMPv2-SMI
  1510.     TEXTUAL-CONVENTION                               FROM SNMPv2-TC
  1511.     MODULE-COMPLIANCE, OBJECT-GROUP                  FROM SNMPv2-CONF;
  1512.     -- The following textual-conventions are needed
  1513.     -- to implement certain attributes, but are not
  1514.     -- needed to compile this MIB.  They are
  1515.     -- provided here for convenience:
  1516.     -- DateAndTime                                   FROM SNMPv2-TC
  1517.     -- PrtAlertCodeTC, PrtInterpreterLangFamilyTC    FROM Printer-MIB
  1518.  
  1519. -- Use the experimental (54) OID assigned to the Printer MIB[1] before
  1520. -- it was published as RFC 1759.
  1521. -- Upon publication of the Job Monitoring MIB as an RFC, delete this
  1522. -- comment and the line following this comment and change the
  1523. -- reference of { temp 104 } (below) to { mib-2 X }.
  1524. -- This will result in changing:
  1525. -- 1 3 6 1 3 54 jobmonMIB(105)    to:
  1526. -- 1 3 6 1 2  1 jobmonMIB(X)
  1527. -- This will make it easier to translate prototypes to
  1528. -- the standard namespace because the lengths of the OIDs won't
  1529. -- change.
  1530. temp OBJECT IDENTIFIER ::= { experimental 54 }
  1531.  
  1532. jobmonMIB MODULE-IDENTITY
  1533.     LAST-UPDATED "9705200000Z"
  1534.     ORGANIZATION "IETF Printer MIB Working Group"
  1535.     CONTACT-INFO
  1536.         "Tom Hastings
  1537.         Postal:  Xerox Corp.
  1538.                  Mail stop ESAE-231
  1539.                  701 S. Aviation Blvd.
  1540.                  El Segundo, CA 90245
  1541.  
  1542.         Tel:     (301)333-6413
  1543.         Fax:     (301)333-5514
  1544.         E-mail:  hastings@cp10.es.xerox.com"
  1545.     DESCRIPTION
  1546.         "The MIB module for monitoring job in servers, printers, and
  1547.         other devices.
  1548.  
  1549.         File: jmp-mib.doc,  .pdf,  .txt,  .mib
  1550.         Version: 0.82"
  1551.     ::= { temp 105 }
  1552.  
  1553.  
  1554.  
  1555.  
  1556. Bergman, Hastings, Isaacson, Lewis                 [Page 26]
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.                           Job Monitoring MIB, V0.82     June 9, 1997
  1563.  
  1564.  
  1565.  
  1566.  
  1567. -- Textual conventions for this MIB module
  1568.  
  1569.  
  1570.  
  1571. JmTimeStampTC ::= TEXTUAL-CONVENTION
  1572.     STATUS      current
  1573.     DESCRIPTION
  1574.         "The simple time at which an event took place.  The units SHALL
  1575.         be in seconds since the system was booted.
  1576.  
  1577.         NOTE - JmTimeStampTC is defined in units of seconds, rather than
  1578.         100ths of seconds, so as to be simpler for agents to implement
  1579.         (even if they have to implement the 100ths of a second to comply
  1580.         with implementing sysUpTime in MIB-II[5].)
  1581.  
  1582.         NOTE - JmTimeStampTC is defined as an Integer32 so that it can
  1583.         be used as a value of an attribute, i.e., as a value of the
  1584.         jmAttributeValueAsInteger object (see page 83).  The TimeStamp
  1585.         textual-convention defined in SMNPv2-TC is defined as an
  1586.         APPLICATION 3 IMPLICIT INTEGER tag, not an Integer32, so cannot
  1587.         be used in this MIB as one of the values of
  1588.         jmAttributeValueAsInteger."
  1589.     SYNTAX      INTEGER(0..2147483647)
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595. JmJobSourcePlatformTypeTC ::= TEXTUAL-CONVENTION
  1596.     STATUS      current
  1597.     DESCRIPTION
  1598.         "The source platform type that can submit jobs to servers or
  1599.         devices in any of the 3 configurations."
  1600.  
  1601.     -- This is a type 2 enumeration.  See Section 7.1 on page 22.
  1602.     SYNTAX      INTEGER {
  1603.         other(1),
  1604.         unknown(2),
  1605.         sptUNIX(3),            -- UNIX(tm)
  1606.         sptOS2(4),             -- OS/2
  1607.         sptPCDOS(5),           -- DOS
  1608.         sptNT(6),              -- NT
  1609.         sptMVS(7),             -- MVS
  1610.         sptVM(8),              -- VM
  1611.         sptOS400(9),           -- OS/400
  1612.         sptVMS(10),            -- VMS
  1613.  
  1614.  
  1615.  
  1616. Bergman, Hastings, Isaacson, Lewis                 [Page 27]
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.                           Job Monitoring MIB, V0.82     June 9, 1997
  1623.  
  1624.  
  1625.         sptWindows95(11),      -- Windows95
  1626.         sptNetWare(33)         -- NetWare
  1627.     }
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634. JmFinishingTC ::= TEXTUAL-CONVENTION
  1635.     STATUS      current
  1636.     DESCRIPTION
  1637.         "The type of finishing."
  1638.  
  1639.     -- This is a type 2 enumeration.  See Section 7.1 on page 22.
  1640.     SYNTAX      INTEGER {
  1641.         other(1),
  1642.             --  Some other finishing besides one of the specified or
  1643.             --  registered values.
  1644.  
  1645.         unknown(2),
  1646.             --  The finishing is unknown.
  1647.  
  1648.         none(3),
  1649.             --  Perform no finishing.
  1650.  
  1651.         staple(4),
  1652.             --  Bind the document(s) with one or more staples. The
  1653.             --  exact number and placement of the staples is site-
  1654.             --  defined.
  1655.  
  1656.         stapleTopLeft(5),
  1657.             --  Place one or more staples on the top left corner of
  1658.             --  the document(s).
  1659.  
  1660.         stapleBottomLeft(6),
  1661.             --  Place one or more staples on the bottom left corner
  1662.             --  of the document(s).
  1663.  
  1664.         stapleTopRight(7),
  1665.             --  Place one or more staples on the top right corner of
  1666.             --  the document(s).
  1667.  
  1668.         stapleBottomRight(8),
  1669.             --  Place one or more staples on the bottom right corner
  1670.             --  of the document(s).
  1671.  
  1672.         saddleStitch(9),
  1673.  
  1674.  
  1675.  
  1676. Bergman, Hastings, Isaacson, Lewis                 [Page 28]
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.                           Job Monitoring MIB, V0.82     June 9, 1997
  1683.  
  1684.  
  1685.             --  Bind the document(s) with one or more staples (wire
  1686.             --  stitches) along the middle fold.  The exact number
  1687.             --  and placement of the stitches is site-defined.
  1688.  
  1689.         edgeStitch(10),
  1690.             --  Bind the document(s) with one or more staples (wire
  1691.             --  stitches) along one edge.  The exact number and
  1692.             --  placement of the staples is site-defined.
  1693.  
  1694.         punch(11),
  1695.             --  This value indicates that holes are required in the
  1696.             --  finished document. The exact number and placement of
  1697.             --  the holes is site-defined  The punch specification
  1698.             --  MAY be satisfied (in a site- and implementation-
  1699.             --  specific manner) either by drilling/punching, or by
  1700.             --  substituting pre-drilled media.
  1701.  
  1702.         cover(12),
  1703.             --  This value is specified when it is desired to select
  1704.             --  a non-printed (or pre-printed) cover for the
  1705.             --  document. This does not supplant the specification of
  1706.             --  a printed cover (on cover stock medium) by the
  1707.             --  document itself.
  1708.  
  1709.         bind(13)
  1710.             --  This value indicates that a binding is to be applied
  1711.             --  to the document; the type and placement of the
  1712.             --  binding is site-defined.
  1713.  
  1714.     }
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721. JmPrintQualityTC ::= TEXTUAL-CONVENTION
  1722.     STATUS      current
  1723.     DESCRIPTION
  1724.         "Print quality settings."
  1725.  
  1726.     -- This is a type 2 enumeration.  See Section 7.1 on page 22.
  1727.     SYNTAX      INTEGER {
  1728.         other(1),     --  Not one of the specified or registered
  1729.                       --  values.
  1730.         unknown(2),   --  The actual value is unknown.
  1731.         draft(3),     --  Lowest quality available on the printer.
  1732.         normal(4),    --  Normal or intermediate quality on the
  1733.  
  1734.  
  1735.  
  1736. Bergman, Hastings, Isaacson, Lewis                 [Page 29]
  1737.  
  1738.  
  1739.  
  1740.  
  1741.  
  1742.                           Job Monitoring MIB, V0.82     June 9, 1997
  1743.  
  1744.  
  1745.                       --  printer.
  1746.         high(5)       --  Highest quality available on the printer.
  1747.     }
  1748.  
  1749.  
  1750.  
  1751. JmPrinterResolutionTC ::= TEXTUAL-CONVENTION
  1752.     STATUS      current
  1753.     DESCRIPTION
  1754.         "Printer resolutions.
  1755.  
  1756.         The values are type2 enums that represent single integers or
  1757.         pairs of integers.  The latter are to specify the resolution
  1758.         when the x and y dimensions differ.  When two integers are
  1759.         specified, the first is in the x direction, i.e., in the
  1760.         direction of the shortest dimension of the medium, so that the
  1761.         value is independent of whether the printer feeds long edge or
  1762.         short edge first."
  1763.  
  1764.     -- This is a type 2 enumeration.  See Section 7.1 on page 22.
  1765.     SYNTAX      INTEGER {
  1766.         other(1),         --  Not one of the specified or registered
  1767.                           --  values.
  1768.         unknown(2),       --  The actual value is unknown.
  1769.         normal(3),        --  Normal resolution.
  1770.         res100(4),        --  100 x 100 dpi
  1771.         res200(5),        --  200 x 200 dpi
  1772.         res240(6),        -- 240 x 240 dpi
  1773.         res300(7),        -- 300 x 300 dpi
  1774.         res360(8),        -- 360 x 360 dpi
  1775.         res600(9),        -- 600 x 600 dpi
  1776.         res720(10),       -- 720 x 720 dpi
  1777.         res800(11),       -- 800 x 800 dpi
  1778.         res1200(12),      -- 1200 x 1200 dpi
  1779.         res1440(13),      -- 1440 x 1440 dpi
  1780.         res1800(14),      -- 1800 x 1800 dpi
  1781.         res100x200(15),   -- 100 x 200 dpi
  1782.         res300x600(16),   -- 300 x 600 dpi
  1783.         res600x300(17),   -- 600 x 300 dpi
  1784.         res360x720(18),   -- 360 x 720 dpi
  1785.         res720x360(19),   -- 720 x 360 dpi
  1786.         res400x800(20),   -- 400 x 800 dpi
  1787.         res800x400(21),   -- 800 x 400 dpi
  1788.         res600x1200(22),  -- 600 x 1200 dpi
  1789.         res1200x600(23),  -- 1200 x 600 dpi
  1790.         res720x1440(24),  -- 720 x 1440 dpi
  1791.         res1440x720(25),  -- 1440 x 720 dpi
  1792.         res1800x600(26)   -- 1800 x 600 dpi
  1793.  
  1794.  
  1795.  
  1796. Bergman, Hastings, Isaacson, Lewis                 [Page 30]
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.                           Job Monitoring MIB, V0.82     June 9, 1997
  1803.  
  1804.  
  1805.     }
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812. JmTonerEconomyTC ::= TEXTUAL-CONVENTION
  1813.     STATUS      current
  1814.     DESCRIPTION
  1815.         "Toner economy settings."
  1816.  
  1817.     -- This is a type 2 enumeration.  See Section 7.1 on page 22.
  1818.     SYNTAX      INTEGER {
  1819.         off(0),        --  Off.  Normal.  Use full toner.
  1820.         on(1)          --  On.  Use less toner than normal.
  1821.     }
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828. JmMediumTypeTC ::= TEXTUAL-CONVENTION
  1829.     STATUS      current
  1830.     DESCRIPTION
  1831.         "Identifies the type of medium."
  1832.  
  1833.     -- This is a type 2 enumeration.  See Section 7.1 on page 22.
  1834.     SYNTAX      INTEGER {
  1835.      other(1),
  1836.          -- The type is neither one of the values listed in this
  1837.          -- specification nor a registered value.
  1838.  
  1839.      unknown(2),
  1840.          -- The type is not known.
  1841.  
  1842.      stationery(3),
  1843.          -- Separately cut sheets of an opaque material.
  1844.  
  1845.      transparency(4),
  1846.          -- Separately cut sheets of a transparent material.
  1847.  
  1848.      envelope(5),
  1849.          -- Envelopes that can be used for conventional mailing
  1850.          -- purposes.
  1851.  
  1852.      envelopePlain(6),
  1853.  
  1854.  
  1855.  
  1856. Bergman, Hastings, Isaacson, Lewis                 [Page 31]
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.                           Job Monitoring MIB, V0.82     June 9, 1997
  1863.  
  1864.  
  1865.          -- Envelopes that are not preprinted and have no windows.
  1866.  
  1867.      envelopeWindow(7),
  1868.          -- Envelopes that have windows for addressing purposes.
  1869.  
  1870.      continuousLong(8),
  1871.          -- Continuously connected sheets of an opaque material
  1872.          -- connected along the long edge.
  1873.  
  1874.      continuousShort(9),
  1875.          -- Continuously connected sheets of an opaque material
  1876.          -- connected along the short edge.
  1877.  
  1878.      tabStock(10),
  1879.          -- Media with tabs.
  1880.  
  1881.      multiPartForm(11),
  1882.          -- Form medium composed of multiple layers not pre-attached
  1883.          -- to one another;  each sheet MAY be drawn separately from
  1884.          -- an input source.
  1885.  
  1886.      labels(12),
  1887.          -- Label-stock.
  1888.  
  1889.      multiLayer(13)
  1890.          -- Form medium composed of multiple layers which are pre-
  1891.          -- attached to one another, e.g. for use with impact
  1892.          -- printers.
  1893.  
  1894.     }
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901. JmJobStateTC ::= TEXTUAL-CONVENTION
  1902.     STATUS      current
  1903.     DESCRIPTION
  1904.         "The current state of the job (pending, processing, completed,
  1905.         etc.).
  1906.  
  1907.         The following figure shows the normal job state transitions:
  1908.  
  1909.                                                         +---->
  1910. canceled(7)
  1911.                                                        /
  1912.  
  1913.  
  1914.  
  1915.  
  1916. Bergman, Hastings, Isaacson, Lewis                 [Page 32]
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.                           Job Monitoring MIB, V0.82     June 9, 1997
  1923.  
  1924.  
  1925.     +----> pending(3) ---------> processing(5) -------+------>
  1926. completed(9)
  1927.     |         ^                       ^                \
  1928. --->+         |                       |                 +---->
  1929. aborted(8)
  1930.     |         v                       v                /
  1931.     +----> pendingHeld(4)    processingStopped(6) ----+
  1932.  
  1933.  
  1934.                 Figure 4 - Normal Job State Transitions
  1935.  
  1936.  
  1937.         Normally a job progresses from left to right.  Other state
  1938.         transitions are unlikely, but are not forbidden.  Not shown are
  1939.         the transitions to the canceled state from the pending,
  1940.         pendingHeld, processing, and processingStopped states.
  1941.  
  1942.         Jobs in the pending, processing, and processingStopped states
  1943.         are called 'active', while jobs in the pendingHeld, canceled,
  1944.         aborted, and completed are called 'in-active'."
  1945.  
  1946.     -- This is a type 2 enumeration.  See Section 7.1 on page 22.
  1947.     SYNTAX      INTEGER {
  1948.         other(1),
  1949.             -- The job state is not one of the defined states.
  1950.  
  1951.         unknown(2),
  1952.             -- The job state is not known, or its state is
  1953.             -- indeterminate.
  1954.  
  1955.         pending(3),
  1956.             -- The job is a candidate to start processing, but is
  1957.             -- not yet processing.
  1958.  
  1959.         pendingHeld(4),
  1960.             -- The job is not a candidate for processing for any
  1961.             -- number of reasons but will return to the pending
  1962.             -- state as soon as the reasons are no longer
  1963.             -- present.  The job's jmJobStateReasons1 object
  1964.             -- and/or jobStateReasonsn (n=2..4) attributes SHALL
  1965.             -- indicate why the job is no longer a candidate for
  1966.             -- processing.  The reasons are represented as bits
  1967.             -- in the jmJobStateReasons1 object and/or
  1968.             -- jobStateReasonsn (n=2..4) attributes.  See the
  1969.             -- JmJobStateReasonsnTC (n=1..4) textual convention
  1970.             -- on page (59) for the specification of each reason.
  1971.  
  1972.         processing(5),
  1973.  
  1974.  
  1975.  
  1976. Bergman, Hastings, Isaacson, Lewis                 [Page 33]
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.                           Job Monitoring MIB, V0.82     June 9, 1997
  1983.  
  1984.  
  1985.             -- Either:
  1986.             --
  1987.             -- 1.  The job is using, or is attempting to use, one
  1988.             -- or more document transforms which include (1)
  1989.             -- purely software processes that are interpreting a
  1990.             -- PDL, and (2) hardware devices that are
  1991.             -- interpreting a PDL, making marks on a medium,
  1992.             -- and/or performing finishing, such as stapling,
  1993.             -- etc.
  1994.             --
  1995.             -- OR
  1996.             --
  1997.             -- 2. (configuration 2) the server has made the job
  1998.             -- ready for printing, but the output device is not
  1999.             -- yet printing it, either because the job hasn't
  2000.             -- reached the output device or because the job is
  2001.             -- queued in the output device or some other spooler,
  2002.             -- awaiting the output device to print it.
  2003.             --
  2004.             -- When the job is in the processing state, the
  2005.             -- entire job state includes the detailed status
  2006.             -- represented in the device MIB indicated by the
  2007.             -- hrDeviceIndex value of the job's physicalDevice
  2008.             -- attribute, if the agent implements such a device
  2009.             -- MIB.
  2010.             --
  2011.             -- Implementations MAY, though they NEED NOT, include
  2012.             -- additional values in the job's jmJobStateReasons1
  2013.             -- object to indicate the progress of the job, such
  2014.             -- as adding the jobPrinting value to indicate when
  2015.             -- the device is actually making marks on a medium.
  2016.  
  2017.  
  2018.  
  2019.         processingStopped(6),
  2020.             -- The job has stopped while processing for any
  2021.             -- number of reasons and will return to the
  2022.             -- processing state as soon as the reasons are no
  2023.             -- longer present.
  2024.             --
  2025.             -- The job's jmJobStateReasons1 object and/or the
  2026.             -- job's jobStateReasonsn (n=2..4) attributes MAY
  2027.             -- indicate why the job has stopped processing.  For
  2028.             -- example, if the output device is stopped, the
  2029.             -- deviceStopped value MAY be included in the job's
  2030.             -- jmJobStateReasons1 object.
  2031.             --
  2032.             -- NOTE - When an output device is stopped, the
  2033.  
  2034.  
  2035.  
  2036. Bergman, Hastings, Isaacson, Lewis                 [Page 34]
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.                           Job Monitoring MIB, V0.82     June 9, 1997
  2043.  
  2044.  
  2045.             -- device usually indicate its condition in human
  2046.             -- readable form locally at the device.  The
  2047.             -- management application can obtain more complete
  2048.             -- device status remotely by querying the appropriate
  2049.             -- device MIB using the job's deviceIndex
  2050.             -- attribute(s), if the agent implements such a
  2051.             -- device MIB
  2052.  
  2053.         canceled(7),
  2054.             -- A client has canceled the job and the job is
  2055.             -- either: (1) in the process of being terminated by
  2056.             -- the server or device or (2) has completed
  2057.             -- terminating.  The job's jmJobStateReasons1 object
  2058.             -- SHOULD contain either the canceledByUser or
  2059.             -- canceledByOperator value.
  2060.  
  2061.         aborted(8),
  2062.             -- The job has been aborted by the system, usually
  2063.             -- while the job was in the processing or
  2064.             -- processingStopped state.
  2065.  
  2066.         completed(9)
  2067.             -- The job has completed successfully or with
  2068.             -- warnings or errors after processing and all of the
  2069.             -- media have been successfully stacked in the
  2070.             -- appropriate output bin(s).  The job's
  2071.             -- jmJobStateReasons1 object SHOULD contain one of:
  2072.             -- completedSuccessfully, completedWithWarnings, or
  2073.             -- completedWithErrors values.
  2074.  
  2075.     }
  2076.  
  2077.  
  2078.  
  2079. JmAttributeTypeTC ::= TEXTUAL-CONVENTION
  2080.     STATUS      current
  2081.     DESCRIPTION
  2082.         "The type of the attribute which identifies the attribute.
  2083.  
  2084.         Some attributes represent information about a job, such as a
  2085.         file-name, or a document-name, or submission-time or completion
  2086.         time.  Other attributes represent resources required, e.g., a
  2087.         medium or a colorant, etc. to process the job before the job
  2088.         start processing OR to indicate the amount of the resource that
  2089.         is being consumed while the job is processing, e.g., pages
  2090.         completed or impressions completed.  If both a required and a
  2091.         consumed value of a resource is needed, this specification
  2092.         assigns two separate attribute enums in the textual convention.
  2093.  
  2094.  
  2095.  
  2096. Bergman, Hastings, Isaacson, Lewis                 [Page 35]
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.                           Job Monitoring MIB, V0.82     June 9, 1997
  2103.  
  2104.  
  2105.  
  2106.         Most attributes apply to all three configurations covered by
  2107.         this MIB specification (see section 3 on page 14).  Those
  2108.         attribute that apply to a particular configuration are indicated
  2109.         as 'Configuration n:'.
  2110.  
  2111.         Conformance of Attribute Implementation
  2112.  
  2113.         A very few attributes are MANDATORY for conformance, and the
  2114.         rest are OPTIONAL.  An agent SHALL instrument any MANDATORY
  2115.         attribute.  If the server or device does not provide access to
  2116.         the information about the MANDATORY attribute, the agent SHALL
  2117.         return the 'unknown' value.  For attributes represented by a
  2118.         counting integer, the unknown value is (-2) and for attributes
  2119.         represented by an enum, the unknown value is (2), as in the
  2120.         Printer MIB[1].  For attributes represented by an OCTET STRING,
  2121.         the unknown value is a zero-length string, unless specified
  2122.         otherwise.
  2123.  
  2124.         The MANDATORY attributes are:
  2125.  
  2126.             jobOwner(20)
  2127.  
  2128.         The attributes not labeled as MANDATORY are OPTIONAL.  An agent
  2129.         MAY, but NEED NOT, implement any OPTIONAL attributes.
  2130.  
  2131.         NOTE - The table of contents lists all the attributes in order
  2132.         to help see the order of enum assignments which is the order
  2133.         that the GetNext operation can be used to get attributes.  The
  2134.         table of contents also indicates the MANDATORY attributes as:
  2135.         (MANDATORY).
  2136.  
  2137.         NOTE - The enum assignments are grouped logically with values
  2138.         assigned in groups of 20, so that additional values may be
  2139.         registered in the future and assigned a value that is part of
  2140.         their logical grouping.
  2141.  
  2142.         Datatypes and Attribute Naming Conventions
  2143.  
  2144.         The datatype of each attribute is indicated on the first line(s)
  2145.         of the description.  Some attributes have several different data
  2146.         type representations.  When the data types can be represented in
  2147.         a single row in the jmAttributeTable, the data type name is not
  2148.         included as the last part of the name of the attribute.  When
  2149.         the data types cannot be represented by a single row in the
  2150.         jmAttributeTable, each such representation is considered a
  2151.         separate attribute and is assigned a separate name and enum
  2152.         value.  For these attributes, the name of the datatype is the
  2153.  
  2154.  
  2155.  
  2156. Bergman, Hastings, Isaacson, Lewis                 [Page 36]
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.                           Job Monitoring MIB, V0.82     June 9, 1997
  2163.  
  2164.  
  2165.         last part of the name of the attribute: Name, Index,
  2166.         DateAndTime, TimeStamp, etc.
  2167.  
  2168.         NOTE: No attribute name exceeds 31 characters.
  2169.  
  2170.         Single-Value (Row) Versus Multi-Value (MULTI-ROW) Attributes
  2171.  
  2172.         Most attributes SHALL have only one row per job.  However, a few
  2173.         attributes can have multiple values per job or even per
  2174.         document, where each value is a separate row in the
  2175.         jmAttributeTable.  Unless indicated with 'MULTI-ROW:' in
  2176.         JmAttributeTypeTC, an agent SHALL ensure that each attribute
  2177.         item occurs only once in the jmAttributeTable for a job.
  2178.         Attributes that are permitted to appear multiple times in the
  2179.         jmAttributeTable for a job are indicated with 'MULTI-ROW:' in
  2180.         their specification in the JmAttributeTypeTC.  However, such
  2181.         'MULTI-ROW' attribute items SHALL not contain duplicates for
  2182.         'intensive' (as opposed to 'extensive') attributes.
  2183.  
  2184.                 For example, a job or document(s) may use multiple PDLs.
  2185.                 However, each distinct documentFormat attribute value
  2186.                 SHALL appear in the jmAttributeTable only once for a job
  2187.                 since the interpreter language is an intensive attribute
  2188.                 item, even though the job has a number of documents that
  2189.                 all use the same PDL.
  2190.  
  2191.                 As another example of an intensive attribute that can
  2192.                 have multiple entries, if a document or job uses
  2193.                 multiple types of media, there SHALL be only one row in
  2194.                 the jmAttributeTable for each media type, not one row
  2195.                 for each document that uses that medium type.
  2196.  
  2197.                 On the other hand, if a job contains two documents of
  2198.                 the same name, there can be separate rows for the
  2199.                 documentName attribute item with the same name, since a
  2200.                 document name is an extensive attribute item.  The
  2201.                 specification indicates that the values NEED NOT be
  2202.                 unique for such 'MULTI-ROW: attributes'
  2203.  
  2204.         Value Represented As Integer Or Octets
  2205.  
  2206.         In the following definitions of the enums, each description
  2207.         indicates whether the value of the attribute SHALL be
  2208.         represented using the jmAttributeValueAsInteger or the
  2209.         jmAttributeValueAsOctets objects by the initial tag: 'INTEGER:'
  2210.         or 'OCTETS:', respectively.  Some attributes allow the agent a
  2211.         choice of either an integer and/or an octets representation,
  2212.         depending on implementation.  These attributes are indicated
  2213.  
  2214.  
  2215.  
  2216. Bergman, Hastings, Isaacson, Lewis                 [Page 37]
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.                           Job Monitoring MIB, V0.82     June 9, 1997
  2223.  
  2224.  
  2225.         with 'INTEGER:' and/or 'OCTETS:' tags.  A very few attributes
  2226.         require both objects at the same time to represent a pair of
  2227.         values (see mediumConsumed(171)).  These attributes are
  2228.         indicated with 'INTEGER:' and/or 'OCTETS:' tags.  See the
  2229.         jmAttributeGroup starting on page 81 for the descriptions of
  2230.         these objects.
  2231.  
  2232.         Consumption Attributes
  2233.  
  2234.         A number of attributes record consumption.  Such attribute names
  2235.         end with the word 'Completed' or 'Consumed'.  If the job has not
  2236.         yet consumed what that resource is metering, the agent either:
  2237.         (1) SHALL return the value 0 or (2) SHALL not add this attribute
  2238.         to the jmAttributeTable until the consumption begins.  In the
  2239.         interests of brevity, the semantics for 0 is specified once here
  2240.         and is not repeated for each xxxxYyyyCompleted and
  2241.         xxxxYyyyConsumed attribute specification.
  2242.  
  2243.         Index Value Attributes
  2244.  
  2245.         A number of attributes are indexes in other tables.  Such
  2246.         attribute names end with the word 'Index'.  If the agent does
  2247.         not (yet) know the index value for a particular index attribute
  2248.         for a job, the agent either: (1) SHALL return the value 0 or (2)
  2249.         SHALL not add this attribute to the jmAttributeTable until the
  2250.         index value is known.  In the interests of brevity, the
  2251.         semantics for 0 is specified once here and is not repeated for
  2252.         each index attribute specification.
  2253.  
  2254.  
  2255.         The standard attribute types defined so far are:"
  2256.  
  2257.     -- This is a type 2 enumeration.  See Section 7.1 on page 22.
  2258.     SYNTAX      INTEGER {
  2259.      -- jmAttributeTypeIndex             Datatype
  2260.          -- Description - including 'OCTETS:' or 'INTEGER:' to
  2261.          -- specify whether the value SHALL be represented in the
  2262.          -- jmAttributeValueAsOctets or the jmAttributeValueAsInteger
  2263.          -- object, or both, respectively.
  2264.  
  2265.      other(1),                        -- Integer32(-2..2147483647)
  2266.                                       -- AND/OR
  2267.                                       -- OCTET STRING(SIZE(0..63))
  2268.          -- INTEGER:  and/or  OCTETS:  An attribute that is not in
  2269.          -- the list and/or that has not been approved and registered
  2270.          -- with IANA.
  2271.  
  2272.      unknown(2),                      -- Integer32(-2..2147483647)
  2273.  
  2274.  
  2275.  
  2276. Bergman, Hastings, Isaacson, Lewis                 [Page 38]
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.                           Job Monitoring MIB, V0.82     June 9, 1997
  2283.  
  2284.  
  2285.                                       -- OR
  2286.                                       -- OCTET STRING(SIZE(0..63))
  2287.          -- INTEGER:  or  OCTETS:  An attribute whose semantics are
  2288.          -- not known to the agent.
  2289.  
  2290.  
  2291.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2292.      -- Job State attributes
  2293.      --
  2294.      -- The following attributes specify the state of a job.
  2295.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.      jobStateReasons2(3),             -- JmJobStateReasons2TC (pg 62)
  2304.          -- INTEGER:  Additional information about the job's current
  2305.          -- state that augments the jmJobState object.  See the
  2306.          -- description under the JmJobStateReasons1TC textual-
  2307.          -- convention on page 59.
  2308.  
  2309.      jobStateReasons3(4),             -- JmJobStateReasons3TC (pg 66)
  2310.          -- INTEGER:  Additional information about the job's current
  2311.          -- state that augments the jmJobState object.  See the
  2312.          -- description under JmJobStateReasons1TC textual-convention
  2313.          -- on page 59.
  2314.  
  2315.      jobStateReasons4(5),             -- JmJobStateReasons4TC (pg 67)
  2316.          -- INTEGER:  Additional information about the job's current
  2317.          -- state that augments the jmJobState object.  See the
  2318.          -- description under JmJobStateReasons1TC textual-convention
  2319.          -- on page 59.
  2320.  
  2321.  
  2322.  
  2323.      deviceAlertCode(6),              -- PrtAlertCodeTC (Printer-MIB)
  2324.          -- INTEGER:  The device alert code when the job is stopped
  2325.          -- because the device needs attention, i.e., needs human
  2326.          -- intervention.  When the device is a printer, this device
  2327.          -- alert code SHALL be the printer alert code defined by the
  2328.          -- Printer MIB[1] using the PrtAlertCodeTC textual
  2329.          -- convention or equivalent.
  2330.  
  2331.      processingMessage(7),            -- OCTET STRING(SIZE(0..63))
  2332.          -- OCTETS:  MULTI-ROW:  A coded character set message that
  2333.  
  2334.  
  2335.  
  2336. Bergman, Hastings, Isaacson, Lewis                 [Page 39]
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.                           Job Monitoring MIB, V0.82     June 9, 1997
  2343.  
  2344.  
  2345.          -- is generated during the processing of the job as a simple
  2346.          -- form of processing log to show progress and any problems.
  2347.          --
  2348.          -- There is no restriction on the same message in multiple
  2349.          -- rows.
  2350.  
  2351.  
  2352.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2353.      -- Job Identification attributes
  2354.      --
  2355.      -- The following attributes help an end user, a system
  2356.      -- operator, or an accounting program identify a job.
  2357.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2358.  
  2359.      jobOwner(20),                    -- OCTET STRING(SIZE(0..63))
  2360.                                       -- (MANDATORY)
  2361.          -- OCTETS:  The coded character set name of the user that
  2362.          -- submitted the job.  The method of assigning this user
  2363.          -- name will be system and/or site specific but the method
  2364.          -- must insure that the name is unique to the network that
  2365.          -- is visible to the client and target device.
  2366.          --
  2367.          -- This value SHOULD be the authenticated name of the user
  2368.          -- submitting the job.
  2369.          --
  2370.          -- In order to assist users to find their jobs for job
  2371.          -- submission protocols that don't supply a
  2372.          -- jmJobSubmissionID, the agent SHOULD maintain the jobOwner
  2373.          -- attribute for the time specified by the
  2374.          -- jmGeneralJobPersistence object, rather than the (shorter)
  2375.          -- jmGeneralAttributePersistence object.
  2376.  
  2377.      jobAccountName(21),              -- OCTET STRING(SIZE(0..63))
  2378.          -- OCTETS:  Arbitrary binary information which MAY be coded
  2379.          -- character set data or encrypted data supplied by the
  2380.          -- submitting user for use by accounting services to
  2381.          -- allocate or categorize charges for services provided,
  2382.          -- such as a customer account name.
  2383.          --
  2384.          -- NOTE: This attribute NEED NOT be printable characters.
  2385.  
  2386.      serverAssignedJobName(22),       -- OCTET STRING(SIZE(0..63))
  2387.          -- OCTETS:  Configuration 3 only:  The human readable string
  2388.          -- name of the job as assigned by the server that submitted
  2389.          -- the job to the device that the agent in instrumenting
  2390.          -- with this MIB.
  2391.          --
  2392.          -- NOTE - This attribute is intended for enabling a user to
  2393.  
  2394.  
  2395.  
  2396. Bergman, Hastings, Isaacson, Lewis                 [Page 40]
  2397.  
  2398.  
  2399.  
  2400.  
  2401.  
  2402.                           Job Monitoring MIB, V0.82     June 9, 1997
  2403.  
  2404.  
  2405.          -- find his/her job that a server submitted to a device
  2406.          -- after the user submitted the job to the server when the
  2407.          -- jmJobSubmissionID is not supported by the job submission
  2408.          -- protocol.
  2409.  
  2410.      jobName(23),                     -- OCTET STRING(SIZE(0..63))
  2411.          -- OCTETS:  The human readable string name of the job as
  2412.          -- assigned by the submitting user to help the user
  2413.          -- distinguish between his/her various jobs.  This name does
  2414.          -- not need to be unique.
  2415.          --
  2416.          -- This attribute is intended for enabling a user or the
  2417.          -- user's application to convey a job name that MAY be
  2418.          -- printed on a start sheet, returned in a query result, or
  2419.          -- used in notification or logging messages.
  2420.          --
  2421.          -- In order to assist users to find their jobs for job
  2422.          -- submission protocols that don't supply a
  2423.          -- jmJobSubmissionID, the agent SHOULD maintain the jobName
  2424.          -- attribute for the time specified by the
  2425.          -- jmGeneralJobPersistence object, rather than the (shorter)
  2426.          -- jmGeneralAttributePersistence object.
  2427.          --
  2428.          -- If this attribute is not specified when the job is
  2429.          -- submitted, no job name is assumed, but implementation
  2430.          -- specific defaults are allowed, such as the value of the
  2431.          -- documentName attribute of the first document in the job
  2432.          -- or the fileName attribute of the first document in the
  2433.          -- job.
  2434.          --
  2435.          -- The jobName attribute is distinguished from the
  2436.          -- jobComment attribute, in that the jobName attribute is
  2437.          -- intended to permit the submitting user to distinguish
  2438.          -- between different jobs that he/she has submitted.  The
  2439.          -- jobComment attribute is intended to be free form
  2440.          -- additional information that a user might wish to use to
  2441.          -- communicate with himself/herself, such as a reminder of
  2442.          -- what to do with the results or to indicate a different
  2443.          -- set of input parameters were tried in several different
  2444.          -- job submissions.
  2445.  
  2446.      jobServiceTypes(24),             -- JmJobServiceTypesTC (pg 57)
  2447.          -- INTEGER:  Specifies the type(s) of service to which the
  2448.          -- job has been submitted (print, fax, scan, etc.).  The
  2449.          -- service type is bit encoded with each job service type so
  2450.          -- that more general and arbitrary services can be created,
  2451.          -- such as services with more than one destination type, or
  2452.          -- ones with only a source or only a destination.  For
  2453.  
  2454.  
  2455.  
  2456. Bergman, Hastings, Isaacson, Lewis                 [Page 41]
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.                           Job Monitoring MIB, V0.82     June 9, 1997
  2463.  
  2464.  
  2465.          -- example, a job service might scan, faxOut, and print a
  2466.          -- single job.  In this case, three bits would be set in the
  2467.          -- jobServiceTypes attribute, corresponding to the
  2468.          -- hexadecimal values: 0x8 + 0x20 + 0x4, respectively,
  2469.          -- yielding: 0x2C.
  2470.          --
  2471.          -- Whether this attribute is set from a job attribute
  2472.          -- supplied by the job submission client or is set by the
  2473.          -- recipient job submission server or device depends on the
  2474.          -- job submission protocol.  This attribute SHALL be
  2475.          -- implemented if the server or device has other types in
  2476.          -- addition to or instead of printing.
  2477.          --
  2478.          -- One of the purposes of this attribute is to permit a
  2479.          -- requester to filter out jobs that are not of interest.
  2480.          -- For example, a printer operator may only be interested in
  2481.          -- jobs that include printing.  That is why this attribute
  2482.          -- is in the job identification category.
  2483.  
  2484.      jobSourceChannelIndex(25),       -- Integer32(0..2147483647)
  2485.          -- INTEGER:  The index of the row in the associated Printer
  2486.          -- MIB[1] of the channel which is the source of the print
  2487.          -- job.
  2488.          --
  2489.          -- NOTE - the Job Monitoring MIB points to the Channel row
  2490.          -- in the Printer MIB[1], so there is no need for a port
  2491.          -- attribute in the Job Monitoring MIB, since the PWG is
  2492.          -- adding a prtChannelInformation object to the Channel
  2493.          -- table of the draft Printer MIB.
  2494.  
  2495.      jobSourcePlatformType(26),       -- JmJobSourcePlatformTypeTC
  2496.                                       -- (pg 27)
  2497.          -- INTEGER:  The source platform type of the immediate
  2498.          -- upstream submitter that submitted the job to the server
  2499.          -- (configuration 2) or device (configuration 1 and 3) that
  2500.          -- the agent is instrumenting.  For configuration 1, this is
  2501.          -- the type of the client that submitted the job to the
  2502.          -- device;  for configuration 2, this is the type of the
  2503.          -- client that submitted the job to the server; and for
  2504.          -- configuration 3, this is the type of the server that
  2505.          -- submitted the job to the device.
  2506.  
  2507.      submittingServerName(27),        -- OCTET STRING(SIZE(0..63))
  2508.          -- OCTETS:  For configuration 3 only:  The administrative
  2509.          -- name of the server that submitted the job to the device.
  2510.  
  2511.      submittingApplicationName(28),   -- OCTET STRING(SIZE(0..63))
  2512.          -- OCTETS:  The name of the client application (not the
  2513.  
  2514.  
  2515.  
  2516. Bergman, Hastings, Isaacson, Lewis                 [Page 42]
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.                           Job Monitoring MIB, V0.82     June 9, 1997
  2523.  
  2524.  
  2525.          -- server in configuration 3) that submitted the job to the
  2526.          -- server or device.
  2527.  
  2528.      jobOriginatingHost(29),          -- OCTET STRING(SIZE(0..63))
  2529.          -- OCTETS:  The name of the client host (not the server host
  2530.          -- name in configuration 3) that submitted the job to the
  2531.          -- server or device.
  2532.  
  2533.      deviceNameRequested(30),         -- OCTET STRING(SIZE(0..63))
  2534.          -- OCTETS:  The administratively defined coded character set
  2535.          -- name of the target device requested by the submitting
  2536.          -- user.  For configuration 1, its value corresponds to the
  2537.          -- Printer MIB[1]: prtGeneralPrinterName object (added to
  2538.          -- the draft Printer MIB) for printers.  For configuration 2
  2539.          -- and 3, its value is the name of the logical or physical
  2540.          -- device that the user supplied to indicate to the server
  2541.          -- on which device(s) they wanted the job to be processed.
  2542.  
  2543.      queueNameRequested(31),          -- OCTET STRING(SIZE(0..63))
  2544.          -- OCTETS:  The administratively defined coded character set
  2545.          -- name of the target queue requested by the submitting
  2546.          -- user.  For configuration 1, its value corresponds to the
  2547.          -- queue in the device that the agent is instrumenting.  For
  2548.          -- configuration 2 and 3, its value is the name of the queue
  2549.          -- that the user supplied to indicate to the server on which
  2550.          -- device(s) they wanted the job to be processed.
  2551.          --
  2552.          -- NOTE - typically an implementation SHOULD support either
  2553.          -- the deviceNameRequested or queueNameRequested attribute,
  2554.          -- but not both.
  2555.  
  2556.      physicalDevice(32),              -- hrDeviceIndex (see HR MIB)
  2557.                                       -- AND/OR
  2558.                                       -- OCTET STRING(SIZE(0..63))
  2559.          -- INTEGER:  MULTI-ROW:  The index of the physical device
  2560.          -- MIB instance requested/used, such as the Printer MIB[1].
  2561.          -- This value is an hrDeviceIndex value.  See the Host
  2562.          -- Resources MIB[6].
  2563.          -- AND/OR
  2564.          -- OCTETS:  MULTI-ROW:  The name of the physical device to
  2565.          -- which the job is assigned.
  2566.  
  2567.  
  2568.  
  2569.      numberOfDocuments(33),           -- Integer32(0..2147483647)
  2570.          -- INTEGER:  The number of documents in this job.  If this
  2571.          -- attribute is not present, the number of documents SHALL
  2572.          -- be 1.
  2573.  
  2574.  
  2575.  
  2576. Bergman, Hastings, Isaacson, Lewis                 [Page 43]
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.                           Job Monitoring MIB, V0.82     June 9, 1997
  2583.  
  2584.  
  2585.  
  2586.      fileName(34),                    -- OCTET STRING(SIZE(0..63))
  2587.          -- OCTETS:  MULTI-ROW:  The coded character set file name of
  2588.          -- the document.
  2589.          --
  2590.          -- There is no restriction on the same file name in multiple
  2591.          -- rows.
  2592.  
  2593.      documentName(35),                -- OCTET STRING(SIZE(0..63))
  2594.          -- OCTETS:  MULTI-ROW:  The coded character set name of the
  2595.          -- document.
  2596.          --
  2597.          -- There is no restriction on the same document name in
  2598.          -- multiple rows.
  2599.  
  2600.      jobComment(36),                  -- OCTET STRING(SIZE(0..63))
  2601.          -- OCTETS:  An arbitrary human-readable coded character text
  2602.          -- string supplied by the submitting user or the job
  2603.          -- submitting application program for any purpose.  For
  2604.          -- example, a user might indicate what he/she is going to do
  2605.          -- with the printed output or the job submitting application
  2606.          -- program might indicate how the document was produced.
  2607.          --
  2608.          -- The jobComment attribute is not intended to be a name;
  2609.          -- see the jobName attribute.
  2610.  
  2611.      documentFormatIndex(37),         -- Integer32(0..2147483647)
  2612.          -- INTEGER:  MULTI-ROW:  The index in the
  2613.          -- prtInterpreterTable in the Printer MIB[1] of the page
  2614.          -- description language (PDL) or control language
  2615.          -- interpreter that this job requires/uses.  A document or a
  2616.          -- job MAY use more than one PDL or control language.
  2617.          --
  2618.          -- NOTE - As with all intensive attribute items where
  2619.          -- multiple rows are allowed, there SHALL be only one
  2620.          -- distinct row for each distinct interpreter; there SHALL
  2621.          -- be no duplicates.
  2622.          --
  2623.          -- NOTE - This attribute type is intended to be used with an
  2624.          -- agent that implements the Printer MIB and SHALL not be
  2625.          -- used if the agent does not implement the Printer MIB.
  2626.          -- Such an agent SHALL use the documentFormat attribute
  2627.          -- instead.
  2628.  
  2629.      documentFormat(38),              -- PrtInterpreterLangFamilyTC
  2630.                                       -- AND/OR
  2631.                                       -- OCTET STRING(SIZE(0..63))
  2632.          -- INTEGER:  MULTI-ROW:  The interpreter language family
  2633.  
  2634.  
  2635.  
  2636. Bergman, Hastings, Isaacson, Lewis                 [Page 44]
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.                           Job Monitoring MIB, V0.82     June 9, 1997
  2643.  
  2644.  
  2645.          -- corresponding to the Printer MIB[1]
  2646.          -- prtInterpreterLangFamily object, that this job
  2647.          -- requires/uses.  A document or a job MAY use more than one
  2648.          -- PDL or control language.
  2649.          --
  2650.          -- NOTE - This attribute is represented by a type 2 enum
  2651.          -- defined in the draft Printer MIB[1], but is not in RFC
  2652.          -- 1759.
  2653.          --
  2654.          -- AND/OR
  2655.          --
  2656.          -- OCTETS:  MULTI-ROW:  The document format registered as a
  2657.          -- MIME type, i.e., the name of the MIME type.
  2658.          --
  2659.          -- NOTE - IPP[3] uses MIME type keywords to identify
  2660.          -- document formats.
  2661.  
  2662.  
  2663.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2664.      -- Job Parameter attributes
  2665.      --
  2666.      -- The following attributes represent input parameters
  2667.      -- supplied by the submitting client in the job submission
  2668.      -- protocol.
  2669.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2670.  
  2671.      jobPriority(50),                 -- Integer32(1..100)
  2672.          -- INTEGER:  The priority for scheduling the job. It is used
  2673.          -- by servers and devices that employ a priority-based
  2674.          -- scheduling algorithm.
  2675.          --
  2676.          -- A higher value specifies a higher priority. The value 1
  2677.          -- is defined to indicate the lowest possible priority (a
  2678.          -- job which a priority-based scheduling algorithm SHALL
  2679.          -- pass over in favor of higher priority jobs). The value
  2680.          -- 100 is defined to indicate the highest possible priority.
  2681.          -- Priority is expected to be evenly or 'normally'
  2682.          -- distributed across this range. The mapping of vendor-
  2683.          -- defined priority over this range is implementation-
  2684.          -- specific.
  2685.  
  2686.      jobProcessAfterDateAndTime(51),  -- DateAndTime (SNMPv2-TC)
  2687.          -- INTEGER:  The calendar date and time of day after which
  2688.          -- the job SHALL become a candidate to be scheduled for
  2689.          -- processing.  If the value of this attribute is in the
  2690.          -- future, the server SHALL set the value of the job's
  2691.          -- jmJobState object to pendingHeld and add the
  2692.          -- jobProcessAfterSpecified bit value to the job's
  2693.  
  2694.  
  2695.  
  2696. Bergman, Hastings, Isaacson, Lewis                 [Page 45]
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.                           Job Monitoring MIB, V0.82     June 9, 1997
  2703.  
  2704.  
  2705.          -- jmJobStateReasons1 object and SHALL not schedule the job
  2706.          -- for processing until the specified date and time has
  2707.          -- passed.  When the specified date and time arrives, the
  2708.          -- server SHALL remove the jobProcessAfterSpecified bit
  2709.          -- value from the job's jmJobStateReasons1 object and, if no
  2710.          -- other reasons remain, SHALL change the job's jmJobState
  2711.          -- object to pending so that the job becomes a candidate for
  2712.          -- being scheduled on devices(s).
  2713.          --
  2714.          -- The agent SHALL assign an empty value to the
  2715.          -- jobProcessAfterDateAndTime attribute when no process
  2716.          -- after time has been specified, so that the job SHALL be a
  2717.          -- candidate for processing immediately.
  2718.          --
  2719.      jobHold(52),                     -- Integer32(0..1)
  2720.          -- INTEGER:  If the value is 1, a client has explicitly
  2721.          -- specified that the job is to be held until explicitly
  2722.          -- released.  Until the job is explicitly released by a
  2723.          -- client, the job SHALL be in the pendingHeld state with
  2724.          -- the jobHoldSpecified value in the jmJobStateReasons1
  2725.          -- attribute.
  2726.  
  2727.      jobHoldUntil(53),                -- OCTET STRING(SIZE(0..63))
  2728.          -- OCTETS:  The named time period during which the job SHALL
  2729.          -- become a candidate for processing, such as 'no-hold',
  2730.          -- 'evening', 'night', 'weekend', 'second-shift', 'third-
  2731.          -- shift', etc., as defined by the system administrator.
  2732.          -- Until that time period arrives, the job SHALL be in the
  2733.          -- pendingHeld state with the jobHoldUntilSpecified value in
  2734.          -- the jmJobStateReasons1 object.
  2735.  
  2736.      outputBin(54),                   -- Integer32(0..2147483647)
  2737.                                       -- AND/OR
  2738.                                       -- OCTET STRING(SIZE(0..63))
  2739.          -- INTEGER:  MULTI-ROW:  The output subunit index in the
  2740.          -- Printer MIB[1]
  2741.          -- AND/OR
  2742.          -- OCTETS:  the name of the output bin to which all or part
  2743.          -- of the job is placed in.
  2744.  
  2745.  
  2746.  
  2747.      sides(55),                       -- Integer32(-2..1)
  2748.          -- INTEGER:  MULTI-ROW:  The number of sides that any
  2749.          -- document in this job requires/used.
  2750.  
  2751.      finishing(56),                   -- JmFinishingTC (pg 28)
  2752.          -- INTEGER:  MULTI-ROW:  Type of finishing that any document
  2753.  
  2754.  
  2755.  
  2756. Bergman, Hastings, Isaacson, Lewis                 [Page 46]
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.                           Job Monitoring MIB, V0.82     June 9, 1997
  2763.  
  2764.  
  2765.          -- in this job requires/used.
  2766.  
  2767.  
  2768.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2769.      -- Image Quality attributes (requested and consumed)
  2770.      --
  2771.      -- For devices that can vary the image quality.
  2772.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2773.  
  2774.      printQualityRequested(70),       -- JmPrintQualityTC (pg 29)
  2775.          -- INTEGER:  MULTI-ROW:  The print quality selection
  2776.          -- requested for document in the job for printers that allow
  2777.          -- quality differentiation.
  2778.  
  2779.      printQualityUsed(71),            -- JmPrintQualityTC (pg 29)
  2780.          -- INTEGER:  MULTI-ROW:  The print quality selection
  2781.          -- actually used by documents in the job for printers that
  2782.          -- allow quality differentiation.
  2783.  
  2784.      printerResolutionRequested(72),  -- JmPrinterResolutionTC
  2785.                                       -- (pg 30)
  2786.          -- INTEGER:  MULTI-ROW:  The print quality selection
  2787.          -- requested for document in the job for printers that allow
  2788.          -- quality differentiation.
  2789.  
  2790.      printerResolutionUsed(73),       -- JmPrinterResolutionTC
  2791.                                       -- (pg 30)
  2792.          -- INTEGER:  MULTI-ROW:  The print quality selection
  2793.          -- actually used by documents in the job for printers that
  2794.          -- allow quality differentiation.
  2795.  
  2796.      tonerEcomonyRequested(74),       -- JmTonerEconomyTC (pg 31)
  2797.          -- INTEGER:  MULTI-ROW:  The print quality selection
  2798.          -- requested for documents in the job for printers that
  2799.          -- allow toner quality differentiation.
  2800.  
  2801.      tonerEcomonyUsed(75),            -- JmTonerEconomyTC (pg 31)
  2802.          -- INTEGER:  MULTI-ROW:  The print quality selection
  2803.          -- actually used by documents in the job for printers that
  2804.          -- allow toner quality differentiation.
  2805.  
  2806.      tonerDensityRequested(76),       -- Integer32(1..20)
  2807.          -- INTEGER:  MULTI-ROW:  The toner density requested for
  2808.          -- documents in this job for devices that can vary toner
  2809.          -- density levels.  Level 1 is the lowest density and level
  2810.          -- 20 is the highest density level.  Devices with a smaller
  2811.          -- range, SHALL map the 1-20 range evenly onto the
  2812.          -- implemented range.
  2813.  
  2814.  
  2815.  
  2816. Bergman, Hastings, Isaacson, Lewis                 [Page 47]
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.                           Job Monitoring MIB, V0.82     June 9, 1997
  2823.  
  2824.  
  2825.  
  2826.      tonerDensityUsed(77),            -- Integer32(1..20)
  2827.          -- INTEGER:  MULTI-ROW:  The toner density used by documents
  2828.          -- in this job for devices that can vary toner density
  2829.          -- levels.  Level 1 is the lowest density and level 20 is
  2830.          -- the highest density level.  Devices with a smaller range,
  2831.          -- SHALL map the 1-20 range evenly onto the implemented
  2832.          -- range.
  2833.  
  2834.  
  2835.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2836.      -- Job Progress attributes (requested and consumed)
  2837.      --
  2838.      -- Pairs of these attributes can be used by monitoring
  2839.      -- applications to show 'thermometers' of progress to users.
  2840.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2841.  
  2842.      jobCopiesRequested(90),          -- Integer32(-2..2147483647)
  2843.          -- INTEGER:  The number of copies of the entire job that are
  2844.          -- to be produced.
  2845.  
  2846.      jobCopiesCompleted(91),          -- Integer32(-2..2147483647)
  2847.          -- INTEGER:  The number of copies of the entire job that
  2848.          -- have been completed so far.
  2849.  
  2850.      documentCopiesRequested(92),     -- Integer32(-2..2147483647)
  2851.          -- INTEGER:  The total count of the number of document
  2852.          -- copies requested.  If there are documents A, B, and C,
  2853.          -- and document B is specified to produce 4 copies, the
  2854.          -- number of document copies requested is 6 for the job.
  2855.          --
  2856.          -- This attribute SHALL be used only when a job has multiple
  2857.          -- documents.  The jobCopiesRequested attribute SHALL be
  2858.          -- used when the job has only one document.
  2859.  
  2860.      documentCopiesCompleted(93),     -- Integer32(-2..2147483647)
  2861.          -- INTEGER:  The total count of the number of document
  2862.          -- copies completed so far for the job as a whole.  If there
  2863.          -- are documents A, B, and C, and document B is specified to
  2864.          -- produce 4 copies, the number of document copies starts a
  2865.          -- 0 and runs up to 6 for the job as the job processes.
  2866.          --
  2867.          -- This attribute SHALL be used only when a job has multiple
  2868.          -- documents.  The jobCopiesCompleted attribute SHALL be
  2869.          -- used when the job has only one document.
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876. Bergman, Hastings, Isaacson, Lewis                 [Page 48]
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.                           Job Monitoring MIB, V0.82     June 9, 1997
  2883.  
  2884.  
  2885.      jobKOctetsTransferred(94),       -- Integer32(-2..2147483647)
  2886.          -- INTEGER:  The number of K (1024) octets transferred to
  2887.          -- the server or device that the agent is instrumenting.
  2888.          -- This count is independent of the number of copies of the
  2889.          -- job or documents that will be produced, but is just a
  2890.          -- measure of the number of bytes transferred to the server
  2891.          -- or device.
  2892.          --
  2893.          -- The agent SHALL round the actual number of octets
  2894.          -- transferred up to the next higher K.  Thus 0 octets SHALL
  2895.          -- be represented as 0, 1-1024 octets SHALL BE represented
  2896.          -- as 1, 1025-2048 SHALL be 2, etc.  When the job completes,
  2897.          -- the values of the jmJobKOctetsRequested object and the
  2898.          -- jobKOctetsTransferred attribute SHALL be equal.
  2899.          --
  2900.          -- NOTE - The jobKOctetsTransferred can be used in the
  2901.          -- numerator with the jmJobKOctetsRequested object in the
  2902.          -- denominator in order to produce a "thermometer" that
  2903.          -- indicates the progress of the job for agents that do not
  2904.          -- implement the jmJobKOctetsProcessed object.
  2905.  
  2906.  
  2907.  
  2908.  
  2909.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2910.      -- Impression attributes
  2911.      --
  2912.      -- For a print job, an impression is the marking of the
  2913.      -- entire side of a sheet.  Two-sided processing involves two
  2914.      -- impressions per sheet.  Two-up is the placement of two
  2915.      -- logical pages on one side of a sheet and so is still a
  2916.      -- single impression.  See also jmJobImpressionsRequested and
  2917.      -- jmJobImpressionsCompleted objects in the jmJobTable on page
  2918.      -- 80.
  2919.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2920.  
  2921.      impressionsSpooled(110),         -- Integer32(-2..2147483647)
  2922.          -- INTEGER:  The number of impressions spooled to the server
  2923.          -- or device for the job so far.
  2924.  
  2925.      impressionsSentToDevice(111),    -- Integer32(-2..2147483647)
  2926.          -- INTEGER:  The number of impressions sent to the device
  2927.          -- for the job so far.
  2928.  
  2929.      impressionsInterpreted(112),     -- Integer32(-2..2147483647)
  2930.          -- INTEGER:  The number of impressions interpreted for the
  2931.          -- job so far.
  2932.  
  2933.  
  2934.  
  2935.  
  2936. Bergman, Hastings, Isaacson, Lewis                 [Page 49]
  2937.  
  2938.  
  2939.  
  2940.  
  2941.  
  2942.                           Job Monitoring MIB, V0.82     June 9, 1997
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.      impressionsCompletedCurrentCopy(113),  -- Integer32(-2..
  2950.                                             -- 2147483647)
  2951.          -- INTEGER:  The number of impressions completed by the
  2952.          -- device for the current copy of the current document so
  2953.          -- far.  For printing, the impressions completed includes
  2954.          -- interpreting, marking, and stacking the output.  For
  2955.          -- other types of job services, the number of impressions
  2956.          -- completed includes the number of impressions processed.
  2957.          --
  2958.          -- This value SHALL be reset to 0 for each document in the
  2959.          -- job and for each document copy.
  2960.  
  2961.      fullColorImpressionsCompleted(114),  -- Integer32(-2..
  2962.                                           -- 2147483647)
  2963.          -- INTEGER:  The number of full color impressions completed
  2964.          -- by the device for this job so far.  For printing, the
  2965.          -- impressions completed includes interpreting, marking, and
  2966.          -- stacking the output.  For other types of job services,
  2967.          -- the number of impressions completed includes the number
  2968.          -- of impressions processed. Full color impressions are
  2969.          -- typically defined as those requiring 3 or more colorants,
  2970.          -- but this MAY vary by implementation.
  2971.          --
  2972.      highlightColorImpressionsCompleted(115),  --  Integer32(-2..
  2973.                                                --  2147483647)
  2974.          -- INTEGER:  The number of highlight color impressions
  2975.          -- completed by the device for this job so far.  For
  2976.          -- printing, the impressions completed includes
  2977.          -- interpreting, marking, and stacking the output.  For
  2978.          -- other types of job services, the number of impressions
  2979.          -- completed includes the number of impressions processed.
  2980.          -- Highlight color impressions are typically defined as
  2981.          -- those requiring black plus one other colorant, but this
  2982.          -- MAY vary by implementation.
  2983.  
  2984.  
  2985.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2986.      -- Page attributes
  2987.      --
  2988.      -- A page is a logical page.  Number up can impose more than
  2989.      -- one page on a single side of a sheet.  Two-up is the
  2990.      -- placement of two logical pages on one side of a sheet so
  2991.      -- that each side counts as two pages.
  2992.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2993.  
  2994.  
  2995.  
  2996. Bergman, Hastings, Isaacson, Lewis                 [Page 50]
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.                           Job Monitoring MIB, V0.82     June 9, 1997
  3003.  
  3004.  
  3005.  
  3006.      pagesRequested(130),             -- Integer32(-2..2147483647)
  3007.          -- INTEGER:  The number of logical pages requested by the
  3008.          -- job to be processed.
  3009.  
  3010.      pagesCompleted(131),             -- Integer32(-2..2147483647)
  3011.          -- INTEGER:  The number of logical pages completed for this
  3012.          -- job so far.
  3013.  
  3014.      pagesCompletedCurrentCopy(132),  -- Integer32(-2..2147483647)
  3015.          -- INTEGER:  The number of logical pages completed for the
  3016.          -- current copy of the document so far.  This value SHALL be
  3017.          -- reset to 0 for each document in the job and for each
  3018.          -- document copy.
  3019.  
  3020.  
  3021.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  3022.      -- Sheet attributes
  3023.      --
  3024.      -- The sheet is a single piece of a medium, whether printing
  3025.      -- on one or both sides.
  3026.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  3027.  
  3028.      sheetsRequested(150),            -- Integer32(-2..2147483647)
  3029.          -- INTEGER:  The number of medium sheets requested to be
  3030.          -- processed for this job.
  3031.  
  3032.      sheetsCompleted(151),            -- Integer32(-2..2147483647)
  3033.          -- INTEGER:  The number of medium sheets that have completed
  3034.          -- marking and stacking for the entire job so far whether
  3035.          -- those sheets have been processed on one side or on both.
  3036.          --
  3037.      sheetsCompletedCurrentCopy(152), -- Integer32(-2..2147483647)
  3038.          -- INTEGER:  The number of medium sheets that have completed
  3039.          -- marking and stacking for the current copy of a document
  3040.          -- in the job so far whether those sheets have been
  3041.          -- processed on one side or on both.
  3042.          --
  3043.          -- The value of this attribute SHALL be reset to 0 as each
  3044.          -- document in the job starts being processed and for each
  3045.          -- document copy as it starts being processed.
  3046.  
  3047.  
  3048.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  3049.      -- Resources attributes (requested and consumed)
  3050.      --
  3051.      -- Pairs of these attributes can be used by monitoring
  3052.      -- applications to show 'thermometers' of usage to users.
  3053.  
  3054.  
  3055.  
  3056. Bergman, Hastings, Isaacson, Lewis                 [Page 51]
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.                           Job Monitoring MIB, V0.82     June 9, 1997
  3063.  
  3064.  
  3065.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  3066.  
  3067.      mediumRequested(170),            -- JmMediumTypeTC (pg 31)
  3068.                                       -- AND/OR
  3069.                                       -- OCTET STRING(SIZE(0..63))
  3070.          -- INTEGER:  MULTI-ROW:  The type
  3071.          -- AND/OR
  3072.          -- OCTETS:  the name of the medium that is required by the
  3073.          -- job.
  3074.  
  3075.  
  3076.  
  3077.      mediumConsumed(171),             -- OCTET STRING(SIZE(0..63))
  3078.                                       -- AND
  3079.                                       -- Integer32(-2..2147483647)
  3080.          -- OCTETS: MULTI-ROW:  The name of the medium
  3081.          -- AND
  3082.          -- INTEGER:  the number of sheets that have been consumed so
  3083.          -- far whether those sheets have been processed on one side
  3084.          -- or on both.  This attribute SHALL have both values.
  3085.  
  3086.      colorantRequested(172),          -- Integer32(0..2147483647)
  3087.                                       -- AND/OR
  3088.                                       -- OCTET STRING(SIZE(0..63))
  3089.          -- INTEGER:  MULTI-ROW:  The index (prtMarkerColorantIndex)
  3090.          -- in the Printer MIB[1]
  3091.          -- AND/OR
  3092.          -- OCTETS:  the name of the colorant requested.
  3093.  
  3094.  
  3095.  
  3096.      colorantConsumed(173),           -- Integer32(0..2147483647)
  3097.                                       -- AND/OR
  3098.                                       -- OCTET STRING(SIZE(0..63))
  3099.          -- INTEGER:  MULTI-ROW:  The index (prtMarkerColorantIndex)
  3100.          -- in the Printer MIB[1]
  3101.          -- AND/OR
  3102.          -- OCTETS: the name of the colorant consumed.
  3103.  
  3104.  
  3105.  
  3106.  
  3107.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  3108.      -- Time attributes (set by server or device)
  3109.      --
  3110.      -- This section of attributes are ones that are set by the
  3111.      -- server or device that accepts jobs.  Two forms of time are
  3112.      -- provided.  Each form is represented in a separate attribute.
  3113.  
  3114.  
  3115.  
  3116. Bergman, Hastings, Isaacson, Lewis                 [Page 52]
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.                           Job Monitoring MIB, V0.82     June 9, 1997
  3123.  
  3124.  
  3125.      -- See section 4.2 on page 19 and section 4.3 on page 20 for the
  3126.      -- conformance requirements for agents and monitoring
  3127.      -- applications, respectively.  The two forms are:
  3128.      --
  3129.      -- DateAndTime is an 8 or 11 octet binary encoded year,
  3130.      -- month, day, hour, minute, second, deci-second with
  3131.      -- optional offset from UTC.  See SNMPv2-TC.
  3132.      --
  3133.      -- NOTE: DateAndTime is not printable characters; it is
  3134.      -- binary.
  3135.      --
  3136.      -- JmTimeStampTC is the time of day measured in the number of
  3137.      -- seconds since the system was booted.  See page 27.
  3138.      -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  3139.  
  3140.      jobSubmissionToServerTime(190),  -- JmTimeStampTC (pg 27)
  3141.                                       -- AND/OR
  3142.                                       -- DateAndTime (SNMPv2-TC)
  3143.          -- INTEGER:  Configuration 2 and 3:  The time
  3144.          -- AND/OR
  3145.          -- OCTETS:  the date and time that the job was submitted to
  3146.          -- the server.
  3147.  
  3148.      jobSubmissionToDeviceTime(191),  -- JmTimeStampTC (pg 27)
  3149.                                       -- AND/OR
  3150.                                       -- DateAndTime (SNMPv2-TC)
  3151.          -- INTEGER:  Configuration 1 and 3:  The time
  3152.          -- AND/OR
  3153.          -- OCTETS:  the date and time that the job was submitted to
  3154.          -- the device.
  3155.  
  3156.      timeSinceJobWasSubmittedToDevice(192),  -- Integer32(0..
  3157.                                              -- 2147483647)
  3158.          -- INTEGER:  The time in seconds since the job was submitted
  3159.          -- to the device.
  3160.  
  3161.  
  3162.  
  3163.      jobStartedBeingHeldTimeStamp(193),  -- JmTimeStampTC (pg 27)
  3164.          -- INTEGER:  The time that the job started being held, i.e.,
  3165.          -- the time that the job entered the pendingHeld state most
  3166.          -- recently.  If the job has never entered the pendingHeld
  3167.          -- state, then the value SHALL be 0 or the attribute SHALL
  3168.          -- not be present in the table.
  3169.  
  3170.      jobStartedProcessingTime(194),   -- JmTimeStampTC (pg 27)
  3171.                                       -- AND/OR
  3172.                                       -- DateAndTime (SNMPv2-TC)
  3173.  
  3174.  
  3175.  
  3176. Bergman, Hastings, Isaacson, Lewis                 [Page 53]
  3177.  
  3178.  
  3179.  
  3180.  
  3181.  
  3182.                           Job Monitoring MIB, V0.82     June 9, 1997
  3183.  
  3184.  
  3185.          -- INTEGER:  The time
  3186.          -- AND/OR
  3187.          -- OCTETS:  the date and time that the job started
  3188.          -- processing.
  3189.  
  3190.      timeSinceStartedProcessing(195), -- Integer32(-2..2147483647)
  3191.          -- INTEGER:  The time in milliseconds since the job started
  3192.          -- processing.
  3193.  
  3194.  
  3195.  
  3196.      jobCompletedTime(196),           -- JmTimeStampTC (pg 27)
  3197.                                       -- AND/OR
  3198.                                       -- DateAndTime (SNMPv2-TC)
  3199.          -- INTEGER:  The time
  3200.          -- AND/OR
  3201.          -- OCTETS:  the date and time that the job completed
  3202.          -- processing and the medium is completely stacked in the
  3203.          -- output bin, i.e., when the job entered the completed,
  3204.          -- canceled, or aborted state.
  3205.  
  3206.  
  3207.  
  3208.      timeSinceCompleted(197),         -- Integer32(-2..2147483647)
  3209.          -- INTEGER:  The time in milliseconds since the job
  3210.          -- completed processing and the medium was completely
  3211.          -- stacked in the output bin, i.e., since the job entered
  3212.          -- the completed, canceled, or aborted state.
  3213.  
  3214.      jobProcessingCPUTime(198)        -- Integer32(-2..2147483647)
  3215.          -- INTEGER:  The amount of CPU time that the job has been
  3216.          -- processing in seconds, i.e., in the processing job state.
  3217.          -- If the device stops and/or the job enters the
  3218.          -- processingStopped state, that elapsed time SHALL not be
  3219.          -- included.  In other words, the jobProcessingCPUTime value
  3220.          -- SHOULD be relatively repeatable when the same job is
  3221.          -- submitted again.
  3222.  
  3223.     }
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229. JmJobServiceTypesTC ::= TEXTUAL-CONVENTION
  3230.     STATUS      current
  3231.     DESCRIPTION
  3232.  
  3233.  
  3234.  
  3235.  
  3236. Bergman, Hastings, Isaacson, Lewis                 [Page 54]
  3237.  
  3238.  
  3239.  
  3240.  
  3241.  
  3242.                           Job Monitoring MIB, V0.82     June 9, 1997
  3243.  
  3244.  
  3245.         "Specifies the type(s) of service to which the job has been
  3246.         submitted (print, fax, scan, etc.).  The service type is
  3247.         represented as an enum that is bit encoded with each job service
  3248.         type so that more general and arbitrary services can be created,
  3249.         such as services with more than one destination type, or ones
  3250.         with only a source or only a destination.  For example, a job
  3251.         service might scan, faxOut, and print a single job.  In this
  3252.         case, three bits would be set in the jobServiceTypes attribute,
  3253.         corresponding to the hexadecimal values: 0x8 + 0x20 + 0x4,
  3254.         respectively, yielding: 0x2C.
  3255.  
  3256.         Whether this attribute is set from a job attribute supplied by
  3257.         the job submission client or is set by the recipient job
  3258.         submission server or device depends on the job submission
  3259.         protocol.  With either implementation, the agent SHALL return a
  3260.         non-zero value for this attribute indicating the type of the
  3261.         job.
  3262.  
  3263.         One of the purposes of this attribute is to permit a requester
  3264.         to filter out jobs that are not of interest.  For example, a
  3265.         printer operator MAY only be interested in jobs that include
  3266.         printing.  That is why the attribute is in the job
  3267.         identification category.
  3268.  
  3269.         The following service component types are defined (in
  3270.         hexadecimal) and are assigned a separate bit value for use with
  3271.         the jobServiceTypes attribute:
  3272.  
  3273.     other                                 0x1
  3274.         The job contains some document production instructions that are
  3275.         not one of the identified types.
  3276.  
  3277.     unknown                               0x2
  3278.         The job contains some document production instructions whose
  3279.         type is unknown to the agent.
  3280.  
  3281.     print                                 0x4
  3282.         The job contains some document production instructions that
  3283.         specify printing
  3284.  
  3285.     scan                                  0x8
  3286.         The job contains some document production instructions that
  3287.         specify scanning
  3288.  
  3289.     faxIn                                 0x10
  3290.         The job contains some document production instructions that
  3291.         specify receive fax
  3292.  
  3293.  
  3294.  
  3295.  
  3296. Bergman, Hastings, Isaacson, Lewis                 [Page 55]
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.                           Job Monitoring MIB, V0.82     June 9, 1997
  3303.  
  3304.  
  3305.     faxOut                                0x20
  3306.         The job contains some document production instructions that
  3307.         specify sending fax
  3308.  
  3309.     getFile                               0x40
  3310.         The job contains some document production instructions that
  3311.         specify accessing files or documents
  3312.  
  3313.     putFile                               0x80
  3314.         The job contains some document production instructions that
  3315.         specify storing files or documents
  3316.  
  3317.     mailList                              0x100
  3318.         The job contains some document production instructions that
  3319.         specify distribution of documents using an electronic mail
  3320.         system.
  3321.  
  3322.  
  3323.     These bit definitions are the equivalent of a type 2 enum except
  3324.     that combinations of them MAY be used together.  See section 7.1.2
  3325.     on page 22."
  3326.  
  3327.     SYNTAX      INTEGER(0..2147483647)   -- 31 bits, all but sign bit
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335.  
  3336. JmJobStateReasons1TC ::= TEXTUAL-CONVENTION
  3337.     STATUS      current
  3338.     DESCRIPTION
  3339.         "This textual-convention is used with the jmJobStateReasons1
  3340.         object to provides additional information regarding the
  3341.         jmJobState object values.
  3342.  
  3343.         The following standard values are defined (in hexadecimal) as
  3344.         powers of two, since multiple values MAY be used at the same
  3345.         time.
  3346.  
  3347.         NOTE - The Job Monitoring MIB contains a superset of the IPP
  3348.         values[3] for the IPP 'job-state-reasons' attribute, since the
  3349.         Job Monitoring MIB is intended to cover other job submission
  3350.         protocols as well.  Also some of the names of the reasons have
  3351.         been changed from 'printer' to 'device', since the Job
  3352.  
  3353.  
  3354.  
  3355.  
  3356. Bergman, Hastings, Isaacson, Lewis                 [Page 56]
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362.                           Job Monitoring MIB, V0.82     June 9, 1997
  3363.  
  3364.  
  3365.         Monitoring MIB is intended to cover additional types of devices,
  3366.         including input devices, such as scanners.
  3367.  
  3368.         NOTE - For easy of understanding the order of the reasons is
  3369.         presented in the order in which the reason is most likely to
  3370.         occur.
  3371.  
  3372.     other                                 0x1
  3373.         The job state reason is not one of the standardized or
  3374.         registered reasons.
  3375.  
  3376.     unknown                               0x2
  3377.         The job state reason is not known to the agent or is
  3378.         indeterminent.
  3379.  
  3380.     jobIncoming                           0x4
  3381.         The job has been accepted by the server or device, but the
  3382.         server or device is expected (1) additional operations to finish
  3383.         creating the job and/or (2) is accessing/accepting document
  3384.         data.
  3385.  
  3386.     jobOutgoing                           0x8
  3387.         Configuration 2 only:  The server is transmitting the job to the
  3388.         device.
  3389.  
  3390.     jobHoldSpecified                      0x10
  3391.         The value of the job's jobHold(52) attribute (see page 47) is
  3392.         TRUE, either set when the job was created or subsequently by an
  3393.         explicit modify job operation.  The job SHALL NOT be a candidate
  3394.         for processing until this reason is removed and there are no
  3395.         other reasons to hold the job.
  3396.  
  3397.     jobHoldUntilSpecified                 0x20
  3398.         The value of the job's jobHoldUntil(53) (see page 47) attribute
  3399.         specifies a time period that is still in the future, either set
  3400.         when the job was created or subsequently by an explicit modify
  3401.         job operation.  The job SHALL NOT be a candidate for processing
  3402.         until this reason is removed and there are no other reasons to
  3403.         hold the job.
  3404.  
  3405.     jobProcessAfterSpecified              0x40
  3406.         The value of the job's jobProcessAfterDateAndTime(51) (see page
  3407.         46) attribute specifies a time that is still in the future,
  3408.         either set when the job was created or subsequently by an
  3409.         explicit modify job operation.  The job SHALL NOT be a candidate
  3410.         for processing until this reason is removed and there are no
  3411.         other reasons to hold the job.
  3412.  
  3413.  
  3414.  
  3415.  
  3416. Bergman, Hastings, Isaacson, Lewis                 [Page 57]
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.                           Job Monitoring MIB, V0.82     June 9, 1997
  3423.  
  3424.  
  3425.     resourcesAreNotReady                  0x80
  3426.         At least one of the resources needed by the job, such as media,
  3427.         fonts, resource objects, etc., is not ready on any of the
  3428.         physical devices for which the job is a candidate.  This
  3429.         condition MAY be detected when the job is accepted, or
  3430.         subsequently while the job is pending or processing, depending
  3431.         on implementation.
  3432.  
  3433.     deviceStoppedPartly                   0x100
  3434.         One or more, but not all, of the devices to which the job is
  3435.         assigned are stopped.  If all of the devices are stopped (or the
  3436.         only device is stopped), the deviceStopped reason SHALL be used.
  3437.  
  3438.     deviceStopped                         0x200
  3439.         The device(s) to which the job is assigned is (are all) stopped.
  3440.  
  3441.     jobPrinting                           0x400
  3442.         The output device is marking media. This attribute is useful for
  3443.         servers and output devices which spend a great deal of time
  3444.         processing when no marking is happening and then want to show
  3445.         that marking is now happening.
  3446.  
  3447.     jobCanceledByUser                     0x800
  3448.         The job was canceled by the user, i.e., by a user whose name is
  3449.         the same as the value of the job's jobOwner attribute.
  3450.  
  3451.     jobCanceledByOperator                 0x1000
  3452.         The job was canceled by the operator, i.e., by a user whose name
  3453.         is different than the value of the job's jobOwner attribute.
  3454.  
  3455.     abortedBySystem                       0x2000
  3456.         The job was aborted by the system.  NOTE - this reason is needed
  3457.         only when the job is not placed in the aborted job state.
  3458.     jobCompletedSuccessfully              0x4000
  3459.         The job completed successfully.
  3460.  
  3461.     jobCompletedWithWarnings              0x8000
  3462.         The job completed with warnings.
  3463.  
  3464.     jobCompletedWithErrors                0x10000
  3465.         The job completed with errors (and possibly warnings too).
  3466.  
  3467.     The following additional job state reasons have been added to
  3468.     represent job states that are in ISO DPA[2] and other job submission
  3469.     protocols:
  3470.  
  3471.     jobPaused                             0x20000
  3472.         The job has been indefinitely suspended by a client issuing an
  3473.  
  3474.  
  3475.  
  3476. Bergman, Hastings, Isaacson, Lewis                 [Page 58]
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.                           Job Monitoring MIB, V0.82     June 9, 1997
  3483.  
  3484.  
  3485.         operation to suspend the job so that other jobs may proceed
  3486.         using the same devices.  The client MAY issue an operation to
  3487.         resume the paused job at any time, in which case the agent SHALL
  3488.         remove the jobPaused values from the job's jmJobStateReasons1
  3489.         object and the job is eventually resumed at or near the point
  3490.         where the job was paused.
  3491.  
  3492.     jobInterrupted                        0x40000
  3493.         The job has been interrupted while processing by a client
  3494.         issuing an operation that specifies another job to be run
  3495.         instead of the current job.  The server or device will
  3496.         automatically resume the interrupted job when the interrupting
  3497.         job completes.
  3498.  
  3499.     jobRetained                           0x80000
  3500.         The job is being retained by the server or device with all of
  3501.         the job's document data (and submitted resources, such as fonts,
  3502.         logos, and forms, if any).  Thus a client could issue an
  3503.         operation to resubmit the job (or a copy of the job).  When a
  3504.         client could no longer resubmit the job, such as after the
  3505.         document data has been discarded, the agent SHALL remove the
  3506.         jobRetained value from the jmJobStateReasons1 object.
  3507.  
  3508.     These bit definitions are the equivalent of a type 2 enum except
  3509.     that combinations of bits may be used together.  See section 7.1.2
  3510.     on page 22.  The remaining bits are reserved for future
  3511.     standardization and/or registration."
  3512.  
  3513.     SYNTAX      INTEGER(0..2147483647)   -- 31 bits, all but sign bit
  3514.  
  3515.  
  3516.  
  3517.  
  3518.  
  3519. JmJobStateReasons2TC ::= TEXTUAL-CONVENTION
  3520.     STATUS      current
  3521.     DESCRIPTION
  3522.         "This textual-convention is used with the jobStateReasons2
  3523.         attribute to provides additional information regarding the
  3524.         jmJobState object.  See the description under
  3525.         JmJobStateReasons1TC on page 59.
  3526.  
  3527.         The following standard values are defined (in hexadecimal) as
  3528.         powers of two, since multiple values may be used at the same
  3529.         time:
  3530.  
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536. Bergman, Hastings, Isaacson, Lewis                 [Page 59]
  3537.  
  3538.  
  3539.  
  3540.  
  3541.  
  3542.                           Job Monitoring MIB, V0.82     June 9, 1997
  3543.  
  3544.  
  3545.     cascaded                              0x1
  3546.         An outbound gateway has transmitted all of the job's job and
  3547.         document attributes and data to another spooling system.
  3548.  
  3549.     deletedByAdministrator                0x2
  3550.         The administrator has deleted the job.
  3551.  
  3552.     discardTimeArrived                    0x4
  3553.         The job has been deleted due to the fact that the time specified
  3554.         by the job's job-discard-time has arrived.
  3555.  
  3556.     postProcessingFailed                  0x8
  3557.         The post-processing agent failed while trying to log accounting
  3558.         attributes for the job; therefore the job has been placed into
  3559.         the completed state with the jobRetained jmJobStateReasons1
  3560.         object value for a system-defined period of time, so the
  3561.         administrator can examine it, resubmit it, etc.
  3562.  
  3563.     submissionInterrupted                 0x10
  3564.         Indicates that the job was not completely submitted for the
  3565.         following reasons: (1) the server has crashed before the job was
  3566.         closed by the client, (2) the server or the document transfer
  3567.         method has crashed in some non-recoverable way before the
  3568.         document data was entirely transferred to the server, (3) the
  3569.         client crashed or failed to close the job before the time-out
  3570.         period.  Whether the server or device puts the job into the
  3571.         pendingHeld or aborted state depends on implementation.
  3572.  
  3573.     maxJobFaultCountExceeded              0x20
  3574.         The job has faulted several times and has exceeded the
  3575.         administratively defined fault count limit.
  3576.  
  3577.     devicesNeedAttentionTimeOut           0x40
  3578.         One or more document transforms that the job is using needs
  3579.         human intervention in order for the job to make progress, but
  3580.         the human intervention did not occur within the site-settable
  3581.         time-out value.
  3582.  
  3583.     needsKeyOperatorTimeOut               0x80
  3584.         One or more devices or document transforms that the job is using
  3585.         need a specially trained operator (who may need a key to unlock
  3586.         the device and gain access) in order for the job to make
  3587.         progress, but the key operator intervention did not occur within
  3588.         the site-settable time-out value.
  3589.  
  3590.     jobStartWaitTimeOut                   0x100
  3591.         The server/device has stopped the job at the beginning of
  3592.         processing to await human action, such as installing a special
  3593.  
  3594.  
  3595.  
  3596. Bergman, Hastings, Isaacson, Lewis                 [Page 60]
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.                           Job Monitoring MIB, V0.82     June 9, 1997
  3603.  
  3604.  
  3605.         cartridge or special non-standard media, but the job was not
  3606.         resumed within the site-settable time-out value and the
  3607.         server/device has transitioned the job to the pendingHeld state.
  3608.         Normally, the job is resumed by means outside the job submission
  3609.         protocol, such as some local function on the device.
  3610.  
  3611.     jobEndWaitTimeOut                     0x200
  3612.         The server/device has stopped the job at the end of processing
  3613.         to await human action, such as removing a special cartridge or
  3614.         restoring standard media, but the job was not resumed within the
  3615.         site-settable time-out value and the server/device has
  3616.         transitioned the job to the completed state.  Normally, the job
  3617.         is resumed by means outside the job submission protocol, such as
  3618.         some local function on the device, whereupon the job SHALL
  3619.         transition immediately to the completed state.
  3620.  
  3621.     jobPasswordWaitTimeOut                0x400
  3622.         The server/device has stopped the job at the beginning of
  3623.         processing to await input of the job's password, but the human
  3624.         intervention did not occur within the site-settable time-out
  3625.         value.
  3626.  
  3627.     deviceTimedOut                        0x800
  3628.         A device that the job was using has not responded in a period
  3629.         specified by the device's site-settable attribute.
  3630.  
  3631.     connectingToDeviceTimeOut             0x1000
  3632.         The server is attempting to connect to one or more devices which
  3633.         may be dial-up, polled, or queued, and so may be busy with
  3634.         traffic from other systems, but server was unable to connect to
  3635.         the device within the site-settable time-out value.
  3636.  
  3637.     transferring                          0x2000
  3638.         The job is being transferred to a down stream server or device.
  3639.  
  3640.     queuedInDevice                        0x4000
  3641.         The job has been queued in a down stream server or device.
  3642.  
  3643.     jobCleanup                            0x8000
  3644.         The server/device is performing cleanup activity as part of
  3645.         ending normal processing.
  3646.  
  3647.     processingToStopPoint                 0x10000
  3648.         The requester has issued an operation to interrupt the job and
  3649.         the server/device is processing up until the specified stop
  3650.         point occurs.
  3651.  
  3652.  
  3653.  
  3654.  
  3655.  
  3656. Bergman, Hastings, Isaacson, Lewis                 [Page 61]
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.                           Job Monitoring MIB, V0.82     June 9, 1997
  3663.  
  3664.  
  3665.     jobPasswordWait                       0x20000
  3666.         The server/device has selected the job to be next to process,
  3667.         but instead of assigning resources and started the job
  3668.         processing, the server/device has transitioned the job to the
  3669.         pendingHeld state to await entry of a password (and dispatched
  3670.         another job, if there is one).
  3671.  
  3672.     validating                            0x40000
  3673.         The server/device is validating the job after accepting the job.
  3674.  
  3675.     queueHeld                             0x80000
  3676.         The operator has held the entire job set or queue.
  3677.  
  3678.     jobProofWait                          0x100000
  3679.         The job has produced a single proof copy and is in the
  3680.         pendingHeld state waiting for the requester to issue an
  3681.         operation to release the job to print normally, obeying any job
  3682.         and document copy attributes that were originally submitted.
  3683.  
  3684.     heldForDiagnostics                    0x200000
  3685.         The system is running intrusive diagnostics, so that all jobs
  3686.         are being held.
  3687.  
  3688.     serviceOffLine                        0x400000
  3689.         The service/document transform is off-line and accepting no
  3690.         jobs.  All pending jobs are put into the pendingHeld state.
  3691.         This could be true if its input is impaired or broken.
  3692.  
  3693.     noSpaceOnServer                       0x800000
  3694.         There is no room on the server to store all of the job.  For
  3695.         example, there is no room for the document data.
  3696.  
  3697.     pinRequired                           0x1000000
  3698.         The System Administrator settable device policy is (1) to
  3699.         require PINs, and (2) to hold jobs that do not have a pin
  3700.         supplied as an input parameter when the job was created. The
  3701.         requester SHALL either (1) enter a pin locally at the device or
  3702.         issue a remote operation supplying the PIN in order for the job
  3703.         to be able to proceed.
  3704.  
  3705.     exceededAccountLimit                  0x2000000
  3706.         The account for which this job is drawn has exceeded its limit.
  3707.         This condition SHOULD be detected before the job is scheduled so
  3708.         that the user does not wait until his/her job is scheduled only
  3709.         to find that the account is overdrawn.  This condition MAY also
  3710.         occur while the job is processing either as processing begins or
  3711.         part way through processing.
  3712.  
  3713.  
  3714.  
  3715.  
  3716. Bergman, Hastings, Isaacson, Lewis                 [Page 62]
  3717.  
  3718.  
  3719.  
  3720.  
  3721.  
  3722.                           Job Monitoring MIB, V0.82     June 9, 1997
  3723.  
  3724.  
  3725.         An overdraft mechanism SHOULD be included to be user-friendly,
  3726.         so as to minimize the chances that the job cannot finish or that
  3727.         media is wasted.  For example, the server/device SHOULD finish
  3728.         the current copy for a job with collated document copies, rather
  3729.         than stopping in the middle of the current document copy.
  3730.  
  3731.     heldForRetry                          0x4000000
  3732.         The job encountered some errors that the server/device could not
  3733.         recover from with its normal retry procedures, but the error is
  3734.         worth trying the job later, such as phone number busy or remote
  3735.         file system in-accessible.  For such a situation, the
  3736.         server/device SHALL transition the job from the processing to
  3737.         the pendingHeld, rather than to the aborted state.
  3738.  
  3739.  
  3740. The following values are from the X/Open PSIS draft standard:
  3741.  
  3742.     canceledByShutdown                    0x8000000
  3743.         The job was canceled because the server or device was shutdown
  3744.         before completing the job.  Whether the job is placed in the
  3745.         pendingHeld or aborted state, depends on implementation.
  3746.  
  3747.     deviceUnavailable                     0x10000000
  3748.         This job was aborted by the system because the device is
  3749.         currently unable to accept jobs.  Whether the job is placed in
  3750.         the pendingHeld or aborted state, depends on implementation.
  3751.  
  3752.     wrongDevice                           0x20000000
  3753.         This job was aborted by the system because the device is unable
  3754.         to handle this particular job; the spooler SHOULD try another
  3755.         device or the user should submit the job to another device.
  3756.         Whether the job is placed in the pendingHeld or aborted state,
  3757.         depends on implementation.
  3758.  
  3759.     badJob                                0x40000000
  3760.         This job was aborted by the system because this job has a major
  3761.         problem, such as an ill-formed PDL; the spooler SHOULD not even
  3762.         try another device.
  3763.  
  3764. These bit definitions are the equivalent of a type 2 enum except that
  3765. combinations of them may be used together.  See section 7.1.2 on page
  3766. 22."
  3767.  
  3768.     SYNTAX      INTEGER(0..2147483647)   -- 31 bits, all but sign bit
  3769.  
  3770.  
  3771.  
  3772.  
  3773.  
  3774.  
  3775.  
  3776. Bergman, Hastings, Isaacson, Lewis                 [Page 63]
  3777.  
  3778.  
  3779.  
  3780.  
  3781.  
  3782.                           Job Monitoring MIB, V0.82     June 9, 1997
  3783.  
  3784.  
  3785.  
  3786.  
  3787. JmJobStateReasons3TC ::= TEXTUAL-CONVENTION
  3788.     STATUS      current
  3789.     DESCRIPTION
  3790.         "This textual-convention is used with the jobStateReasons3
  3791.         attribute to provides additional information regarding the
  3792.         jmJobState object.  See the description under
  3793.         JmJobStateReasons1TC on page 59.
  3794.  
  3795.         The following standard values are defined (in hexadecimal) as
  3796.         powers of two, since multiple values may be used at the same
  3797.         time:
  3798.  
  3799.     jobInterruptedByDeviceFailure         0x1
  3800.         A device or the print system software that the job was using has
  3801.         failed while the job was processing.  The server or device is
  3802.         keeping the job in the pendingHeld state until an operator can
  3803.         determine what to do with the job.
  3804.  
  3805.     These bit definitions are the equivalent of a type 2 enum except
  3806.     that combinations of them may be used together.  See section 7.1.2
  3807.     on page 22.  The remaining bits are reserved for future
  3808.     standardization and/or registration."
  3809.  
  3810.     SYNTAX      INTEGER(0..2147483647)   -- 31 bits, all but sign bit
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816. JmJobStateReasons4TC ::= TEXTUAL-CONVENTION
  3817.     STATUS      current
  3818.     DESCRIPTION
  3819.         "This textual-convention is used in the jobStateReasons4
  3820.         attribute to provides additional information regarding the
  3821.         jmJobState object.  See the description under
  3822.         JmJobStateReasons1TC on page 59.
  3823.  
  3824.         The following standard values are defined (in hexadecimal) as
  3825.         powers of two, since multiple values may be used at the same
  3826.         time:
  3827.  
  3828.     none yet defined.
  3829.  
  3830.         These bit definitions are the equivalent of a type 2 enum except
  3831.         that combinations of them may be used together.  See section
  3832.  
  3833.  
  3834.  
  3835.  
  3836. Bergman, Hastings, Isaacson, Lewis                 [Page 64]
  3837.  
  3838.  
  3839.  
  3840.  
  3841.  
  3842.                           Job Monitoring MIB, V0.82     June 9, 1997
  3843.  
  3844.  
  3845.         7.1.2 on page 22.    These bits are reserved for future
  3846.         standardization and/or registration."
  3847.  
  3848.     SYNTAX      INTEGER(0..2147483647)   -- 31 bits, all but sign bit
  3849.  
  3850.  
  3851.  
  3852.  
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.  
  3872.  
  3873.  
  3874.  
  3875.  
  3876.  
  3877.  
  3878.  
  3879.  
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.  
  3890.  
  3891.  
  3892.  
  3893.  
  3894.  
  3895.  
  3896. Bergman, Hastings, Isaacson, Lewis                 [Page 65]
  3897.  
  3898.  
  3899.  
  3900.  
  3901.  
  3902.                           Job Monitoring MIB, V0.82     June 9, 1997
  3903.  
  3904.  
  3905.  
  3906. jobmonMIBObjects  OBJECT IDENTIFIER  ::= { jobmonMIB 1 }
  3907.  
  3908. -- The General Group (Mandatory)
  3909.  
  3910. -- The jmGeneralGroup consists entirely of the jmGeneralTable.
  3911.  
  3912. -- Implementation of every object in this group is MANDATORY.
  3913. -- See Section 4 entitled 'Conformance Considerations' on page 18.
  3914.  
  3915. jmGeneral  OBJECT IDENTIFIER ::= { jobmonMIBObjects 1 }
  3916.  
  3917. jmGeneralTable  OBJECT-TYPE
  3918.     SYNTAX      SEQUENCE OF JmGeneralEntry
  3919.     MAX-ACCESS  not-accessible
  3920.     STATUS      current
  3921.     DESCRIPTION
  3922.         "The jmGeneralTable consists of information of a general nature
  3923.         that are per-job-set, but are not per-job.  See Terminology and
  3924.         Job Model on page 12 for the definition of a job set."
  3925.     ::= { jmGeneral 1 }
  3926.  
  3927. jmGeneralEntry  OBJECT-TYPE
  3928.     SYNTAX      JmGeneralEntry
  3929.     MAX-ACCESS  not-accessible
  3930.     STATUS      current
  3931.     DESCRIPTION
  3932.         "Information about a job set (queue).
  3933.  
  3934.         An entry SHALL exist in this table for each job set."
  3935.     INDEX  { jmJobSetIndex }
  3936.     ::= { jmGeneralTable 1 }
  3937.  
  3938. JmGeneralEntry ::= SEQUENCE {
  3939.     jmGeneralNumberOfActiveJobs       Integer32(0..2147483647),
  3940.     jmGeneralOldestActiveJobIndex     Integer32(0..2147483647),
  3941.     jmGeneralNewestActiveJobIndex     Integer32(0..2147483647),
  3942.     jmGeneralJobPersistence           Integer32(0..2147483647),
  3943.     jmGeneralAttributePersistence     Integer32(0..2147483647),
  3944.     jmGeneralJobSetName               OCTET STRING(SIZE(0..63))
  3945. }
  3946.  
  3947. jmGeneralNumberOfActiveJobs OBJECT-TYPE
  3948.     SYNTAX      Integer32(0..2147483647)
  3949.     MAX-ACCESS  read-only
  3950.     STATUS      current
  3951.     DESCRIPTION
  3952.  
  3953.  
  3954.  
  3955.  
  3956. Bergman, Hastings, Isaacson, Lewis                 [Page 66]
  3957.  
  3958.  
  3959.  
  3960.  
  3961.  
  3962.                           Job Monitoring MIB, V0.82     June 9, 1997
  3963.  
  3964.  
  3965.         "The current number of 'active' jobs in the jmJobIDTable,
  3966.         jmJobTable, and jmAttributeTable, i.e., the total number of jobs
  3967.         that are in the pending, processing, or processingStopped
  3968.         states.  See JmJobStateTC on page 32 for the exact specification
  3969.         of the semantics of the job states.
  3970.  
  3971.         If there are no active jobs, the value of this object SHALL be
  3972.         0."
  3973.     ::= { jmGeneralEntry 1 }
  3974.  
  3975. jmGeneralOldestActiveJobIndex  OBJECT-TYPE
  3976.     SYNTAX      Integer32 (0..2147483647)
  3977.     MAX-ACCESS  read-only
  3978.     STATUS      current
  3979.     DESCRIPTION
  3980.         "The jmJobIndex of the oldest job that is still in one of the
  3981.         'active' states (pending, processing, or processingStopped).  In
  3982.         other words, the index of the 'active' job that has been in the
  3983.         job tables the longest.
  3984.  
  3985.         When a job transitions from one of the 'active' states (pending,
  3986.         processing, processingStopped) to one of the 'in-active' states
  3987.         (pendingHeld, completed, canceled, or aborted), with a
  3988.         jmJobIndex value that matches this object, the agent SHALL
  3989.         advance (or wrap - see jmGeneralNewestActiveJobIndex) the value
  3990.         to the next oldest 'active' job, if any.
  3991.  
  3992.         On the other hand, when a job transitions from one of the 'in-
  3993.         active' states to one of the 'active' state, the agent SHALL
  3994.         reduce (or wrap) the value of this object, if the job's
  3995.         jmJobIndex is smaller than the current value.
  3996.  
  3997.         If there are no active jobs, the agent SHALL set the value of
  3998.         this object to 0."
  3999.     ::= { jmGeneralEntry 2 }
  4000.  
  4001. jmGeneralNewestActiveJobIndex  OBJECT-TYPE
  4002.     SYNTAX      Integer32 (0..2147483647)
  4003.     MAX-ACCESS  read-only
  4004.     STATUS      current
  4005.     DESCRIPTION
  4006.         "The jmJobIndex of the newest job that is in one of the 'active'
  4007.         states (pending, processing, or processingStopped).  In other
  4008.         words, the index of the 'active' job that has been most recently
  4009.         added to the job tables.
  4010.  
  4011.         When a new job is accepted by the server or device that the
  4012.         agent is instrumenting, the agent SHALL assign the next
  4013.  
  4014.  
  4015.  
  4016. Bergman, Hastings, Isaacson, Lewis                 [Page 67]
  4017.  
  4018.  
  4019.  
  4020.  
  4021.  
  4022.                           Job Monitoring MIB, V0.82     June 9, 1997
  4023.  
  4024.  
  4025.         available value to the job's jmJobIndex that is used for storing
  4026.         job information in the jmJobIDTable, the jmJobTable, and the
  4027.         jmAttributeTable.  If the value would exceed the implementation-
  4028.         defined maximum value for jmJobIndex, the agent SHALL set the
  4029.         value back to 1, i.e., wrap around to the beginning of the job
  4030.         tables.
  4031.  
  4032.         It is recommended that the largest value for jmJobIndex be much
  4033.         larger than the maximum number of jobs that the implementation
  4034.         can contain at a single time, so as to minimize the pre-mature
  4035.         re-use of jmJobIndex value for a newer job while clients retain
  4036.         the same 'stale' value for an older job.
  4037.  
  4038.         Each time a new job is accepted by the server or device that the
  4039.         agent is instrumenting AND that job is to be 'active' (pending,
  4040.         processing, or processingStopped, but not pendingHeld), the
  4041.         agent SHALL copy the value of the job's jmJobIndex to the
  4042.         jmGeneralNewestActiveJobIndex object.  If the new job is 'in-
  4043.         active' (pendingHeld state), the agent SHALL not change the
  4044.         value of jmGeneralNewestActiveJobIndex object.
  4045.  
  4046.         When all jobs become 'inactive', i.e., enter the pendingHeld,
  4047.         completed, canceled, or aborted states, the agent SHALL set the
  4048.         value of this object to 0.  Whenever a job changes from 'in-
  4049.         active' to 'active' (from pendingHeld to pending or processing),
  4050.         the agent SHALL update the value of either the
  4051.         jmGeneralOldestActiveJobIndex or the
  4052.         jmGeneralNewestActiveJobIndex objects, or both, if the job's
  4053.         jmJobIndex value is outside the range between
  4054.         jmGeneralOldestActiveJobIndex and jmGeneralNewestActiveJobIndex.
  4055.  
  4056.         When the server or device is power-cycled, the agent SHALL
  4057.         remember the next jmJobIndex value to be assigned, so that new
  4058.         jobs are not assigned the same jmJobIndex as recent jobs before
  4059.         the power cycle.
  4060.  
  4061.         NOTE - Applications that wish to efficiently access all of the
  4062.         active jobs MAY use jmGeneralOldestActiveJobIndex value to start
  4063.         with the oldest active job and continue until they reach the
  4064.         index value equal to jmGeneralNewestActiveJobIndex, skipping
  4065.         over any pendingHeld, completed, canceled, or aborted jobs that
  4066.         might intervene.
  4067.  
  4068.         If an application detects that the jmGeneralNewestActiveJobIndex
  4069.         is smaller than jmGeneralOldestActiveJobIndex, the job index has
  4070.         wrapped.  In this case, when the application exceeds the maximum
  4071.         job index (detected by a no such object status returned from a
  4072.         GetNext operation for the next conceptual row), the application
  4073.  
  4074.  
  4075.  
  4076. Bergman, Hastings, Isaacson, Lewis                 [Page 68]
  4077.  
  4078.  
  4079.  
  4080.  
  4081.  
  4082.                           Job Monitoring MIB, V0.82     June 9, 1997
  4083.  
  4084.  
  4085.         SHALL start over at 1 and continue the GetNext operations to
  4086.         find the rest of the active jobs."
  4087.     ::= { jmGeneralEntry 3 }
  4088.  
  4089. jmGeneralJobPersistence OBJECT-TYPE
  4090.     SYNTAX      Integer32(0..2147483647)
  4091.     MAX-ACCESS  read-only
  4092.     STATUS      current
  4093.     DESCRIPTION
  4094.         "The minimum time in seconds for this instance of the Job Set
  4095.         that an entry will remain in the jmJobIDTable and jmJobTable
  4096.         after processing has completed, i.e., the minimum time in
  4097.         seconds starting when the job enters the completed, canceled, or
  4098.         aborted state.  Depending on implementation, the value of this
  4099.         object MAY be either: (1) set by the system administrator by
  4100.         means outside this specification or (2) fixed by the
  4101.         implementation."
  4102.     ::= { jmGeneralEntry 4 }
  4103.  
  4104. jmGeneralAttributePersistence OBJECT-TYPE
  4105.     SYNTAX      Integer32(0..2147483647)
  4106.     MAX-ACCESS  read-only
  4107.     STATUS      current
  4108.     DESCRIPTION
  4109.         "The minimum time in seconds for this instance of the Job Set
  4110.         that an entry will remain in the jmAttributeTable after
  4111.         processing has completed , i.e., the time in seconds starting
  4112.         when the job enters the completed, canceled, or aborted state.
  4113.         The value of this object MAY be either (1) set by the system
  4114.         administrator by means outside this specification or MAY be (2)
  4115.         fixed by the implementation, depending on implementation.
  4116.  
  4117.         This value SHALL be equal to or less than the value of
  4118.         jmGeneralJobPersistence."
  4119.     ::= { jmGeneralEntry 5 }
  4120.  
  4121. jmGeneralJobSetName OBJECT-TYPE
  4122.     SYNTAX      OCTET STRING(SIZE(0..63))
  4123.     MAX-ACCESS  read-only
  4124.     STATUS      current
  4125.     DESCRIPTION
  4126.         "The human readable administratively assigned name of this job
  4127.         set (by means outside of this MIB).  Typically, this name will
  4128.         be the name of the job queue.  If a server or device has only a
  4129.         single job set, this object can be the administratively assigned
  4130.         name of the server or device itself.  This name does not need to
  4131.         be unique, though each job set in a single Job Monitoring MIB
  4132.         SHOULD have distinct names.
  4133.  
  4134.  
  4135.  
  4136. Bergman, Hastings, Isaacson, Lewis                 [Page 69]
  4137.  
  4138.  
  4139.  
  4140.  
  4141.  
  4142.                           Job Monitoring MIB, V0.82     June 9, 1997
  4143.  
  4144.  
  4145.  
  4146.         NOTE - The purpose of this object is to help the user of the job
  4147.         monitoring application distinguish between several job sets in
  4148.         implementations that support more than one job set."
  4149.     ::= { jmGeneralEntry 6 }
  4150.  
  4151.  
  4152.  
  4153.  
  4154.  
  4155. -- The Job ID Group (Mandatory)
  4156.  
  4157. -- The jmJobIDGroup consists entirely of the jmJobIDTable.
  4158. --
  4159. -- The two key indexes that are used in other tables to index jobs:
  4160. -- jmJobSetIndex and jmJobIndex are materialized in this group.
  4161. --
  4162. -- Implementation of every object in this group is MANDATORY.
  4163. -- See Section 4 entitled 'Conformance Considerations' on page 18.
  4164.  
  4165. jmJobID  OBJECT IDENTIFIER ::= { jobmonMIBObjects 2 }
  4166.  
  4167. jmJobIDTable  OBJECT-TYPE
  4168.     SYNTAX      SEQUENCE OF JmJobIDEntry
  4169.     MAX-ACCESS  not-accessible
  4170.     STATUS      current
  4171.     DESCRIPTION
  4172.         "The jmJobIDTable provides a correspondence map (1) between the
  4173.         job submission ID that a client uses to refer to a job and (2)
  4174.         the jmJobSetIndex and jmJobIndex that the Job Monitoring MIB
  4175.         agent assigned to the job and that are used to access the job in
  4176.         all of the other tables in the MIB.  If a monitoring application
  4177.         already knows the jmJobIndex of the job it is querying, that
  4178.         application NEED NOT use the jmJobIDTable."
  4179.     ::= { jmJobID 1 }
  4180.  
  4181. jmJobIDEntry  OBJECT-TYPE
  4182.     SYNTAX      JmJobIDEntry
  4183.     MAX-ACCESS  not-accessible
  4184.     STATUS      current
  4185.     DESCRIPTION
  4186.         "The map from (1) the jmJobSubmissionID to (2) the jmJobSetIndex
  4187.         and jmJobIndex.
  4188.  
  4189.         An entry SHALL exist in this table for each job, no matter what
  4190.         the state of the job and no matter what job set the job is in.
  4191.         Each job SHALL appear in one and only one job set.
  4192.  
  4193.  
  4194.  
  4195.  
  4196. Bergman, Hastings, Isaacson, Lewis                 [Page 70]
  4197.  
  4198.  
  4199.  
  4200.  
  4201.  
  4202.                           Job Monitoring MIB, V0.82     June 9, 1997
  4203.  
  4204.  
  4205.         NOTE - an IMPLICIT statement is NOT provided in the following
  4206.         INDEX clause, since it was not an SMIv1 feature.  Therefore, the
  4207.         extra ASN.1 tag SHALL be included in the varbind in the SNMP
  4208.         request and the response."
  4209.     INDEX  { jmJobSubmissionID }
  4210.     ::= { jmJobIDTable 1 }
  4211.  
  4212. JmJobIDEntry ::= SEQUENCE {
  4213.     jmJobSubmissionID                 OCTET STRING(SIZE(1..32)),
  4214.     jmJobSetIndex                     Integer32(1..32767),
  4215.     jmJobIndex                        Integer32(1..2147483647)
  4216. }
  4217.  
  4218. jmJobSubmissionID OBJECT-TYPE
  4219.     SYNTAX      OCTET STRING(SIZE(1..32))
  4220.     MAX-ACCESS  not-accessible
  4221.     STATUS      current
  4222.     DESCRIPTION
  4223.         "A quasi-unique 32-octet string ID which identifies the job
  4224.         uniquely within a particular client-server environment.  Either
  4225.         the client or the server assigns the job submission ID for each
  4226.         job.  The monitoring application whether in the client or
  4227.         running separately, uses the job submission ID to help the user
  4228.         identify which jmJobIndex was assigned by the agent.
  4229.  
  4230.         There are multiple formats for the jmJobSubmissionID.  Each
  4231.         format SHALL be registered using the procedures of a type 2
  4232.         enum.  See section entitled: 'IANA Registration of enums' on
  4233.         page 22.
  4234.  
  4235.         The value of jmJobSubmissionID SHOULD be one of the registered
  4236.         format types.  The first octet of the string SHALL indicate
  4237.         which registered format is being used.  The ASCII characters '0-
  4238.         9', 'A-Z', and 'a-z' will be assigned in order giving 62
  4239.         possible formats.  The agent SHALL assign a string of registered
  4240.         format (0) for any job without a Job Submission ID.
  4241.  
  4242.         The format values registered so far are:
  4243.  
  4244.           Format
  4245.           Number   Description
  4246.           ------   ------------
  4247.           0       Set by the agent when neither the client nor the
  4248.                    server assigned a job submission ID.
  4249.  
  4250.           1       octets 3-10:  8-decimal-digit random number
  4251.                    octets 11-32: last 22 bytes of the jobName attribute
  4252.  
  4253.  
  4254.  
  4255.  
  4256. Bergman, Hastings, Isaacson, Lewis                 [Page 71]
  4257.  
  4258.  
  4259.  
  4260.  
  4261.  
  4262.                           Job Monitoring MIB, V0.82     June 9, 1997
  4263.  
  4264.  
  4265.           2       octets 3-10:  8-decimal-digit sequential number
  4266.                    octets 11-32: Client MAC address
  4267.  
  4268.           3       octets 3-10:  8-decimal-digit sequential number
  4269.                    octets 11-32: last 22 bytes of the client URL
  4270.  
  4271.           ..       to be registered according to procedures of a type 2
  4272.                    enum.  See section 7.3 on page 23.
  4273.  
  4274.         NOTE - the job submission id is only intended to be unique
  4275.         between a limited set of clients for a limited duration of time,
  4276.         namely, for the life time of the job in the context of the
  4277.         server or device that is processing the job.  Some of the
  4278.         formats include something that is unique per client and a random
  4279.         number so that the same job submitted by the same client will
  4280.         have a different job submission id.  For other formats, where
  4281.         part of the id is guaranteed to be unique for each client, such
  4282.         as the MAC address or URL, a sequential number SHOULD suffice
  4283.         for each client (and may be easier for each client to manage).
  4284.         Therefore, the length of the job submission id has been selected
  4285.         to reduce the probability of collision to a very low number, but
  4286.         is not intended to be an absolute guarantee of uniqueness.
  4287.         None-the-less, collisions could occur, but without bad
  4288.         consequences, since this MIB is intended to be used only for
  4289.         monitoring jobs, not for controlling and managing them."
  4290.     ::= { jmJobIDEntry 1 }
  4291.  
  4292. jmJobSetIndex OBJECT-TYPE
  4293.     SYNTAX      Integer32(1..32767)
  4294.     MAX-ACCESS  read-only
  4295.     STATUS      current
  4296.     DESCRIPTION
  4297.         "The job set index of the job set in which the job was placed
  4298.         when that server or device accepted the job.  This 16-bit value
  4299.         in combination with the jmJobIndex value permits the management
  4300.         application to access the other tables to obtain the job-
  4301.         specific objects.  This value SHALL be the same for a job in the
  4302.         jmJobIDTable as the corresponding jmJobSetIndex value in the
  4303.         jmJobTable and jmAttributeTable for this job.
  4304.  
  4305.         The value(s) of the jmJobSetIndex SHALL be persistent across
  4306.         power cycles, so that clients that have retained jmJobSetIndex
  4307.         values will access the same job sets upon subsequent power-up.
  4308.  
  4309.         An implementation that has only one job set, such as a printer
  4310.         with a single queue, SHALL hard code this object with the value
  4311.         1.  See Terminology and Job Model on page 12 for the definition
  4312.         of a job set."
  4313.  
  4314.  
  4315.  
  4316. Bergman, Hastings, Isaacson, Lewis                 [Page 72]
  4317.  
  4318.  
  4319.  
  4320.  
  4321.  
  4322.                           Job Monitoring MIB, V0.82     June 9, 1997
  4323.  
  4324.  
  4325.     ::= { jmJobIDEntry 2 }
  4326.  
  4327. jmJobIndex OBJECT-TYPE
  4328.     SYNTAX      Integer32(1..2147483647)
  4329.     MAX-ACCESS  read-only
  4330.     STATUS      current
  4331.     DESCRIPTION
  4332.         "The sequential, monatonically increasing identifier index for
  4333.         the job generated by the server or device when that server or
  4334.         device accepted the job.  This index value permits the
  4335.         management application to access the other tables to obtain the
  4336.         job-specific row entries.  This value SHALL be the index used in
  4337.         the jmJobTable and jmAttributeTable for this job.
  4338.  
  4339.         See jmGeneralNewestActiveJobIndex on page 70 for a discussion
  4340.         about the largest value of jmJobIndex for an implementation.
  4341.  
  4342.         Agents instrumenting systems that contain jobs with a job
  4343.         identifier of 0 SHALL map the job identifier value 0 to a
  4344.         jmJobIndex value that is one higher than the highest job
  4345.         identifier value that any job can have on that system."
  4346.     ::= { jmJobIDEntry 3 }
  4347.  
  4348.  
  4349.  
  4350.  
  4351. -- The Job Group (Mandatory)
  4352.  
  4353. -- The jmJobGroup consists entirely of the jmJobTable.
  4354. --
  4355. -- Implementation of every object in this group is MANDATORY.
  4356. -- See Section 4 entitled 'Conformance Considerations' on page 18.
  4357.  
  4358. jmJob  OBJECT IDENTIFIER ::= { jobmonMIBObjects 3 }
  4359.  
  4360. jmJobTable  OBJECT-TYPE
  4361.     SYNTAX      SEQUENCE OF JmJobEntry
  4362.     MAX-ACCESS  not-accessible
  4363.     STATUS      current
  4364.     DESCRIPTION
  4365.         "The jmJobTable consists of basic job state and status
  4366.         information for each job in a job set that (1) monitoring
  4367.         applications need to be able to access in a single SNMP Get
  4368.         operation, (2) that have a single value per job, and (3) that
  4369.         SHALL always be implemented."
  4370.     ::= { jmJob 1 }
  4371.  
  4372. jmJobEntry  OBJECT-TYPE
  4373.  
  4374.  
  4375.  
  4376. Bergman, Hastings, Isaacson, Lewis                 [Page 73]
  4377.  
  4378.  
  4379.  
  4380.  
  4381.  
  4382.                           Job Monitoring MIB, V0.82     June 9, 1997
  4383.  
  4384.  
  4385.     SYNTAX      JmJobEntry
  4386.     MAX-ACCESS  not-accessible
  4387.     STATUS      current
  4388.     DESCRIPTION
  4389.         "Basic per-job state and status information.
  4390.  
  4391.         An entry SHALL exist in this table for each job, no matter what
  4392.         the state of the job is.  Each job SHALL appear in one and only
  4393.         one job set."
  4394.     INDEX  { jmJobSetIndex, jmJobIndex }
  4395.     ::= { jmJobTable 1 }
  4396.  
  4397. JmJobEntry ::= SEQUENCE {
  4398.     jmJobState                            JmJobStateTC,          -- pg 32
  4399.     jmJobStateReasons1                    JmJobStateReasons1TC,  -- pg 59
  4400.     jmNumberOfInterveningJobs             Integer32(-2..2147483647),
  4401.     jmJobKOctetsRequested                 Integer32(-2..2147483647),
  4402.     jmJobKOctetsProcessed                 Integer32(-2..2147483647),
  4403.     jmJobImpressionsRequested             Integer32(-2..2147483647),
  4404.     jmJobImpressionsCompleted             Integer32(-2..2147483647)
  4405.  
  4406. }
  4407.  
  4408.  
  4409.  
  4410. jmJobState OBJECT-TYPE
  4411.     SYNTAX      JmJobStateTC              -- See page 32
  4412.     MAX-ACCESS  read-only
  4413.     STATUS      current
  4414.     DESCRIPTION
  4415.         "The current state of the job (pending, processing, completed,
  4416.         etc.).  Even though the JmJobStateTC textual-convention defines
  4417.         nine values for job states, agents SHALL only implement those
  4418.         states which are appropriate for the particular implementation.
  4419.         In other words, all possible enums for this object SHALL be
  4420.         reported if implemented by the device and available to the
  4421.         agent.  However, management applications SHALL be prepared to
  4422.         receive all the standard job states.
  4423.  
  4424.         The final value for this object SHALL be one of: completed,
  4425.         canceled, or aborted.  The minimum length of time that the agent
  4426.         SHALL keep a job in the completed, canceled, or aborted state
  4427.         before removing the job from the jmJobIDTable and jmJobTable is
  4428.         specified by the value of the jmGeneralJobPersistence object."
  4429.     ::= { jmJobEntry 1 }
  4430.  
  4431. jmJobStateReasons1 OBJECT-TYPE
  4432.     SYNTAX      JmJobStateReasons1TC              -- See page 59
  4433.  
  4434.  
  4435.  
  4436. Bergman, Hastings, Isaacson, Lewis                 [Page 74]
  4437.  
  4438.  
  4439.  
  4440.  
  4441.  
  4442.                           Job Monitoring MIB, V0.82     June 9, 1997
  4443.  
  4444.  
  4445.     MAX-ACCESS  read-only
  4446.     STATUS      current
  4447.     DESCRIPTION
  4448.         "Additional information about the job's current state, i.e.,
  4449.         information that augments the value of the job's jmJobState
  4450.         object.
  4451.  
  4452.         NOTE - The jobStateReasonsn (n=2..4) attributes (see page 39)
  4453.         provide further additional information about the job's current
  4454.         state.
  4455.  
  4456.         Implementation of these values is OPTIONAL, i.e., an agent NEED
  4457.         NOT implement them, even if (1) the device supports the
  4458.         functionality represented by the reason and (2) is available to
  4459.         the agent.  These values MAY be used with any job state or
  4460.         states for which the reason makes sense.  Furthermore, when
  4461.         implemented, the agent SHALL return these values when the reason
  4462.         applies and SHALL NOT return them when the reason no longer
  4463.         applies whether the value of the job's jmJobState object changed
  4464.         or not.  When the job does not have any reasons for being in its
  4465.         current state, the agent SHALL set the value of the
  4466.         jmJobStateReasons1 object and jobStateReasonsn attributes to 0.
  4467.  
  4468.         NOTE - While values cannot be added to the jmJobState object
  4469.         without impacting deployed clients that take actions upon
  4470.         receiving jmJobState values, it is the intent that additional
  4471.         JmJobStateReasonsnTC enums can be defined and registered without
  4472.         impacting such deployed clients.  In other words, the
  4473.         jmJobStateReasons1 object and jobStateReasonsn attributes are
  4474.         intended to be extensible."
  4475.     ::= { jmJobEntry 2 }
  4476.  
  4477. jmNumberOfInterveningJobs OBJECT-TYPE
  4478.     SYNTAX      Integer32(-2..2147483647)
  4479.     MAX-ACCESS  read-only
  4480.     STATUS      current
  4481.     DESCRIPTION
  4482.         "The number of jobs that are expected to be processed before
  4483.         this job is processed according to the implementation's queuing
  4484.         algorithm if no other jobs were to be submitted.  In other
  4485.         words, this value is the job's queue position.  The agent SHALL
  4486.         return a value of 0 for this attribute when this job starts
  4487.         processing (since there are no jobs in front of the job)."
  4488.     ::= { jmJobEntry 3 }
  4489.  
  4490. jmJobKOctetsRequested OBJECT-TYPE
  4491.     SYNTAX      Integer32(-2..2147483647)
  4492.     MAX-ACCESS  read-only
  4493.  
  4494.  
  4495.  
  4496. Bergman, Hastings, Isaacson, Lewis                 [Page 75]
  4497.  
  4498.  
  4499.  
  4500.  
  4501.  
  4502.                           Job Monitoring MIB, V0.82     June 9, 1997
  4503.  
  4504.  
  4505.     STATUS      current
  4506.     DESCRIPTION
  4507.         "The total size in K (1024) octets of the document(s) being
  4508.         requested to be processed in the job.  The agent SHALL round the
  4509.         actual number of octets up to the next highest K.  Thus 0 octets
  4510.         SHALL be represented as 0, 1-1024 octets SHALL be represented as
  4511.         1, 1025-2048 SHALL be represented as 2, etc.
  4512.  
  4513.         The server/device MAY update the value of this attribute after
  4514.         each document has been transferred to the server/device or the
  4515.         server/device MAY provide this value after all documents have
  4516.         been transferred to the server/device, depending on
  4517.         implementation.  In other words, while the job is in the
  4518.         pendingHeld state with the jmJobStateReasons1 object containing
  4519.         a jobIncoming value, the value of the jmJobKOctetsRequested
  4520.         object depends on implementation and MAY not correctly reflect
  4521.         the size of the job.
  4522.  
  4523.         In computing this value, the server/device SHALL not include the
  4524.         multiplicative factors contributed by (1) the number of document
  4525.         copies, and (2) the number of job copies, independent of whether
  4526.         the device can process multiple copies of the job or document
  4527.         without making multiple passes over the job or document data and
  4528.         independent of  whether the output is collated or not.  Thus the
  4529.         server/device computation is independent of the implementation."
  4530.     ::= { jmJobEntry 4 }
  4531.  
  4532. jmJobKOctetsProcessed OBJECT-TYPE
  4533.     SYNTAX      Integer32(-2..2147483647)
  4534.     MAX-ACCESS  read-only
  4535.     STATUS      current
  4536.     DESCRIPTION
  4537.         "The current number of octets processed by the server or device
  4538.         measured in units of K (1024) octets.  The agent SHALL round the
  4539.         actual number of octets processed up to the next higher K.  Thus
  4540.         0 octets SHALL be represented as 0, 1-1024 octets SHALL be
  4541.         represented as 1, 1025-2048 octets SHALL be 2, etc.  For
  4542.         printing devices, this value is the number interpreted by the
  4543.         page description language interpreter rather than what has been
  4544.         marked on media.  For implementations where multiple copies are
  4545.         produced by the interpreter makes only a single pass over the
  4546.         document, the final value SHALL be equal to the value of the
  4547.         jmJobKOctetsRequested object.  For implementations where
  4548.         multiple copies are produced by the interpreter making multiple
  4549.         passes over the document, the final value SHALL be a multiple of
  4550.         the value of the jmJobKOctetsRequested object.
  4551.  
  4552.  
  4553.  
  4554.  
  4555.  
  4556. Bergman, Hastings, Isaacson, Lewis                 [Page 76]
  4557.  
  4558.  
  4559.  
  4560.  
  4561.  
  4562.                           Job Monitoring MIB, V0.82     June 9, 1997
  4563.  
  4564.  
  4565.         NOTE - See the impressionsCompletedCurrentCopy and
  4566.         pagesCompletedCurrentCopy attributes for attributes that are
  4567.         reset on each document copy.
  4568.  
  4569.         NOTE - The jmJobKOctetsProcessed object can be used in the
  4570.         numerator with the jmJobKOctetsRequested object in the
  4571.         denominator in order to produce a 'thermometer' that indicates
  4572.         the progress of the job, provided that the multiplicative factor
  4573.         is taken into account for some implementations of multiple
  4574.         copies."
  4575.     ::= { jmJobEntry 5 }
  4576.  
  4577. jmJobImpressionsRequested OBJECT-TYPE
  4578.     SYNTAX      Integer32(-2..2147483647)
  4579.     MAX-ACCESS  read-only
  4580.     STATUS      current
  4581.     DESCRIPTION
  4582.         "The number of impressions requested by this job to produce."
  4583.     ::= { jmJobEntry 6 }
  4584.  
  4585. jmJobImpressionsCompleted OBJECT-TYPE
  4586.     SYNTAX      Integer32(-2..2147483647)
  4587.     MAX-ACCESS  read-only
  4588.     STATUS      current
  4589.     DESCRIPTION
  4590.         "The current number of impressions completed for this job so
  4591.         far.  For printing devices, the impressions completed includes
  4592.         interpreting, marking, and stacking the output.  For other types
  4593.         of job services, the number of impressions completed includes
  4594.         the number of impressions processed."
  4595.     ::= { jmJobEntry 7 }
  4596.  
  4597.  
  4598.  
  4599.  
  4600. -- The Attribute Group (Mandatory)
  4601.  
  4602. -- The jmAttributeGroup consists entirely of the jmAttributeTable.
  4603. --
  4604. -- Implementation of the two objects in this group is MANDATORY.
  4605. -- See Section 4 entitled 'Conformance Considerations' on page 18.
  4606. --
  4607. -- A few attributes are MANDATORY for agent conformance, and the rest
  4608. -- are OPTIONAL.  See the specification of the JmAttributeTypeTC on
  4609. -- page 35 for which attributes are MANDATORY for agents to implement.
  4610.  
  4611. jmAttribute  OBJECT IDENTIFIER ::= { jobmonMIBObjects 4 }
  4612.  
  4613.  
  4614.  
  4615.  
  4616. Bergman, Hastings, Isaacson, Lewis                 [Page 77]
  4617.  
  4618.  
  4619.  
  4620.  
  4621.  
  4622.                           Job Monitoring MIB, V0.82     June 9, 1997
  4623.  
  4624.  
  4625. jmAttributeTable  OBJECT-TYPE
  4626.     SYNTAX      SEQUENCE OF JmAttributeEntry
  4627.     MAX-ACCESS  not-accessible
  4628.     STATUS      current
  4629.     DESCRIPTION
  4630.         "The jmAttributeTable SHALL contain attributes of the job and
  4631.         document(s) for each job in a job set.  Instead of allocating
  4632.         distinct objects for each attribute, each attribute is
  4633.         represented as a separate row in the jmAttributeTable."
  4634.     ::= { jmAttribute 1 }
  4635.  
  4636. jmAttributeEntry  OBJECT-TYPE
  4637.     SYNTAX      JmAttributeEntry
  4638.     MAX-ACCESS  not-accessible
  4639.     STATUS      current
  4640.     DESCRIPTION
  4641.         "Attributes representing information about the job and
  4642.         document(s) or resources required and/or consumed.
  4643.  
  4644.         Each entry in the jmAttributeTable is a per-job entry with an
  4645.         extra index for each type of attribute (jmAttributeTypeIndex)
  4646.         that a job can have and an additional index
  4647.         (jmAttributeInstanceIndex) for those attributes that can have
  4648.         multiple instances per job.  The jmAttributeTypeIndex object
  4649.         SHALL contain an enum type that indicates the type of attribute
  4650.         (see JmAttributeTypeTC on page 35).  The value of the attribute
  4651.         SHALL be represented in either the jmAttributeValueAsInteger or
  4652.         jmAttributeValueAsOctets objects, and/or both, as specified in
  4653.         the JmAttributeTypeTC textual-convention.
  4654.  
  4655.         The agent SHALL create rows in the jmAttributeTable as the
  4656.         server or device is able to discover the attributes either from
  4657.         the job submission protocol itself or from the document PDL.  As
  4658.         the documents are interpreted, the interpreter MAY discover
  4659.         additional attributes and so the agent adds additional rows to
  4660.         this table.  As the attributes that represent resources are
  4661.         actually consumed, the usage counter contained in the
  4662.         jmAttributeValueAsInteger object is incremented according to the
  4663.         units indicated in the description of the JmAttributeTypeTC
  4664.         enum.
  4665.  
  4666.         The agent SHALL maintain each row in the jmJobTable for at least
  4667.         the minimum time after a job completes as specified by the
  4668.         jmGeneralAttributePersistence (see page 72).
  4669.  
  4670.         Zero or more entries SHALL exist in this table for each job in a
  4671.         job set.  Each job SHALL appear in one and only one job set."
  4672.  
  4673.  
  4674.  
  4675.  
  4676. Bergman, Hastings, Isaacson, Lewis                 [Page 78]
  4677.  
  4678.  
  4679.  
  4680.  
  4681.  
  4682.                           Job Monitoring MIB, V0.82     June 9, 1997
  4683.  
  4684.  
  4685.     INDEX  { jmJobSetIndex, jmJobIndex, jmAttributeTypeIndex,
  4686.     jmAttributeInstanceIndex }
  4687.     ::= { jmAttributeTable 1 }
  4688.  
  4689. JmAttributeEntry ::= SEQUENCE {
  4690.     jmAttributeTypeIndex          JmAttributeTypeTC,        -- pg 35
  4691.     jmAttributeInstanceIndex      Integer32(1..32767),
  4692.     jmAttributeValueAsInteger     Integer32(-2..2147483647),
  4693.     jmAttributeValueAsOctets      OCTET STRING(SIZE(0..63))
  4694. }
  4695.  
  4696. jmAttributeTypeIndex OBJECT-TYPE
  4697.     SYNTAX      JmAttributeTypeTC        -- See page 35
  4698.     MAX-ACCESS  not-accessible
  4699.     STATUS      current
  4700.     DESCRIPTION
  4701.         "The type of attribute that this row entry represents.
  4702.  
  4703.         The type MAY identify information about the job or document(s)
  4704.         or MAY identify a resource required to process the job before
  4705.         the job start processing and/or consumed by the job as the job
  4706.         is processed.
  4707.  
  4708.         Examples of job and document attributes include:
  4709.         jobCopiesRequested, documentCopiesRequested, jobCopiesCompleted,
  4710.         documentCopiesCompleted, fileName, and documentName.
  4711.  
  4712.         Examples of required and consumed resource attributes include:
  4713.         pagesRequested, pagesCompleted, mediumRequested, and
  4714.         mediumConsumed, respectively."
  4715.     ::= { jmAttributeEntry 1 }
  4716.  
  4717. jmAttributeInstanceIndex OBJECT-TYPE
  4718.     SYNTAX      Integer32(1..32767)
  4719.     MAX-ACCESS  not-accessible
  4720.     STATUS      current
  4721.     DESCRIPTION
  4722.         "A running 16-bit index of the attributes of the same type for
  4723.         each job.  For those attributes with only a single instance per
  4724.         job, this index value SHALL be 1.  For those attributes that are
  4725.         a single value per document, the index value SHALL be the
  4726.         document number, starting with 1 for the first document in the
  4727.         job.  Jobs with only a single document SHALL use the index value
  4728.         of 1.  For those attributes that can have multiple values per
  4729.         job or per document, such as documentFormatIndex or
  4730.         documentFormat, the index SHALL be a running index for the job
  4731.         as a whole, starting at 1."
  4732.     ::= { jmAttributeEntry 2 }
  4733.  
  4734.  
  4735.  
  4736. Bergman, Hastings, Isaacson, Lewis                 [Page 79]
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.                           Job Monitoring MIB, V0.82     June 9, 1997
  4743.  
  4744.  
  4745.  
  4746. jmAttributeValueAsInteger OBJECT-TYPE
  4747.     SYNTAX      Integer32(-2..2147483647)
  4748.     MAX-ACCESS  read-only
  4749.     STATUS      current
  4750.     DESCRIPTION
  4751.         "The integer value of the attribute.  The value of the attribute
  4752.         SHALL be represented as an integer if the enum description in
  4753.         the JmAttributeTypeTC definition (see page 35) has the tag:
  4754.         'INTEGER:'.
  4755.  
  4756.         Depending on the enum definition, this object value MAY be an
  4757.         integer, a counter, an index, or an enum, depending on the
  4758.         jmAttributeTypeIndex value.  The units of this value are
  4759.         specified in the enum description.
  4760.  
  4761.         For those attributes that are accumulating job consumption as
  4762.         the job is processed as specified in the JmAttributeTypeTC,
  4763.         SHALL contain the final value after the job completes
  4764.         processing, i.e., this value SHALL indicate the total usage of
  4765.         this resource made by the job.
  4766.  
  4767.         A monitoring application is able to copy this value to a
  4768.         suitable longer term storage for later processing as part of an
  4769.         accounting system.
  4770.  
  4771.         Since the agent MAY add attributes representing resources to
  4772.         this table while the job is waiting to be processed or being
  4773.         processed, which can be a long time before any of the resources
  4774.         are actually used, the agent SHALL set the value of the
  4775.         jmAttributeValueAsInteger object to 0 for resources that the job
  4776.         has not yet consumed.
  4777.  
  4778.         Attributes for which the concept of an integer value is
  4779.         meaningless, such as fileName, interpreter, and physicalDevice,
  4780.         do not have the 'INTEGER:' tag in the JmAttributeTypeTC
  4781.         definition and so SHALL return a value of (-1) to indicate other
  4782.         for jmAttributeValueAsInteger.
  4783.  
  4784.         For attributes which do have the 'INTEGER:' tag in the
  4785.         JmAttributeTypeTC definition, if the integer value is not (yet)
  4786.         known, the value SHALL be (-2) to represent unknown counting
  4787.         integers, (2) to represent unknown enum values, or the attribute
  4788.         row SHALL not be present in the table."
  4789.     ::= { jmAttributeEntry 3 }
  4790.  
  4791. jmAttributeValueAsOctets OBJECT-TYPE
  4792.     SYNTAX      OCTET STRING(SIZE(0..63))
  4793.  
  4794.  
  4795.  
  4796. Bergman, Hastings, Isaacson, Lewis                 [Page 80]
  4797.  
  4798.  
  4799.  
  4800.  
  4801.  
  4802.                           Job Monitoring MIB, V0.82     June 9, 1997
  4803.  
  4804.  
  4805.     MAX-ACCESS  read-only
  4806.     STATUS      current
  4807.     DESCRIPTION
  4808.         "The octet string value of the attribute.  The value of the
  4809.         attribute SHALL be represented as an OCTET STRING if the enum
  4810.         description in the JmAttributeTypeTC definition (see page 35)
  4811.         has the tag: 'OCTETS:'.
  4812.  
  4813.         Depending on the enum definition, this object value MAY be a
  4814.         coded character set string (text) or a binary octet string, such
  4815.         as DateAndTime.
  4816.  
  4817.         Attributes for which the concept of an octet string value is
  4818.         meaningless, such as pagesCompleted, do not have the tag
  4819.         'OCTETS:' in the JmAttributeTypeTC definition and so the agent
  4820.         SHALL return a zero length string for the value of the
  4821.         jmAttributeValueAsOctets object."
  4822.     ::= { jmAttributeEntry 4 }
  4823.  
  4824.  
  4825.  
  4826.  
  4827.  
  4828.  
  4829.  
  4830.  
  4831.  
  4832.  
  4833.  
  4834.  
  4835.  
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841.  
  4842.  
  4843.  
  4844.  
  4845.  
  4846.  
  4847.  
  4848.  
  4849.  
  4850.  
  4851.  
  4852.  
  4853.  
  4854.  
  4855.  
  4856. Bergman, Hastings, Isaacson, Lewis                 [Page 81]
  4857.  
  4858.  
  4859.  
  4860.  
  4861.  
  4862.                           Job Monitoring MIB, V0.82     June 9, 1997
  4863.  
  4864.  
  4865. -- Notifications and Trapping
  4866. -- Reserved for the future
  4867.  
  4868. jobmonMIBNotifications  OBJECT IDENTIFIER  ::= { jobmonMIB 2}
  4869.  
  4870.  
  4871.  
  4872. -- Conformance Information
  4873.  
  4874. jmMIBConformance OBJECT IDENTIFIER ::= { jobmonMIB 3 }
  4875.  
  4876. -- compliance statements
  4877. jmMIBCompliance MODULE-COMPLIANCE
  4878.     STATUS  current
  4879.     DESCRIPTION
  4880.         "The compliance statement for agents that implement the
  4881.         job monitoring MIB."
  4882.     MODULE -- this module
  4883.     MANDATORY-GROUPS {
  4884.         jmGeneralGroup, jmJobIDGroup, jmJobGroup, jmAttributeGroup }
  4885.  
  4886.         -- OBJECT jmAttributeTypeIndex
  4887.         -- SYNTAX      INTEGER {
  4888.         --    jobOwner(20)
  4889.         -- }
  4890.     -- DESCRIPTION
  4891.         --"It is conformant for an agent to implement the one mandatory
  4892.         -- attribute.  Any additional attributes are OPTIONAL,
  4893.         -- i.e., an agent NEED NOT represent any additional
  4894.         -- attributes that the server or device implements.  However, a
  4895.         -- client SHALL accept all of the attributes from an agent and
  4896.         -- either display them to its user or ignore them.
  4897.         --
  4898.         -- NOTE - SMI does not allow an enum to be declared as mandatory
  4899.         -- if that enum is not a member of a group, but
  4900.         -- jmAttributeTypeIndex cannot be a member of a group and still
  4901.         -- be not-accessible.  So this MIB spec comments the MANDATORY
  4902.         -- attributes as if SMI allowed such a declaration in order to
  4903.         -- declare the MANDATORY attributes."
  4904.  
  4905. -- There are no CONDITIONALLY MANDATORY or OPTIONAL groups.
  4906.  
  4907.     ::= { jmMIBConformance 1 }
  4908.  
  4909. jmMIBGroups      OBJECT IDENTIFIER ::= { jmMIBConformance 2 }
  4910.  
  4911. jmGeneralGroup OBJECT-GROUP
  4912.     OBJECTS {
  4913.  
  4914.  
  4915.  
  4916. Bergman, Hastings, Isaacson, Lewis                 [Page 82]
  4917.  
  4918.  
  4919.  
  4920.  
  4921.  
  4922.                           Job Monitoring MIB, V0.82     June 9, 1997
  4923.  
  4924.  
  4925.         jmGeneralNumberOfActiveJobs, jmGeneralOldestActiveJobIndex,
  4926.         jmGeneralNewestActiveJobIndex, jmGeneralJobPersistence,
  4927.         jmGeneralAttributePersistence, jmGeneralJobSetName}
  4928.     STATUS  current
  4929.     DESCRIPTION
  4930.         "The general group."
  4931.     ::= { jmMIBGroups 1 }
  4932.  
  4933. jmJobIDGroup OBJECT-GROUP
  4934.     OBJECTS {
  4935.         jmJobSetIndex, jmJobIndex }
  4936.     STATUS  current
  4937.     DESCRIPTION
  4938.         "The job ID group."
  4939.     ::= { jmMIBGroups 2 }
  4940.  
  4941. jmJobGroup OBJECT-GROUP
  4942.     OBJECTS {
  4943.         jmJobState, jmJobStateReasons1, jmNumberOfInterveningJobs,
  4944.         jmJobKOctetsRequested, jmJobKOctetsProcessed,
  4945.         jmJobImpressionsRequested, jmJobImpressionsCompleted }
  4946.     STATUS  current
  4947.     DESCRIPTION
  4948.         "The job group."
  4949.     ::= { jmMIBGroups 3 }
  4950.  
  4951. jmAttributeGroup OBJECT-GROUP
  4952.     OBJECTS {
  4953.         jmAttributeValueAsInteger, jmAttributeValueAsOctets }
  4954.     STATUS  current
  4955.     DESCRIPTION
  4956.         "The attribute group."
  4957.     ::= { jmMIBGroups 4 }
  4958.  
  4959.  
  4960. END
  4961.  
  4962.  
  4963.  
  4964.  
  4965.  
  4966.  
  4967.  
  4968.  
  4969.  
  4970.  
  4971.  
  4972.  
  4973.  
  4974.  
  4975.  
  4976. Bergman, Hastings, Isaacson, Lewis                 [Page 83]
  4977.  
  4978.  
  4979.  
  4980.  
  4981.  
  4982.                           Job Monitoring MIB, V0.82     June 9, 1997
  4983.  
  4984.  
  4985.  
  4986. 12. Appendix A - Instrumenting the Job Life Cycle
  4987.  
  4988. The job object has well-defined states and client operations that affect
  4989. the transition between the job states.  Internal server and device
  4990. actions also affect the transitions of the job between the job states.
  4991. These states and transitions are referred to as the job's life cycle.
  4992.  
  4993. Not all implementations of job submission protocols have all of the
  4994. states of the job model specified here.  The job model specified here is
  4995. intended to be a superset of most implementations.  It is the purpose of
  4996. the agent to map the particular implementation's job life cycle onto the
  4997. one specified here.  The agent MAY omit any states not implemented.
  4998. Only the processing, canceled, aborted, and completed states are
  4999. required to be implemented by an agent.  However, a conforming
  5000. management application SHALL be prepared to accept any of the states in
  5001. the job life cycle specified here, so that the management application
  5002. can interoperate with any conforming agent.
  5003.  
  5004. The job states are intended to be the user visible.  The agent SHALL
  5005. make these states visible in the MIB, but only for the subset of job
  5006. states that the implementation has.  Implementations MAY need to have
  5007. sub-states of these user-visible states.  Such implementation is not
  5008. specified in this model, is not supported by this Job Monitoring MIB,
  5009. and will vary from implementation to implementation.  In some
  5010. implementations the jmJobStateReasons1 object and the jobStateReasonsn
  5011. (n=2..4) attributes MAY represent some or all of the sub-states of the
  5012. jobs.
  5013.  
  5014. One of the purposes of the job life cycle is to specify what is
  5015. invariant from implementation to implementation as far as the MIB
  5016. specification and the management application is concerned.  Therefore,
  5017. job states are all intended to last a user-visible length of time in
  5018. most implementations.  However, some jobs may pass through some states
  5019. in zero time in some situations and/or in some implementations.
  5020.  
  5021. The job model does not specify how accounting and auditing is
  5022. implemented, except to assume that accounting and auditing logs are
  5023. separate from the job life cycle and last longer than job entries in the
  5024. MIB.  Jobs in the completed, aborted, or canceled states are not logs,
  5025. since jobs in these states are accessible via SNMP protocol operations
  5026. and SHALL be removed from the Job Monitoring MIB tables after a site-
  5027. settable or implementation-defined period of time.  An accounting
  5028. application MAY copy accounting information incrementally to an
  5029. accounting logs as a job processes, or MAY be copied while the job is in
  5030. the canceled, aborted, or completed states, depending on implementation.
  5031. The same is true for auditing logs.
  5032.  
  5033.  
  5034.  
  5035. Bergman, Hastings, Isaacson, Lewis                [Page 84]
  5036.  
  5037.  
  5038.  
  5039.  
  5040.  
  5041.                           Job Monitoring MIB, V0.82     June 9, 1997
  5042.  
  5043.  
  5044. The jmJobState object specifies the standard job states.  The normal job
  5045. state transitions are shown in the state transition diagram presented in
  5046. Table 1.    
  5047.  
  5048. 13. APPENDIX B - Support of the Job Submission ID in Job Submission
  5049. Protocols
  5050.  
  5051. This appendix lists the job submission protocols that support the
  5052. concept of a job submission ID and indicates the attribute in that
  5053. protocol.
  5054.  
  5055. 13.1 Hewlett-Packard's Printer Job Language (PJL)
  5056.  
  5057. Hewlett-Packard's Printer Job Language provides job-level printer
  5058. control and printer status information to applications. The PJL JOB
  5059. command is used at the beginning of a print job and can include options
  5060. applying only to that job. A PJL JOB command option has been defined to
  5061. facilitate passing the JobSubmissionID with the print job, as required
  5062. by the Job Monitoring MIB. The option is of the form:
  5063.  
  5064.      SUBMISSIONID = "id string"
  5065.  
  5066.  
  5067. Where the "id string" is a string and must be enclosed in double quotes.
  5068. The format is as described for the jmJobSubmissionID object.
  5069.  
  5070. The entire PJL JOB command with the optional parameter would be of the
  5071. form:
  5072.  
  5073.      @PJL JOB SUBMISSIONID = "id string"
  5074.  
  5075.  
  5076. See "Printer Job Language Technical Reference Manual", part number 5021-
  5077. 0328, from Hewlett-Packard for complete information on the PJL JOB
  5078. command and the Printer Job Language.
  5079.  
  5080. 14. Bibliography
  5081.  
  5082. [1] The Printer MIB - RFC 1579, proposed IETF standard.  Also an
  5083. Internet-Draft on the standards track as a draft standard: draft-ietf-
  5084. printmib-mib-info-01.txt
  5085.  
  5086. [2] ISO/IEC 10175 Document Printing Application (DPA).  See
  5087. ftp://ftp.pwg.org/pub/pwg/dpa/
  5088.  
  5089.  
  5090.  
  5091.  
  5092.  
  5093.  
  5094. Bergman, Hastings, Isaacson, Lewis                [Page 85]
  5095.  
  5096.  
  5097.  
  5098.  
  5099.  
  5100.                           Job Monitoring MIB, V0.82     June 9, 1997
  5101.  
  5102.  
  5103. [3] Internet Printing Protocol (IPP), in progress on the IETF standards
  5104. track.  See draft-ietf-ipp-model-01.txt.  See also
  5105. http://www.pwg.org/ipp/index.html
  5106.  
  5107. [4] IEEE 1284.1, Transport-independent Printer System Interface (TIPSI).
  5108.  
  5109. [5] MIB-II, RFC 1213.
  5110.  
  5111. [6] Host Resources MIB, RFC 1514
  5112.  
  5113. [7] RFC 2119
  5114.  
  5115. 15. Author's Addresses
  5116.     Ron Bergman
  5117.     Dataproducts Corp.
  5118.     1757 Tapo Canyon Road
  5119.     Simi Valley, CA 93063-3394
  5120.  
  5121.     Phone: 805-578-4421
  5122.     Fax:  805-578-4001
  5123.     Email: rbergman@dpc.com
  5124.  
  5125.  
  5126.     Tom Hastings
  5127.     Xerox Corporation, ESAE-231
  5128.     701 S. Aviation Blvd.
  5129.     El Segundo, CA   90245
  5130.  
  5131.     Phone: 310-333-6413
  5132.     Fax:   310-333-5514
  5133.     EMail: hastings@cp10.es.xerox.com
  5134.  
  5135.  
  5136.     Scott A. Isaacson
  5137.     Novell, Inc.
  5138.     122 E 1700 S
  5139.     Provo, UT   84606
  5140.  
  5141.     Phone: 801-861-7366
  5142.     Fax:   801-861-4025
  5143.     EMail: scott_isaacson@novell.com
  5144.  
  5145.  
  5146.     Harry Lewis
  5147.     IBM Corporation
  5148.     6300 Diagonal Hwy
  5149.     Boulder, CO 80301
  5150.  
  5151.  
  5152.  
  5153. Bergman, Hastings, Isaacson, Lewis                [Page 86]
  5154.  
  5155.  
  5156.  
  5157.  
  5158.  
  5159.                           Job Monitoring MIB, V0.82     June 9, 1997
  5160.  
  5161.  
  5162.  
  5163.     Phone: (303) 924-5337
  5164.     Fax:
  5165.     Email: harryl@us.ibm.com
  5166.  
  5167.  
  5168.     Send comments to the printmib WG using the Job Monitoring Project
  5169.     (JMP) Mailing List:  jmp@pwg.org
  5170.  
  5171.     To learn how to subscribe, send email to:  jmp-request@pwg.org
  5172.  
  5173.     For further information, access the PWG web page under "JMP":
  5174.     http://www.pwg.org/
  5175.  
  5176.  
  5177.  
  5178. Other Participants:
  5179.     Chuck Adams - Tektronix
  5180.     Jeff Barnett - IBM
  5181.     Keith Carter, IBM Corporation
  5182.     Jeff Copeland - QMS
  5183.     Andy Davidson - Tektronix
  5184.     Roger deBry - IBM
  5185.     Mabry Dozier - QMS
  5186.     Lee Ferrel - Canon
  5187.     Steve Gebert - IBM
  5188.     Robert Herriot - Sun Microsystems Inc.
  5189.     Shige Kanemitsu - Kyocera
  5190.     David Kellerman - Northlake Software
  5191.     Rick Landau - Digital
  5192.     Harry Lewis - IBM
  5193.     Pete Loya - HP
  5194.     Ray Lutz - Cognisys
  5195.     Jay Martin - Underscore
  5196.     Mike MacKay, Novell, Inc.
  5197.     Stan McConnell - Xerox
  5198.     Carl-Uno Manros, Xerox, Corp.
  5199.     Pat Nogay - IBM
  5200.     Bob Pentecost - HP
  5201.     Rob Rhoads - Intel
  5202.     David Roach - Unisys
  5203.     Hiroyuki Sato - Canon
  5204.     Bob Setterbo - Adobe
  5205.     Gail Songer, EFI
  5206.     Mike Timperman - Lexmark
  5207.     Randy Turner - Sharp
  5208.     William Wagner - Digital Products
  5209.  
  5210.  
  5211.  
  5212. Bergman, Hastings, Isaacson, Lewis                [Page 87]
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218.                           Job Monitoring MIB, V0.82     June 9, 1997
  5219.  
  5220.  
  5221.     Jim Walker - Dazel
  5222.     Chris Wellens - Interworking Labs
  5223.     Rob Whittle - Novell
  5224.     Don Wright - Lexmark
  5225.     Lloyd Young - Lexmark
  5226.     Atsushi Yuki - Kyocera
  5227.     Peter Zehler, Xerox, Corp.
  5228.  
  5229.  
  5230.  
  5231.  
  5232.  
  5233.  
  5234.  
  5235.  
  5236.  
  5237.  
  5238.  
  5239.  
  5240.  
  5241.  
  5242.  
  5243.  
  5244.  
  5245.  
  5246.  
  5247.  
  5248.  
  5249.  
  5250.  
  5251.  
  5252.  
  5253.  
  5254.  
  5255.  
  5256.  
  5257.  
  5258.  
  5259.  
  5260.  
  5261.  
  5262.  
  5263.  
  5264.  
  5265.  
  5266.  
  5267.  
  5268.  
  5269.  
  5270.  
  5271. Bergman, Hastings, Isaacson, Lewis                [Page 88]
  5272.  
  5273.  
  5274.  
  5275.  
  5276.  
  5277.                           Job Monitoring MIB, V0.82     June 9, 1997
  5278.  
  5279.  
  5280. 16. INDEX
  5281.  
  5282. This index includes the textual conventions, the objects, and the
  5283. attributes.  Textual conventions all start with the prefix:  "JM" and
  5284. end with the suffix:  "TC".  Objects all starts with the prefix:  "jm"
  5285. followed by the group name.  Attributes are identified with enums, and
  5286. so start with any lower case letter and have no special prefix.
  5287.  
  5288.  
  5289.                                  ------
  5290.  
  5291. colorantConsumed, 46
  5292. colorantRequested, 46
  5293.  
  5294.                                  --D---
  5295.  
  5296. deviceAlertCode, 34
  5297. deviceNameRequested, 38
  5298. documentCopiesCompleted, 43
  5299. documentCopiesRequested, 43
  5300. documentFormat, 39
  5301. documentFormatIndex, 39
  5302. documentName, 38
  5303.  
  5304.                                  --F---
  5305.  
  5306. fileName, 38
  5307. finishing, 41
  5308. fullColorImpressionsCompleted, 44
  5309.  
  5310.                                  ------
  5311.  
  5312. highlightColorImpressionsCompleted, 44
  5313.  
  5314.                                  --I---
  5315.  
  5316. impressionsCompletedCurrentCopy, 44
  5317. impressionsInterpreted, 44
  5318. impressionsSentToDevice, 44
  5319. impressionsSpooled, 44
  5320.  
  5321.                                  ------
  5322.  
  5323. jmAttributeInstanceIndex, 71
  5324. jmAttributeTypeIndex, 71
  5325. JmAttributeTypeTC, 30
  5326. jmAttributeValueAsInteger, 72
  5327.  
  5328.  
  5329.  
  5330. Bergman, Hastings, Isaacson, Lewis                [Page 89]
  5331.  
  5332.  
  5333.  
  5334.  
  5335.  
  5336.                           Job Monitoring MIB, V0.82     June 9, 1997
  5337.  
  5338.  
  5339. jmAttributeValueAsOctets, 73
  5340. JmFinishingTC, 24
  5341. jmGeneralAttributePersistence, 62
  5342. jmGeneralJobPersistence, 61
  5343. jmGeneralJobSetName, 62
  5344. jmGeneralNewestActiveJobIndex, 60
  5345. jmGeneralNumberOfActiveJobs, 59
  5346. jmGeneralOldestActiveJobIndex, 60
  5347. jmJobImpressionsCompleted, 69
  5348. jmJobImpressionsRequested, 69
  5349. jmJobIndex, 65
  5350. jmJobKOctetsProcessed, 68
  5351. jmJobKOctetsRequested, 68
  5352. JmJobServiceTypesTC, 49
  5353. jmJobSetIndex, 65
  5354. JmJobSourcePlatformTypeTC, 23
  5355. jmJobState, 67
  5356. jmJobStateReasons1, 67
  5357. JmJobStateReasons1TC, 50
  5358. JmJobStateReasons2TC, 53
  5359. JmJobStateReasons3TC, 57
  5360. JmJobStateReasons4TC, 58
  5361. JmJobStateTC, 28
  5362. jmJobSubmissionID, 63
  5363. JmMediumTypeTC, 27
  5364. jmNumberOfInterveningJobs, 68
  5365. JmPrinterResolutionTC, 25
  5366. JmPrintQualityTC, 25
  5367. JmTimeStampTC, 23
  5368. JmTonerEconomyTC, 26
  5369. jobAccountName, 35
  5370. jobComment, 39
  5371. jobCompletedTime, 48
  5372. jobCopiesCompleted, 42
  5373. jobCopiesRequested, 42
  5374. jobHoldUntil, 40, 41
  5375. jobKOctetsTransferred, 43
  5376. jobName, 36
  5377. jobOriginatingHost, 37
  5378. jobOwner, 35
  5379. jobPriority, 40
  5380. jobProcessAfterDateAndTime, 40
  5381. jobProcessingCPUTime, 48
  5382. jobServiceTypes, 36
  5383. jobSourceChannelIndex, 37
  5384. jobSourcePlatformType, 37
  5385. jobStartedBeingHeldTimeStamp, 48
  5386.  
  5387.  
  5388.  
  5389. Bergman, Hastings, Isaacson, Lewis                [Page 90]
  5390.  
  5391.  
  5392.  
  5393.  
  5394.  
  5395.                           Job Monitoring MIB, V0.82     June 9, 1997
  5396.  
  5397.  
  5398. jobStartedProcessingTime, 48
  5399. jobStateReasons2, 34
  5400. jobStateReasons3, 34
  5401. jobStateReasons4, 34
  5402. jobSubmissionToDeviceTime, 47
  5403. jobSubmissionToServerTime, 47
  5404.  
  5405.                                  --M---
  5406.  
  5407. mediumConsumedName, 46
  5408. mediumRequested, 46
  5409.  
  5410.                                  --N---
  5411.  
  5412. numberOfDocuments, 38
  5413.  
  5414.                                  ------
  5415.  
  5416. other, 33
  5417. outputBin, 41
  5418.  
  5419.                                  --P---
  5420.  
  5421. pagesCompleted, 45
  5422. pagesCompletedCurrentCopy, 45
  5423. pagesRequested, 45
  5424. physicalDevice, 38
  5425. printerResolutionRequested, 41
  5426. printerResolutionUsed, 42
  5427. printQualityRequested, 41
  5428. printQualityUsed, 41
  5429. processingMessage, 34
  5430.  
  5431.                                  ------
  5432.  
  5433. queueNameRequested, 38
  5434.  
  5435.                                  ------
  5436.  
  5437. serverAssignedJobName, 35
  5438. sheetsCompleted, 45
  5439. sheetsCompletedCurrentCopy, 46
  5440. sheetsRequested, 45
  5441. sides, 41
  5442. submittingApplicationName, 37
  5443. submittingServerName, 37
  5444.  
  5445.  
  5446.  
  5447.  
  5448. Bergman, Hastings, Isaacson, Lewis                [Page 91]
  5449.  
  5450.  
  5451.  
  5452.  
  5453.  
  5454.                           Job Monitoring MIB, V0.82     June 9, 1997
  5455.  
  5456.  
  5457.                                  ------
  5458.  
  5459. timeSinceCompleted, 48
  5460. timeSinceJobWasSubmittedToDevice, 47
  5461. timeSinceStartedProcessing, 48
  5462. tonerDensityRequested, 42
  5463. tonerDensityUsed, 42
  5464. tonerEcomonyRequested, 42
  5465. tonerEcomonyUsed, 42
  5466.  
  5467.                                  --U---
  5468.  
  5469. unknown, 34
  5470.  
  5471.  
  5472.  
  5473.  
  5474.  
  5475.  
  5476.  
  5477.  
  5478.  
  5479.  
  5480.  
  5481.  
  5482.  
  5483.  
  5484.  
  5485.  
  5486.  
  5487.  
  5488.  
  5489.  
  5490.  
  5491.  
  5492.  
  5493.  
  5494.  
  5495.  
  5496.  
  5497.  
  5498.  
  5499.  
  5500.  
  5501.  
  5502.  
  5503.  
  5504.  
  5505.  
  5506.  
  5507. Bergman, Hastings, Isaacson, Lewis                 [Page 92]
  5508.  
  5509.