[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: J2EE MIB (preliminary draft) (fwd)



Forwarding a non-member submission (a bit late... vacation and such)

Bert 

----------
From: Daniel <anthony@informix.com>
Subject: RE: J2EE MIB (preliminary draft) (fwd)
To: mibs@ops.ietf.org
Date: Tue, 3 Jul 2001 08:41:30 -0700 (PDT)
Hi.  I was directed to this alias by Bert Wijnen.  As part of the
"Java Community Process" a group I'm in (JSR77) is producing an
SNMP MIB for J2EE based on a management model shared across
multiple frameworks.  I haven't written a complete IETF draft
yet, but thought I could send the initial draft anyway.

Comments are welcome.
--
Tony Daniel

> Date: Tue, 3 Jul 2001 12:03:04 +0200 
> From: "Wijnen, Bert (Bert)" <bwijnen@lucent.com>
> To: Tony Daniel <anthony@informix.com>
> Subject: RE: J2EE MIB (preliminary draft)
> 
> I am already on vacation, won't return till July 23rd.
> You can try mibs@ops.ietf.org mailing list for comment too
> 
> Bert 
> 
> -----Original Message-----
> From: Tony Daniel [mailto:anthony@informix.com]
> Sent: maandag 2 juli 2001 23:53
> To: bwijnen@lucent.com
> Subject: J2EE MIB (preliminary draft)
> 
> 
> Hi.  I sent you email two months ago saying we were working on a MIB
> for J2EE management.  Well I don't have a full-blown draft for your
> consideration, but I do have enough of a MIB to possibly make it
> worth getting feedback from you or another SNMP expert of your choice.
> If you want this in the form of a complete and parsable draft then
> ignore this message; otherwise, here's what I have so far.
> 
> I have a few comments worth noting:
> > - This was written for inclusion as a chapter in a Java Community
> >   process spec.  Right now it's not formatted correctly for an IETF
> >   document, but we'll get there at some point.
> > - To shorten the document I didn't expand out the repetitive instances
> >   of management object MIB objects (all of our MIB tables have a set
> >   of template-like objects for names and common attributes like state
> >   manageability attributes.  I have to do that expansion to get it to
> >   pass the MIB compiler but I think its easier to review without the
> >   expansions.
> > 
> > - I didn't enumerate all the performance-augmented tables, also to
> >   shorten the document.
> > 
> > - I didn't do the conformance section (pretty routine).  We are going to
> >   make all of the performance-augmented tables optional, and state
> >   management is also optional.
> > 
> > - I've got introductory text to add.
> 
> I have some areas I want to draw attention to:
> >
> > - J2EE runs on one more more nodes.  The scope of what we are calling
> >   a J2EE management domain can span multiple nodes.  We don't say anything
> >   about which of the nodes can or cannot have an SNMP agent running on
> >   it.  We do model some objects after state that would be remote to the
> >   node that the SNMP agent is running on if the domain is multi-node.
> >   We don't address how a single domain view is assembled from state that
> >   spans nodes like that.
> >
> > - J2EE is obviously middleware running on systems which could have other
> >   middleware and other software on it which could also be instrumented
> >   for SNMP support.  We don't call out any way to integrate our MIB with
> >   any other slightly overlapping systems management MIB (the way that
> >   the database server MIB overlapped with the application MIB.
> >
> > - We are using AUGMENTS as a way to deal with some object-oriented
> >   overloading in our management model.  I haven't seen a lot of use
> >   of AUGMENT but this seemed to be a legitimate approach.
> >
> > - We have avoided any traps in the MIB even though we have some pretty
> >   fine-grained event support in the core J2EE management model.
> >
> > - We need to identify vendors for various services we are exposing as
> >   well as J2EE itself.  In RFC1697 we used something we called a
> >   the PrivateMibOID, defining it as an OBJECT IDENTIFIER and requiring
> >   companies to register (e.g.  { enterprises 893 } for Informix). Is
> >   that technique still appropriate?
> 
> The rest of this email is the draft of the MIB itself.
> --
> Tony Daniel
> 
> 
> ---------- MIB ---------- MIB ---------- MIB ---------- MIB ---------- MIB

Status of this Chapter

   This chapter is the starting point for an Internet-Draft.  Internet-Drafts
   are working documents of the Internet Engineering Task Force (IETF), its
   areas, and its working groups.  To facilitate initial rounds of review,
   it has been incorporated into this specification.  It is anticipated
   that after completion of Public Review, this chapter will be replaced
   by a reference to the separate, formal Internet-Draft based on this
   chapter.

Abstract

   This chapter defines a portion of the Management Information Base (MIB)
   for use with network and systems management protocols in the Internet
   community.  In particular, it describes a set of managed objects that
   allow for the monitoring of the Jave 2 Enterprise Edition Platform.

1.  Introduction

   As part of the Java Community Process, JSR 77 was formed to define a
   portable managment information model for the Java 2 Enterprise Edition
   Platform, the J2EE Management Model.  The J2EE Managment Model is a UML
   model which describes the structure, format, and semantics of management
   data for the J2EE Platform.  This chapter defines a portion of the
   Management Information Base (MIB) for use with network management
   protocols in the Internet community which is consistent with that
   portable model as well as with the Structure of Management Information
   defined for the SNMP Management Framework.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].


2.  The SNMP Management Framework

   The SNMP Management Framework presently consists of five major
   components:

    o   An overall architecture, described in RFC 2571 [RFC2571].

    o   Mechanisms for describing and naming objects and events for the
        purpose of management. The first version of this Structure of
        Management Information (SMI) is called SMIv1 and described in
        STD 16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC
        1215 [RFC1215].  The second version, called SMIv2, is described
        in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and
        STD 58, RFC 2580 [RFC2580].

    o   Message protocols for transferring management information. The
        first version of the SNMP message protocol is called SNMPv1 and
        described in STD 15, RFC 1157 [RFC1157]. A second version of the
        SNMP message protocol, which is not an Internet standards track
        protocol, is called SNMPv2c and described in RFC 1901 [RFC1901]
        and RFC 1906 [RFC1906]. The third version of the message
        protocol is called SNMPv3 and described in RFC 1906 [RFC1906],
        RFC 2572 [RFC2572] and RFC 2574 [RFC2574].

    o   Protocol operations for accessing management information. The
        first set of protocol operations and associated PDU formats is
        described in STD 15, RFC 1157 [RFC1157]. A second set of
        protocol operations and associated PDU formats is described in
        RFC 1905 [RFC1905].

    o   A set of fundamental applications described in RFC 2573
        [RFC2573] and the view-based access control mechanism described
        in RFC 2575 [RFC2575].

   A more detailed introduction to the current SNMP Management Framework
   can be found in RFC 2570 [RFC2570].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  Objects in the MIB are
   defined using the mechanisms defined in the SMI.

   This chapter specifies a MIB module that is compliant to the SMIv2. A
   MIB conforming to the SMIv1 can be produced through the appropriate
   translations. The resulting translated MIB must be semantically
   equivalent, except where objects or events are omitted because no
   translation is possible (use of Counter64). Some machine readable
   information in SMIv2 will be converted into textual descriptions in
   SMIv1 during the translation process. However, this loss of machine
   readable information is not considered to change the semantics of the
   MIB.


3.  Overview

   The J2EE MIB module defined in this chapter can be used to monitor

   In particular, it provides the following capabilities:

   1.   [FIX]
   2.   
   3.   

   The J2EE management model is defined on a per-domain basis, and so is
   the MIB.  The management model permits a domain to include multiple nodes.
   The MIB does not specify whether one, some, or all nodes in a domain may 
   be targeted when an SNMP request is made; identifying which node to target
   is also out-of-scope for the MIB. 

3.1.  Terms

   This section defines the terms used throughout this chapter.  These
   terms all originate from the portable management model itself.

   o    J2EE Management Domain.
   o    J2EE Server.

4.  Requirements and Design Issues


5.  The Structure of the MIB


6.  Definitions

   J2EE-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
       Integer32, Unsigned32, mib-2
           FROM SNMPv2-SMI

       TruthValue, DateAndTime
           FROM SNMPv2-TC

       MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
           FROM SNMPv2-CONF

       SnmpAdminString
           FROM SNMP-FRAMEWORK-MIB;

   j2eeMIB MODULE-IDENTITY
       LAST-UPDATED "200105310000Z"
       ORGANIZATION "JSR 77 Expert Group"
       CONTACT-INFO
           "WG EMail:  http://groups.yahoo.com/group/eemgmt-experts
            Subscribe: eemgmt-experts-subscribe@yahoogroups.com

            Editor:    Anthony Daniel
                       Informix Software
            EMail:     anthony@informix.com"
       DESCRIPTION
           "This MIB module defines a set of objects for monitoring
            the J2EE platform."
       REVISION    "200107020000Z" -- July 2, 2001
       DESCRIPTION
           "Initial version, for expert group review."
       REVISION    "2001xxxx0000Z"
       DESCRIPTION
           "Revised version, published as RFC XXXX."

       ::= { mib-2 xx }

   J2eeSMState ::= TEXTUAL-CONVENTION
       STATUS      current
       DESCRIPTION "[REVIEW 'OTHER' as a state; alternate wording]
		    The operational status of a 'StateManageable'
		    object within the JSR77 model.  Six states
		    are possible. The three core states are
		    RUNNING, STOPPED, and FAILED.  Extended states
		    are STARTING, STOPPING, and OTHER.

		    RUNNING is the normal operational status of
		    a StateManageable object.  It indicates that
		    the StateManageable object is fully operational
		    from the perspective of the JSR77 model.  Thus
		    requests on MIB objects associated with this
		    StateManageable object will return results as
		    defined by the JSR77 model.

		    STOPPED indicates that the associated
		    StateManageable object is quiescent, inactive,
		    or nonexistent. Requests on MIB objects associated
		    with this StateManageable object will return
		    results as defined by the JSR77 model.

		    FAILED is exactly the same as STOPPED except that
		    the StateManageable object has become stopped
		    for unexpected reasons, and some form of
		    intervention, perhaps out-of-band, is required.

		    STARTING indicates that the associated
		    StateManageable object has begun the process
		    of becoming fully operational.  This state
		    indicates that the StateManagable object is
		    in a setup or initialization phase, and
		    consequently has undefined behavior from the
		    perspective of the JSR77 model.  Requests on
		    MIB objects associated with this StateManageable
		    object may return valid results, invalid results,
		    or errors.

		    STOPPING indicates that the associated
		    StateManageable object has begun the process
		    of becoming quiescent, inactive, or nonexistent.
		    Requests on MIB objects associated with this
		    StateManageable object may return valid results,
		    invalid results, or errors.

		    OTHER means none of the above apply.
		    "
       SYNTAX       INTEGER { other(1), -- first following SNMP convention
			failed(2), stopped(3), running(4),
                        starting(5), stopping(6) }




   --
   -- The groups defined within this MIB module:
   --

   j2eeObjects       OBJECT IDENTIFIER ::= { j2eeMIB 1 }
   j2eeConformance   OBJECT IDENTIFIER ::= { j2eeMIB 3 }

   --
   --
   --

   j2eeSrvTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eeSrvEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists the J2EE Servers present on a system."
       ::= { j2eeObjects 1 }

   j2eeSrvEntry OBJECT-TYPE
       SYNTAX      J2eeSrvEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a J2EE Server in a J2EE Management Domain."
       INDEX { j2eeSrvIndex }
       ::= { j2eeSrvTable 1 }

   J2eeSrvEntry ::= SEQUENCE {
       j2eeSrvIndex          Integer32,
       j2eeMOSrvName         SnmpAdminString,
       j2eeMOSrvStateManaged TruthValue,
       j2eeMOSrvStatProv     TruthValue,
       j2eeMOSrvEventProv    TruthValue,
       j2eeSMSrvState        J2eeSMState,
       j2eeSMSrvStartTime    J2eeSMStartTime
   }

   j2eeSrvIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier associated
            with each J2EE server entry.

            The value is expected to remain constant at least from one
            re-initialization of the entity's management system
            to the next re-initialization."
       ::= { j2eeSrvEntry 1 }

   j2eeMOSrvName OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The name of the server.  This attribute is required because
	    the JSR77 model requires servers to be managed objects, and
	    all managed objects have names."
       ::= { j2eeSrvEntry 2 }

   j2eeMOSrvStateManaged OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This flag is True if the server is state-manageable as defined
	    by the JSR77 model for all managed objects. [FIX--elaborate]"
       ::= { j2eeSrvEntry 3 }

   j2eeMOSrvStatProv OBJECT-TYPE
       SYNTAX      TruthValue,
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This flag is True if the server provides statistics as
	    defined by the JSR77 model for managed objects.  [FIX--elaborate]"
       ::= { j2eeSrvEntry 4 }

   j2eeMOSrvEventProv OBJECT-TYPE
       SYNTAX      TruthValue,
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This flag is True if the server provides events as
	    defined by the JSR77 model for managed objects.  [FIX--elaborate]"
       ::= { j2eeSrvEntry 5 }

   j2eeSMSrvState OBJECT-TYPE
       SYNTAX      J2eeSMState,
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
	   "The status of the server, following state-manageable object
	    semantics."
       ::= { j2eeSrvEntry 6 }

   j2eeSMSrvStartTime OBJECT-TYPE
       SYNTAX      DateAndTime
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "[REVIEW definition AND accuracy] A sequence of octets, following
	    the SNMPv2-TC DateAndTime format, representing the date and time,
	    to the nearest hundredth of a second, at which the server has most
	    recently entered the RUNNING state."
       ::= { smLangEntry 7 }

   --
   -- ...
   --

   j2eeAppTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eeAppEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists the J2EE Applications present on a system."
       ::= { j2eeObjects 2 }

   j2eeAppEntry OBJECT-TYPE
       SYNTAX      J2eeAppEntry 
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a J2EE Application in a J2EE Management Domain."
       INDEX { j2eeAppIndex }
       ::= { j2eeSrvTable 1 }

   J2eeAppEntry ::= SEQUENCE {
       j2eeAppIndex          Integer32,
       j2eeMOAppName         SnmpAdminString,
       j2eeMOAppStateManaged TruthValue,
       j2eeMOAppStatProv     TruthValue,
       j2eeMOAppEventProv    TruthValue,
       j2eeSMAppState        J2eeSMState,
       j2eeSMAppStartTime    J2eeSMStartTime
   }
 
   --
   -- ...
   --

   j2eeDepTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eeDepEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists the deployments in process in a domain."
       ::= { j2eeObjects 3 }

   j2eeDepEntry OBJECT-TYPE
       SYNTAX      J2eeDepEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a deployment or undeployment in process in a J2EE
            Management Domain. The entry is indexed by the J2EE server index as 
            well as a unique ID per deployment."
       INDEX { j2eeSrvIndex, j2eeDepIndex }
       ::= { j2eeDepTable 1 }

   J2eeDepEntry ::= SEQUENCE {
       j2eeDepIndex          Integer32,
       j2eeMODepName         SnmpAdminString,
       j2eeMODepStateManaged TruthValue,
       j2eeMODepStatProv     TruthValue,
       j2eeMODepEventProv    TruthValue,
       j2eeSMDepState        J2eeSMState,
       j2eeSMDepStartTime    J2eeSMStartTime,
       j2eeDepUndeploying    TruthValue
   }

   --
   --
   --

   j2eeModTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eeModEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists the modules in all applications deployed in
            in a domain."
       ::= { j2eeObjects 4 }

   j2eeModEntry OBJECT-TYPE
       SYNTAX      J2eeModEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry for each module in each application in a J2EE Management
            Domain. The entry is indexed by the J2EE applcation index as well 
            as a unique ID per module."
       INDEX { j2eeAppIndex, j2eeModIndex }
       ::= { j2eeModTable 1 }

   J2eeModEntry ::= SEQUENCE {
       j2eeModIndex          Integer32,
       j2eeMOModName         SnmpAdminString,
       j2eeModType           Integer32,
       j2eeMOModStateManaged TruthValue,
       j2eeMOModStatProv     TruthValue,
       j2eeMOModEventProv    TruthValue,
       j2eeSMModState        J2eeSMState,
       j2eeSMModStartTime    J2eeSMStartTime
   }

   j2eeModType OBJECT-TYPE
       SYNTAX      INTEGER {
                      other(1), ejb(2), web(3), connector(4)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       ::= { j2eeModEntry 3 }

   --
   --
   --

   j2eeBeanTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eeBeanEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists the EJBs in all applications deployed in
            a domain."
       ::= { j2eeObjects 5 }

   j2eeBeanEntry OBJECT-TYPE
       SYNTAX      J2eeBeanEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry for each bean in each application in a J2EE Management
            Domain. The entry is indexed by the J2EE application index, the
            module index, and a unique ID per bean."
       INDEX { j2eeAppIndex, j2eeModIndex, j2eeBeanIndex }
       ::= { j2eeBeanTable 1 }

   J2eeBeanEntry ::= SEQUENCE {
       j2eeBeanIndex          Integer32,
       j2eeMOBeanName         SnmpAdminString,
       j2eeBeanType           Integer32,
       j2eeMOBeanStateManaged TruthValue,
       j2eeMOBeanStatProv     TruthValue,
       j2eeMOBeanEventProv    TruthValue,
       j2eeSMBeanState        J2eeSMState,
       j2eeSMBeanStartTime    J2eeSMStartTime
   }

   j2eeBeanType OBJECT-TYPE
       SYNTAX      INTEGER {
                      other(1), entity(2), messageDriven(3),
                      stateful(4), stateless(5)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       ::= { j2eeBeanEntry 3 }

   --
   --
   --

   j2eeServletTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eeServletEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists the servlets in all applications deployed in
            a domain."
       ::= { j2eeObjects 6 }

   j2eeServletEntry OBJECT-TYPE
       SYNTAX      J2eeServletEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry for each servlet in each application in a J2EE Management
            Domain. The entry is indexed by the J2EE application index, the
            module index, and a unique ID per bean."
       INDEX { j2eeAppIndex, j2eeModIndex, j2eeServletIndex }
       ::= { j2eeServletTable 1 }

   J2eeServletEntry ::= SEQUENCE {
       j2eeServletIndex          Integer32,
       j2eeMOServletName         SnmpAdminString,
       j2eeMOServletStateManaged TruthValue,
       j2eeMOServletStatProv     TruthValue,
       j2eeMOServletEventProv    TruthValue,
       j2eeSMServletState        J2eeSMState,
       j2eeSMServletStartTime    J2eeSMStartTime
   }

   --
   --
   --

   j2eeAdapterTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eeAdapterEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists the resource adapters in all applications 
            deployed in a domain."
       ::= { j2eeObjects 7 }

   j2eeAdapterEntry OBJECT-TYPE
       SYNTAX      J2eeAdapterEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry for each resource adapter in each application in a J2EE
            Management Domain. The entry is indexed by the J2EE application 
            index, the module index, and a unique ID per bean."
       INDEX { j2eeAppIndex, j2eeModIndex, j2eeAdapterIndex }
       ::= { j2eeAdapterTable 1 }

   J2eeAdapterEntry ::= SEQUENCE {
       j2eeAdapterIndex          Integer32,
       j2eeMOAdapterName         SnmpAdminString,
       j2eeMOAdapterStateManaged TruthValue,
       j2eeMOAdapterStatProv     TruthValue,
       j2eeMOAdapterEventProv    TruthValue,
       j2eeSMAdapterState        J2eeSMState,
       j2eeSMAdapterStartTime    J2eeSMStartTime
   }

   --
   --
   --

   j2eeResourceTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eeResourceEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists the resources used by a server to provide J2EE
            standard services."
       ::= { j2eeObjects 8 }

   j2eeResourceEntry OBJECT-TYPE
       SYNTAX      J2eeResourceEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry for each resource used in each server in a J2EE
            Management Domain. The entry is indexed by the J2EE server 
            and a unique ID per resource."
       INDEX { j2eeSrvIndex, j2eeResourceIndex }
       ::= { j2eeResourceTable 1 }

   J2eeResourceEntry ::= SEQUENCE {
       j2eeResourceIndex          Integer32,
       j2eeMOResourceName         SnmpAdminString,
       j2eeResourceType           Integer32,
       j2eeMOResourceStateManaged TruthValue,
       j2eeMOResourceStatProv     TruthValue,
       j2eeMOResourceEventProv    TruthValue,
       j2eeSMResourceState        J2eeSMState,
       j2eeSMResourceStartTime    J2eeSMStartTime
   }

   j2eeResourceType OBJECT-TYPE
       SYNTAX      INTEGER {
                      other(1), jms(2), javamail(3), url(4), 
                      jndi(5), jta(6), jdbc(7), rmiiiop(8)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
       ::= { j2eeResourceEntry 3 }

   --
   --
   --

   j2eeJMSConnTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eeJMSConnEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists the Java Message Services connections used by a 
            server."
       ::= { j2eeObjects 9 }

   j2eeJMSConnEntry OBJECT-TYPE
       SYNTAX      J2eeJMSConnEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry for each JMS connection used in each server in a J2EE
            Management Domain. The entry is indexed by the J2EE server, the
            resource within the server (which must be of type jms(2)), and 
            a unique ID per connection."
       INDEX { j2eeSrvIndex, j2eeResourceIndex, j2eeJMSConnIndex }
       ::= { j2eeJMSConnTable 1 }

   J2eeJMSConnEntry ::= SEQUENCE {
       j2eeJMSConnIndex          Integer32,
       j2eeMOJMSConnName         SnmpAdminString,
       j2eeJMSConnTransactional  TruthValue, -- needs definition in model & MIB
       j2eeMOJMSConnStateManaged TruthValue,
       j2eeMOJMSConnStatProv     TruthValue,
       j2eeMOJMSConnEventProv    TruthValue,
       j2eeSMJMSConnState        J2eeSMState,
       j2eeSMJMSConnStartTime    J2eeSMStartTime
   }

   --
   --
   --

   j2eeJMSSessTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eeJMSSessEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists the Java Message Services sessions used by a 
            JMS connection within a J2EE server."
       ::= { j2eeObjects 10 }

   j2eeJMSSessEntry OBJECT-TYPE
       SYNTAX      J2eeJMSSessEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry for each JMS session used by a JMS connection in each 
            server in a J2EE Management Domain. The entry is indexed by 
            the J2EE server, the JMS connection, and a unique ID per session."
       INDEX { j2eeSrvIndex, j2eeJMSConnIndex, j2eeJMSSessIndex }
       ::= { j2eeJMSSessTable 1 }

   J2eeJMSSessEntry ::= SEQUENCE {
       j2eeJMSSessIndex          Integer32,
       j2eeMOJMSSessName         SnmpAdminString,
       j2eeJMSProducerName       SnmpAdminString,
       j2eeJMSConsumerName       SnmpAdminString,
       j2eeMOJMSSessStateManaged TruthValue,
       j2eeMOJMSSessStatProv     TruthValue,
       j2eeMOJMSSessEventProv    TruthValue,
       j2eeSMJMSSessState        J2eeSMState,
       j2eeSMJMSSessStartTime    J2eeSMStartTime
   }

   --
   --
   --

   j2eeJDBCConnTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eeJDBCConnEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists the JDBC connections used by a 
            within a J2EE server."
       ::= { j2eeObjects 12 }

   j2eeJDBCConnEntry OBJECT-TYPE
       SYNTAX      J2eeJDBCConnEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry for each JDBC connection used by a server in a J2EE 
            Management Domain. The entry is indexed by the J2EE server, 
            the JDBC resource, and a unique ID per connection."
       INDEX { j2eeSrvIndex, j2eeResourceIndex, j2eeJDBCConnIndex }
       ::= { j2eeJDBCConnTable 1 }

   J2eeJDBCConnEntry ::= SEQUENCE {
       j2eeJDBCConnIndex          Integer32,
       j2eeMOJDBCConnName         SnmpAdminString,
       j2eeJDBCDataSource         SnmpAdminString,
       j2eeJDBCConnectionPool     SnmpAdminString,
       j2eeMOJDBCConnStateManaged TruthValue,
       j2eeMOJDBCConnStatProv     TruthValue,
       j2eeMOJDBCConnEventProv    TruthValue,
       j2eeSMJDBCConnState        J2eeSMState,
       j2eeSMJDBCConnStartTime    J2eeSMStartTime
   }

   --
   -- The next few tables are the performance-augmented versions
   -- of previous tables.  These are only supported when the
   -- corresponding managed object is a statistics provider.
   --

   j2eePAEJBModTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eePAEJBModTableEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table augments the J2EE Module table with performance
            statistics objects for the various types of EJBs."
       ::= { j2eeObjects 13 }

   j2eePAEJBModTableEntry OBJECT-TYPE
       SYNTAX      J2eePAEJBModTableEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The performance-augmented, EJB-specific version of the J2EE Module
            table.  This entry extends each row in the Module table with EJB-
            specific performance statistics.  Note that this augmentation
            only applies to rows in the J2EE Module table where j2eeModType
            is ejb(2); attempts to access the corresponding instance of any
            of these objects when j2eeModType is not ejb(2) may result
            in either noSuchName (SNMPv1) or noSuchInstance (SNMPv2)
            being returned by the agent."
       AUGMENT {j2eeModTableEntry}
       ::= { j2eePAEJBModTable 1 }

   J2eePAEJBModTableEntry ::= SEQUENCE {
            -- EJBStats go here
            -- MessageBeanStats go here
            -- EntityBeanStats go here
            -- StatefulSessionBeanStats go here	
   }
    
   --
   --
   --

   j2eePAJavaMailTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF J2eePAJavaMailTableEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists the JDBC connections used by a 
            within a J2EE server."
       ::= { j2eeObjects 14 }

   j2eePAJavaMailTableEntry OBJECT-TYPE
       SYNTAX      J2eePAJavaMailTableEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The performance-augmented, JavaMail-specific version of the J2EE
            Resource table.  This entry extends each row in the Resource table
            with JavaMail-specific performance statistics.  Note that this 
            augmentation only applies to rows in the J2EE Resource table where
            j2eeResourceType is javamail(3); attempts to access the corresponding
            instance of any of these objects when j2eeModType is not ejb(2) may 
            result in either noSuchName (SNMPv1) or noSuchInstance (SNMPv2)
            being returned by the agent."
       AUGMENT {j2eeModTableEntry}
       ::= { j2eePAJavaMailTable 1 }

   J2eePAJavaMailTableEntry ::= SEQUENCE {
   -- JavaMailStats go here
   }

   --
   --
   --


   -- conformance information

   j2eeCompliances OBJECT IDENTIFIER ::= { j2eeConformance 1 }
   j2eeGroups      OBJECT IDENTIFIER ::= { j2eeConformance 2 }

   -- compliance statements

   j2eeCompliance MODULE-COMPLIANCE
       STATUS      current
       DESCRIPTION
           "The compliance statement for SNMP entities which implement
            the J2EE MIB."
       MODULE      -- this module
       MANDATORY-GROUPS {
       }
   -- FIX make this real (i.e. stats provider optional, etc.)

   END


9.  IANA Considerations

   The Internet Assigned Numbers Authority (IANA) is responsible for
   maintaining a MIB module which provides OID registrations for well-
   known languages. The IANA language registry is intented to reduce
   interoperability problems by providing a single list of well-known
   languages. However, it is of course still possible to register
   languages in private OID spaces. Registering languages in private
   spaces is especially attractive if a language is used for
   experimentation or if a language is only used in environments where
   the distribution of MIB modules with the language registration does
   not cause any maintenance problems.

   Any additions or changes to the list of languages registered via IANA
   require Designated Expert Review as defined in the IANA guidelines
   [RFC2434]. The Designated Expert will be selected by the IESG Area
   Director for the IETF Operations and Management Area.

10.  Security Considerations


11.  Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights.  Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11.  Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard.  Please address the information to the IETF Executive
   Director.


13.  Acknowledgments

14.  References

15.  Editors' Addresses