JMP> Proposal for addition of an OPTIONAL mirror attribute table

JMP> Proposal for addition of an OPTIONAL mirror attribute table

Hastings, Tom N hastings at cp10.es.xerox.com
Wed Oct 21 11:56:00 EDT 1998


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





More information about the Jmp mailing list