This mail message contains the complete ASN.1 for the proposal
for an OPTIONAL mirror table to be considered for addition to the
PWG Job Monitoring MIB. It was agreed at the Savannah JMP meeting
that I should forward such a proposal to the jmp mailing list.
As also agreed at the Savannah JMP meeting,
the implementers from Xerox (and others) will discuss on the jmp
mailing list the benefits of this new table for improving the performance
of applications that monitoring jobs. The IBM implementers (and others)
will discuss whether there are other ways to improve the performance,
base on their experience with implementation.
NOTE: David Perkin's book on SNMP contains discussion of just
such a mirror table in order to give different access methods to the
same data.
As agreed in Savannah, there are three possible outcomes of the
jmp e-mail discussions:
1. The mirror table is not considered worth adding even as an OPTIONAL
table, since there are other techniques for getting good performance that
do not require any changes to the MIB.
2. The mirror table helps performance sufficiently for some applications,
that it should be added as an OPTIONAL table (as proposed in this mail
message).
3. The mirror table helps performance sufficiently for most applications,
and is not a burden to implementation (since only the pointers, not the
actual data occurs twice), that it should be made a MANDATORY table.
Hopefully the discussions on the mailing list will be sufficiently
conclusive
that we can finalized on one of the above three courses of action at the
upcoming JMP meeting, Tuesday morning, November 10.
Discussion
----------------
The 'jmMirrorAttrTable' is a proposed addition to the PWG Job Mon MIB.
It supports efficient access to selected job attributes (e.g., reading
'processingMessage' and 'jobStateReasons[2-4]' for all jobs in a job
set) via SNMPv1 GetNext or SNMPv2 GetBulk.
We have included updates for the MODULE-COMPLIANCE and OBJECT-GROUP
macros too.
- Ira McDonald
SS&A Globalisation Consulting Architect, XCMI Editor
906-494-2434 (work)
906-494-2697 (home)
- Tom Hastings
PWG Job Monitoring MIB editor
(310)333-6413 (work)
------------------------------------------------------------------------
-- The Mirror Attribute Group (OPTIONAL)
-- The jmMirrorAttrGroup consists entirely of the jmMirrorAttrTable.
--
-- Implementation of the objects in this group is OPTIONAL.
-- See Section 3.1 entitled 'Conformance Considerations'.
-- The jmMirrorAttrTable complements the MANDATORY jmAttributeTable.
-- An agent which implements the jmMirrorAttrTable SHALL create a
-- row in the jmMirrorAttrTable when each corresponding row is
-- created in the jmAttributeTable.
jmMirrorAttr OBJECT IDENTIFIER ::= { jobmonMIBObjects 5 }
jmMirrorAttrTable OBJECT-TYPE
SYNTAX SEQUENCE OF JmAttributeEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The jmMirrorAttrTable is an OPTIONAL table which contains all
of the same attributes for each job that are contained in the
jmAttributeTable.
Each entry in jmMirrorAttrTable corresponds one-to-one to an
entry in jmAttributeTable. See the analogous jmAttributeTable
for further details.
The jmMirrorAttrTable supports efficient access to all of the
attributes that an implementation supports, sorted by attribute
type (traditional SNMP MIB access), rather than being sorted by
job set and job index (modern object-oriented access) as in the
analogous jmAttributeTable.
An agent which implements the jmMirrorAttrTable SHALL create a
row in the jmMirrorAttrTable when each corresponding row is
created in the jmAttributeTable.
An agent SHALL maintain each row in the jmMirrorAttrTable for
the same time as the corresponding row in the jmAttributeTable.
See Section 3.3 entitled 'The Attribute Mechanism' for a
description of the jmMirrorAttrTable."
::= { jmMirror 1 }
jmMirrorAttrEntry OBJECT-TYPE
SYNTAX JmMirrorAttrEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The attributes that represent information about each job
and documents or resources required and/or consumed.
Each entry in jmMirrorAttrTable corresponds one-to-one to an
entry in jmAttributeTable. See the analogous jmAttributeEntry
for further details.
Each entry in jmMirrorAttrTable is a per-attribute entry with a
primary index for each type of attribute (jmMirrorAttrTypeIndex)
that a job can have and secondary indices which specify job
set (jmJobSetIndex), job instance (jmJobIndex), and attribute
instance (jmMirrorAttrInstanceIndex).
An agent which implements the jmMirrorAttrTable SHALL create a
row in the jmMirrorAttrTable when each corresponding row is
created in the jmAttributeTable.
An agent SHALL maintain each row in the jmMirrorAttrTable for
the same time as the corresponding row in the jmAttributeTable.
See Section 3.3 entitled 'The Attribute Mechanism' for a
description of the jmMirrorAttrTable."
INDEX { jmMirrorAttrTypeIndex, jmGeneralJobSetIndex, jmJobIndex,
jmMirrorAttrInstanceIndex }
::= { jmMirrorAttrTable 1 }
JmMirrorAttrEntry ::= SEQUENCE {
jmMirrorAttrTypeIndex JmAttributeTypeTC,
jmMirrorAttrInstanceIndex Integer32 (1..32767),
jmMirrorAttrValueAsInteger Integer32 (-2..2147483647),
jmMirrorAttrValueAsOctets OCTET STRING(SIZE(0..63))
}
jmMirrorAttrTypeIndex OBJECT-TYPE
SYNTAX JmAttributeTypeTC
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The type of attribute that this row entry represents.
See jmAttributeTypeIndex in jmAttributeTable for complete
description."
::= { jmMirrorAttrEntry 1 }
jmMirrorAttrInstanceIndex OBJECT-TYPE
SYNTAX Integer32 (1..32767)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The instance of attribute that this row entry represents.
See jmAttributeInstanceIndex in jmAttributeTable for complete
description."
::= { jmMirrorAttrEntry 2 }
jmMirrorAttrValueAsInteger OBJECT-TYPE
SYNTAX Integer32 (-2..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The integer value of the attribute.
See jmAttributeValueAsInteger in jmAttributeTable for complete
description."
DEFVAL { -2 } -- default value is unknown(-2)
::= { jmMirrorAttrEntry 3 }
jmMirrorAttrValueAsOctets OBJECT-TYPE
SYNTAX OCTET STRING(SIZE(0..63))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The octet string value of the attribute.
See jmAttributeValueAsOctets in jmAttributeTable for complete
description."
DEFVAL { ''H } -- empty string
::= { jmMirrorAttrEntry 4 }
------------------------------------------------------------------------
[for placement in 'jmMIBCompliance' before the first OBJECT clause]
GROUP jmMirrorAttrGroup
DESCRIPTION
"The mirror attribute group (sorted by attribute type).
Implementation of this group is OPTIONAL.
An agent which implements the jmMirrorAttrTable SHALL create a
row in the jmMirrorAttrTable when each corresponding row is
created in the jmAttributeTable.
An agent SHALL maintain each row in the jmMirrorAttrTable for
the same time as the corresponding row in the jmAttributeTable."
------------------------------------------------------------------------
[for placement after the 'jmMIBCompliance' MODULE-COMPLIANCE macro]
jmMirrorAttrGroup OBJECT-GROUP
OBJECTS {
jmMirrorAttrValueAsInteger, jmMirrorAttrValueAsOctets }
STATUS current
DESCRIPTION
"The mirror attribute group (sorted by attribute type).
Implementation of this group is OPTIONAL.
An agent which implements the jmMirrorAttrTable SHALL create a
row in the jmMirrorAttrTable when each corresponding row is
created in the jmAttributeTable.
An agent SHALL maintain each row in the jmMirrorAttrTable for
the same time as the corresponding row in the jmAttributeTable."
::= { jmMIBGroups 5 }
------------------------------------------------------------------------
Tom Hastings
(310) 333-6413