Network Working Group
Request for Comments: 1697
Category: Standards Track
D. Brower, Editor
The ASK Group, INGRES DBMS Development
B. Purvy, RDBMSMIB Working Group Chair
Oracle Corporation
A. Daniel
Informix Software, Inc.
M. Sinykin
J. Smith
Oracle Corporation
August 1994

Relational Database Management System (RDBMS)

Management Information Base (MIB) using SMIv2

Status of this Memo

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

Table of Contents

   1. Introduction ..............................................    1
   2. The SNMPv2 Network Management Framework ...................    2
   2.1 Object Definitions .......................................    2
   3. Overview ..................................................    2
   3.1 Terminology ..............................................    3
   3.2 Structure and Features ...................................    4
   3.2.1 Tables .................................................    4
   3.2.2 Writable objects .......................................    5
   3.2.3 Traps ..................................................    5
   4. Definitions ...............................................    6
   5. Acknowledgements ..........................................   35
   6. References ................................................   36
   7. Security Considerations ...................................   37
   8. Authors' Addresses ........................................   37

1. Introduction

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects used for managing relational database (RDBMS) implementations.

2. The SNMPv2 Network Management Framework

The SNMPv2 Network Management Framework consists of four major components. They are:

  • RFC 1442 [1] which defines the SMI, the mechanisms used for describing and naming objects for the purpose of management.
  • STD 17, RFC 1213 [2] defines MIB-II, the core set of managed objects for the Internet suite of protocols.
  • RFC 1445 [3] which defines the administrative and other architectural aspects of the framework.
  • RFC 1448 [4] which defines the protocol used for network access to managed objects.
  • RFC 1443 [5] which describes textual conventions for the framework.

The framework permits new objects to be defined for the purpose of experimentation and evaluation. In particular, the RDBMS-MIB can be seen as an extension of

  • RFC 1565 [6] which defines the MIB for monitoring network service applications.

2.1. Object Definitions

Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) defined in the SMI. In particular, each object type is named by an OBJECT IDENTIFIER, an administratively assigned name. The object type together with an object instance serves to uniquely identify a specific instantiation of the object. For human convenience, we often use a textual string, termed the descriptor, to refer to the object type.

3. Overview

The RDBMS-MIB contains objects that may be used to manage relational database implementations. Specifically, it contains information on installed databases, servers, and on the relation of databases and servers. The terms used in this database are described below.

3.1. Terminology

Vendors and Products

are providers of database systems on a host. These vendors may have more than one database product that is manageable through this MIB. On a host, there may be systems from multiple vendors, multiple systems from a single vendor, or any other combination. There may be a private MIB for each vendor, and this may be located using the PrivateMibOID objects in some of the tables.

Databases

are collections of interrelated data organized according to a schema to serve one or more applications. A database is, for purposes of this MIB, a collection of tables whose organization is based on the relational model. There may be one or more databases available in each system on the host from each product. In the MIB, data about databases is captured in the rdbmsDbTable and the rdbmsDbInfoTable, each with one row per database.

Relational Database Management System (RDBMS)

A collection of integrated services which support database management and together support and control the creation, use and maintenance of relational databases. Servers as defined in this MIB provide the functions of the RDBMS.

Servers

are entities that provide access to databases. For this MIB, servers are defined to be entities that may exist independently of other servers. A server may or may not be a single process, based on its independence from other processes. In this MIB, information about servers is captured in the rdbmsSvrTable, the rdbmsSvrInfoTable, each with one row per server extending the applTable from the APPLICATION-MIB of RFC 1565. The rdbmsSvrTable and rdbmsSvrInfoTable are both indexed by the applIndex of that MIB.

Associations

Inbound associations are local or remote conversations, usually instances of the SQL CONNECT statement, as made visible in servers. The MIB does not currently reveal individual associations; there are association counters in the dbmsSvrInfoTable and the applTable.

There are also relationships between servers and databases. All obvious relationships are possible and supported:

   o    1 database : 1 server
   
   o    1 database : many servers
   
   o    many databases : 1 server
   
   o    many databases : many servers

3.2. Structure and Features

The information in this MIB module is organized into nine tables, twelve potentially writable objects, and two traps, as follows.

3.2.1. Tables

   o    databases installed on a host/system (rdbmsDbTable)
   
   o    actively opened databases (rdbmsDbInfoTable)
   
   o    database configuration parameters (rdbmsDbParamTable)
   
   o    database limited resources (rdbmsDbLimitedResourceTable)
   
   o    database servers installed on a system (rdbmsSrvTable)
   
   o    active database servers (rdbmsSrvInfoTable)
   
   o    configuration parameters for a server (rdbmsSrvParamTable)
   
   o    server limited resources (rdbmsSrvLimitedResourceTable)
   
   o    relation of servers and databases on a host (rdbmsRelTable)

These entities have broad applicability among database systems, and are enough for many monitoring tasks. They are far from adequate for detailed management or performance monitoring of specific database products. This gap is expected to be filled with vendor and product specific MIBs addressing the entities that have not been codified here.

3.2.2. Writable objects

The MIB requires no writable objects for conformance. There is no expectation that RDBMS systems may be actively managed through this MIB. However, the RDBMS-MIB supports the capability to modify the following objects if the implementor so chooses.

   o    rdbmsDbContact
   
   o    rdbmsDbInfoSizeAllocated
   
   o    rdbmsDbParamCurrValue
   
   o    rdbmsDbParamComment rdbmsDbLimitedResourceLimit
   
   o    rdbmsDbLimitedResourceDescription
   
   o    rdbmsSrvContact
   
   o    rdbmsSrvInfoMaxInboundAssociations
   
   o    rdbmsSrvParamCurrValue
   
   o    rdbmsSrvParamComment
   
   o    rdbmsSrvLimitedResourceLimit
   
   o    rdbmsSrvLimitedResourceDescription

3.2.3. Traps

The RDBMS-MIB contains two traps:

   o    rdbmsStateChange
   
   o    rdbmsOutOfSpace

4. Definitions

RDBMS-MIB DEFINITIONS ::= BEGIN

IMPORTS

     MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
      Counter32, Gauge32, Integer32
          FROM SNMPv2-SMI
      DisplayString, DateAndTime, AutonomousType
          FROM SNMPv2-TC
      applIndex, applGroup
          FROM APPLICATION-MIB
      mib-2
          FROM RFC1213-MIB;

rdbmsMIB MODULE-IDENTITY

      LAST-UPDATED "9406150655Z"
      ORGANIZATION "IETF RDBMSMIB Working Group"
      CONTACT-INFO
              "           David Brower

Postal:

                          The ASK Group, INGRES DBMS Development
                          1080 Marina Village Parkway
                          Alameda, CA  94501
                          US

Tel: +1 510 748 3418
Fax: +1 510 748 2770

                  E-mail: daveb@ingres.com"
      DESCRIPTION
          "The MIB module to describe objects for generic relational
           databases."
      
      ::= { mib-2 39 }
  
  rdbmsObjects        OBJECT IDENTIFIER ::= { rdbmsMIB 1 }
  
  ----------------------------------------------------------------
  
  rdbmsDbTable    OBJECT-TYPE
      SYNTAX      SEQUENCE OF RdbmsDbEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "The table of databases installed on a system."
      ::= { rdbmsObjects 1 }
  
  rdbmsDbEntry    OBJECT-TYPE
      SYNTAX      RdbmsDbEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "An entry for a single database on the host.  Whether a
           particular database is represented by a row in rdbmsDbTable
           may be dependent on the activity level of that database,
           according to the product's implementation.  An instance of
           rdbmsRelState having the value active, other, or restricted
           implies that an entry, corresponding to that instance, will
           be present."
      INDEX  { rdbmsDbIndex }
      ::= { rdbmsDbTable 1 }
  
  RdbmsDbEntry    ::=
      SEQUENCE {
          rdbmsDbIndex            INTEGER,
          rdbmsDbPrivateMibOID        OBJECT IDENTIFIER,
          rdbmsDbVendorName       DisplayString,
          rdbmsDbName             DisplayString,
          rdbmsDbContact          DisplayString
      }
  
  rdbmsDbIndex        OBJECT-TYPE
      SYNTAX          INTEGER (1..2147483647)
      MAX-ACCESS      not-accessible
      STATUS          current
      DESCRIPTION
          "A numeric index, unique among all the databases from all
           products on this host.  This value is a surrogate for the
           conceptually unique key, which is {PrivateMibOID,
           databasename}"
      ::= { rdbmsDbEntry  1 }
  
  rdbmsDbPrivateMibOID    OBJECT-TYPE
      SYNTAX          OBJECT IDENTIFIER
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
         "The authoritative identification for the private MIB for
          this database, presumably based on the vendor, e.g., {
          enterprises 111 <optional subidentifiers>} for Oracle
          databases, {enterprises 757 <optional subidentifiers>} for
          Ingres databases, { enterprises 897 <optional
          subidentifiers>} for Sybase databases, etc.

If no OBJECT IDENTIFIER exists for the private MIB, attempts

          to access this object will return noSuchName (SNMPv1)
          or noSuchInstance (SNMPv2)."
      ::= { rdbmsDbEntry  2 }
  
  rdbmsDbVendorName   OBJECT-TYPE
      SYNTAX          DisplayString
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
          "The name of the vendor whose RDBMS manages this database,
           for informational purposes."
      ::= { rdbmsDbEntry 3 }
  
  rdbmsDbName     OBJECT-TYPE
      SYNTAX      DisplayString
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The name of this database, in a product specific format.  The
           product may need to qualify the name in some way to resolve
           conflicts if it is possible for a database name to be
           duplicated on a host.  It might be necessary to construct a
           hierarchical name embedding the RDBMS instance/installation
           on the host, and/or the owner of the database.  For instance,
           '/test-installation/database-owner/database-name'."
      ::= { rdbmsDbEntry 4 }
  
  rdbmsDbContact  OBJECT-TYPE
      SYNTAX      DisplayString
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
          "The textual identification of the contact person for this
           managed database, together with information on how to contact
           this person.

Note: if there is no server associated with this database, an agent may need to keep this in other persistent storage, e.g., a configuration file.

Note that a compliant agent does not need to
allow write access to this object."

      ::= { rdbmsDbEntry 5 }
  
  ----------------------------------------------------------------
  
  rdbmsDbInfoTable    OBJECT-TYPE
      SYNTAX          SEQUENCE OF RdbmsDbInfoEntry
      MAX-ACCESS      not-accessible
      STATUS          current
      DESCRIPTION
          "The table of additional information about databases present
           on the host."
      ::= { rdbmsObjects 2 }
  
  rdbmsDbInfoEntry    OBJECT-TYPE
      SYNTAX          RdbmsDbInfoEntry
      MAX-ACCESS      not-accessible
      STATUS          current
      DESCRIPTION
          "Information that must be present if the database is actively
           opened.  If the database is not actively opened, then
           attempts to access corresponding instances in this table may
           result in either noSuchName (SNMPv1) or noSuchInstance
           (SNMPv2).  'Actively opened' means at least one of the
           rdbmsRelState entries for this database in the rdbmsRelTable
           is active(2)."
      INDEX  { rdbmsDbIndex }
      ::= { rdbmsDbInfoTable 1 }

RdbmsDbInfoEntry ::=

      SEQUENCE {
          rdbmsDbInfoProductName      DisplayString,
          rdbmsDbInfoVersion          DisplayString,
          rdbmsDbInfoSizeUnits        INTEGER,
          rdbmsDbInfoSizeAllocated    INTEGER,
          rdbmsDbInfoSizeUsed         INTEGER,
          rdbmsDbInfoLastBackup       DateAndTime
      }
  
  rdbmsDbInfoProductName  OBJECT-TYPE
      SYNTAX          DisplayString
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
          "The textual product name of the server that created or last
           restructured this database.  The format is product specific."
      ::= { rdbmsDbInfoEntry 1 }
  
  rdbmsDbInfoVersion  OBJECT-TYPE
      SYNTAX          DisplayString
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
          "The version number of the server that created or last
           restructured this database.  The format is product specific."
      ::= { rdbmsDbInfoEntry 2 }
  
  rdbmsDbInfoSizeUnits    OBJECT-TYPE
      SYNTAX              INTEGER {
                              bytes(1),
                              kbytes(2),
                              mbytes(3),
                              gbytes(4),
                              tbytes(5)
                              }
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "Identification of the units used to measure the size of this
           database in rdbmsDbInfoSizeAllocated and rdbmsDbInfoSizeUsed.
           bytes(1) indicates individual bytes, kbytes(2) indicates
           units of kilobytes, mbytes(3) indicates units of megabytes,
           gbytes(4) indicates units of gigabytes, and tbytes(5)
           indicates units of terabytes.  All are binary multiples -- 1K
           = 1024.  If writable, changes here are reflected in the get
           values of the associated objects."
  
      ::= { rdbmsDbInfoEntry 3 }
  
  rdbmsDbInfoSizeAllocated    OBJECT-TYPE
      SYNTAX                  INTEGER (1..2147483647)
      MAX-ACCESS              read-write
      STATUS                  current
      DESCRIPTION
          "The estimated size of this database (in
           rdbmsDbInfoSizeUnits), which is the disk space that has been
           allocated to it and is no longer available to users on this
           host.  rdbmsDbInfoSize does not necessarily indicate the
           amount of space actually in use for database data.  Some
           databases may support extending allocated size, and others
           may not.

Note that a compliant agent does not need to
allow write access to this object."

  --       Note:  computing SizeAllocated may be expensive, and SNMP
  --       agents might cache the value to increase performance.
  
      ::= { rdbmsDbInfoEntry 4 }
  
  rdbmsDbInfoSizeUsed     OBJECT-TYPE
      SYNTAX              INTEGER (1..2147483647)
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The estimated size of this database, in rdbmsDbInfoSizeUnits,
           which is actually in use for database data."
  
  --       Note:  computing SizeUsed may be expensive, and SNMP
  --       agents might cache the value to increase performance.
      ::= { rdbmsDbInfoEntry 5 }
  
  rdbmsDbInfoLastBackup       OBJECT-TYPE
       SYNTAX                 DateAndTime
       MAX-ACCESS             read-only
       STATUS                 current
       DESCRIPTION
          "The date and time that the latest complete or partial backup
           of the database was taken. If a database has never been
           backed up, then attempts to access this object will
           result in either noSuchName (SNMPv1) or noSuchInstance
           (SNMPv2)."
       ::= { rdbmsDbInfoEntry 6 }
  
  ----------------------------------------------------------------
  
  rdbmsDbParamTable       OBJECT-TYPE
      SYNTAX              SEQUENCE OF RdbmsDbParamEntry
      MAX-ACCESS          not-accessible
      STATUS              current
      DESCRIPTION
          "The table of configuration parameters for a database.
           Entries should be populated according to the following
           guidelines:
           (1) The value should be specified through administrative
               (human) intervention.
           (2) It should be configured on a per-database basis.
           (3) One of the following is true:
               (a) The parameter has a non-numeric value;
               (b) The current value is numeric, but it only changes due
                   to human intervention;
               (c) The current value is numeric and dynamic, but the
                   RDBMS does not track access/allocation failures
                   related to the parameter;
               (d) The current value is numeric and dynamic, the
                   RDBMS tracks changes in access/allocation failures
                   related to the parameter, but the failure has no
                   significant impact on RDBMS performance or
                   availability.
               (e) The current value is numeric and dynamic, the
                   RDBMS tracks changes in access/allocation failures
                   related to the parameter, the failure has
                   significant impact on RDBMS performance or
                   availability, and is shown in the
                   rdbmsDbLimitedResource table."
      ::= { rdbmsObjects 3 }
  
  rdbmsDbParamEntry       OBJECT-TYPE
      SYNTAX              RdbmsDbParamEntry
      MAX-ACCESS          not-accessible
      STATUS              current
      DESCRIPTION
          "An entry for a single configuration parameter for a database.
           Parameters with single values have a subindex value of one.
           If the parameter is naturally considered to contain a
           variable number of members of a class, e.g.  members of the
           DBA user group, or files which are part of the database, then
           it must be presented as a set of rows.  If, on the other
           hand, the parameter represents a set of choices from a class,
           e.g. the permissions on a file or the options chosen out of
           the set of all options allowed, AND is guaranteed to always
           fit in the 255 character length of a DisplayString, then it
           may be presented as a comma separated list with a subindex
           value of one.  Zero may not be used as a subindex value.
  
           If the database is not actively opened, then attempts
           to access corresponding instances in this table may result in
           either noSuchName (SNMPv1) or noSuchInstance (SNMPv2).
           'Actively opened' means at least one of the
           rdbmsRelState entries for this database in the rdbmsRelTable
           is active(2)."
      INDEX  { rdbmsDbIndex, rdbmsDbParamName, rdbmsDbParamSubIndex }
      ::= { rdbmsDbParamTable 1 }

RdbmsDbParamEntry ::=

      SEQUENCE {
          rdbmsDbParamName                DisplayString,
          rdbmsDbParamSubIndex            INTEGER,
          rdbmsDbParamID                  AutonomousType,
          rdbmsDbParamCurrValue           DisplayString,
          rdbmsDbParamComment             DisplayString
      }
  
  rdbmsDbParamName        OBJECT-TYPE
      SYNTAX              DisplayString (SIZE (1..64))
      MAX-ACCESS          not-accessible
      STATUS              current
      DESCRIPTION
          "The name of a configuration parameter for a database.  This
           name is product-specific.  The length is limited to 64
           characters to constrain the number of sub-identifiers needed
           for instance identification (and to minimize network
           traffic)."
  
      ::= { rdbmsDbParamEntry 1 }
  
  rdbmsDbParamSubIndex    OBJECT-TYPE
      SYNTAX              INTEGER (1..2147483647)
      MAX-ACCESS          not-accessible
      STATUS              current
      DESCRIPTION
          "The subindex value for this parameter.  If the parameter is
           naturally considered to contain a variable number of members
           of a class, e.g.  members of the DBA user group, or files
           which are part of the database, then it must be presented as
           a set of rows.  If, on the other hand, the parameter
           represents a set of choices from a class, e.g. the
           permissions on a file or the options chosen out of the set of
           all options allowed, AND is guaranteed to always fit in the
           255 character length of a DisplayString, then it may be
           presented as a comma separated list with a subindex value of
           one.  Zero may not be used as a value."
      ::= { rdbmsDbParamEntry 2 }
  
  rdbmsDbParamID          OBJECT-TYPE
      SYNTAX              AutonomousType
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The ID of the parameter which may be described in some other
           MIB (e.g., an enterprise-specific MIB module).  If there is
           no ID for this rdbmsDbParamName, attempts to access this
           object will return noSuchName (SNMPv1) or noSuchInstance
           (SNMPv2)."
      ::= { rdbmsDbParamEntry 3 }

rdbmsDbParamCurrValue OBJECT-TYPE

      SYNTAX              DisplayString
      MAX-ACCESS          read-write
      STATUS              current
      DESCRIPTION
          "The value for a configuration parameter now in effect, the
           actual setting for the database.  While there may multiple
           values in the temporal domain of interest (for instance, the

value to take effect at the next restart), this is the current setting.

Note that a compliant agent does not need to
allow write access to this object."

      ::= { rdbmsDbParamEntry 4 }
  
  rdbmsDbParamComment     OBJECT-TYPE
      SYNTAX              DisplayString
      MAX-ACCESS          read-write
      STATUS              current
      DESCRIPTION
          "Annotation which describes the purpose of a configuration
           parameter or the reason for a particular parameter's
           setting.

Note that a compliant agent does not need to
allow write access to this object."

      ::= { rdbmsDbParamEntry 5 }
  
  ----------------------------------------------------------------
  
  rdbmsDbLimitedResourceTable         OBJECT-TYPE
      SYNTAX          SEQUENCE OF RdbmsDbLimitedResourceEntry
      MAX-ACCESS      not-accessible
      STATUS          current
      DESCRIPTION
          "The table of limited resources that are kept per-database."
      ::= { rdbmsObjects 4 }
  
  rdbmsDbLimitedResourceEntry     OBJECT-TYPE
      SYNTAX      RdbmsDbLimitedResourceEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "An entry for a single limited resource kept per-database.
           A limited resource has maximum use determined by a parameter
           that might or might not be changeable at run time, or visible
           in the rdbmsDbParamTable. Examples would be the number of
           available locks, or disk space on a partition.  Arrays of
           resources are supported through an integer sub index, which
           should have the value of one for single-instance names.

Limited resources that are shared across databases, are best put in the rdbmsSvrLimitedResourceTable instead of this one.

If the database is not actively opened, then attempts to access corresponding instances in this table may result in either noSuchName (SNMPv1) or noSuchInstance (SNMPv2). 'Actively opened' means at least one of the rdbmsRelState entries for this database in the rdbmsRelTable is active(2)."

      INDEX { rdbmsDbIndex, rdbmsDbLimitedResourceName }
      ::= { rdbmsDbLimitedResourceTable 1 }

RdbmsDbLimitedResourceEntry ::=

      SEQUENCE {
          rdbmsDbLimitedResourceName          DisplayString,
          rdbmsDbLimitedResourceID            AutonomousType,
          rdbmsDbLimitedResourceLimit         INTEGER,
          rdbmsDbLimitedResourceCurrent       INTEGER,
          rdbmsDbLimitedResourceHighwater     INTEGER,
          rdbmsDbLimitedResourceFailures      Counter32,
          rdbmsDbLimitedResourceDescription   DisplayString
      }
  
  rdbmsDbLimitedResourceName          OBJECT-TYPE
      SYNTAX          DisplayString
      MAX-ACCESS      not-accessible
      STATUS          current
      DESCRIPTION
          "The name of the resource, for instance 'global locks' or
           'locks for the FOO database', or 'data space on /dev/rdsk/5s0
           for FOO'. The length is limited to 64 characters to constrain
           the number of sub-identifiers needed for instance
           identification (and to minimize network traffic)."
      ::= { rdbmsDbLimitedResourceEntry  1 }

rdbmsDbLimitedResourceID OBJECT-TYPE

      SYNTAX              AutonomousType
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The ID of the resource which may be described in some other
           MIB (e.g., an enterprise-specific MIB module).  If there is
           no ID for this rdbmsDbLimitedResourceName, attempts to access
           this object will return noSuchName (SNMPv1) or noSuchInstance
           (SNMPv2)."
      ::= { rdbmsDbLimitedResourceEntry 2 }
  
  rdbmsDbLimitedResourceLimit         OBJECT-TYPE
      SYNTAX          INTEGER (1..2147483647)
      MAX-ACCESS      read-write
      STATUS          current

DESCRIPTION

"The maximum value the resource use may attain.

Note that a compliant agent does not need to
allow write access to this object."

      ::= { rdbmsDbLimitedResourceEntry  3 }
  
  rdbmsDbLimitedResourceCurrent       OBJECT-TYPE
      SYNTAX          INTEGER (1..2147483647)
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
          "The current value for the resource."
      ::= { rdbmsDbLimitedResourceEntry  4 }
  
  rdbmsDbLimitedResourceHighwater     OBJECT-TYPE
      SYNTAX          INTEGER (1..2147483647)
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
          "The maximum value of the resource seen since applUpTime
           was reset for the earliest server which has the database
           actively opened.
  
           If there are two servers with the database open, and the
           oldest one dies, the proper way to invalidate the value is by
           resetting sysUpTime."
      ::= { rdbmsDbLimitedResourceEntry  5 }
  
  rdbmsDbLimitedResourceFailures      OBJECT-TYPE
      SYNTAX          Counter32
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
          "The number of times the system wanted to exceed the limit of
           the resource since applUpTime was reset for the earliest
           server which has the database actively opened.
  
           If there are two servers with the DB open, and the
           oldest one dies, the proper way to invalidate the value is by
           resetting sysUpTime."
      ::= { rdbmsDbLimitedResourceEntry  6 }
  
  rdbmsDbLimitedResourceDescription           OBJECT-TYPE
      SYNTAX          DisplayString
      MAX-ACCESS      read-write
      STATUS          current

DESCRIPTION

"A description of the resource and the meaning of the integer

units used for Limit, Current, and Highwater.

Note that a compliant agent does not need to
allow write access to this object."

      ::= { rdbmsDbLimitedResourceEntry  7 }
  
  ----------------------------------------------------------------
  
  rdbmsSrvTable       OBJECT-TYPE
      SYNTAX          SEQUENCE OF RdbmsSrvEntry
      MAX-ACCESS      not-accessible
      STATUS          current
      DESCRIPTION
          "The table of database servers running or installed
           on a system."
      ::= { rdbmsObjects 5 }
  
  rdbmsSrvEntry   OBJECT-TYPE
      SYNTAX      RdbmsSrvEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "An entry for a single database server.  A server is an
           independent entity that provides access to one or more
           databases.  Failure of one does not affect access to
           databases through any other servers.  There might be one or
           more servers providing access to a database.  A server may be
           a 'process' or collection of 'processes', as interpreted by
           the product."
      INDEX { applIndex }
      ::= { rdbmsSrvTable 1 }

RdbmsSrvEntry ::=

      SEQUENCE {
          rdbmsSrvPrivateMibOID   OBJECT IDENTIFIER,
          rdbmsSrvVendorName  DisplayString,
          rdbmsSrvProductName DisplayString,
          rdbmsSrvContact     DisplayString
      }
  
  rdbmsSrvPrivateMibOID   OBJECT-TYPE
      SYNTAX          OBJECT IDENTIFIER
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION

"The authoritative identification for the private MIB for this

server, presumably based on the vendor, e.g., { enterprises 111 <optional subidentifiers>} for Oracle servers, { enterprises 757 <optional subidentifiers>} for Ingres servers, { enterprises 897 <optional subidentifiers>} for Sybase servers, etc.

           If no OBJECT IDENTIFIER exists for the private MIB, attempts
           to access this object will return noSuchName (SNMPv1)
           or noSuchInstance (SNMPv2)."
      ::= { rdbmsSrvEntry  1 }
  
  rdbmsSrvVendorName  OBJECT-TYPE
      SYNTAX          DisplayString
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
          "The name of the vendor whose RDBMS manages this database,
           for informational purposes."
      ::= { rdbmsSrvEntry 2 }
  
  rdbmsSrvProductName  OBJECT-TYPE
      SYNTAX          DisplayString
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
          "The product name of this server.  This is normally the
           vendor's formal name for the product, in product specific
           format."
      ::= { rdbmsSrvEntry 3 }

rdbmsSrvContact OBJECT-TYPE

      SYNTAX      DisplayString
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
          "The textual identification of the contact person for this
           managed server, together with information on how to contact
           this person.

Note: if there is no active server associated with this object, an agent may need to keep this in other persistent storage, e.g., a configuration file.

Note that a compliant agent does not need to
allow write access to this object."

      ::= { rdbmsSrvEntry 4 }
  
  ----------------------------------------------------------------
  
  rdbmsSrvInfoTable   OBJECT-TYPE
      SYNTAX          SEQUENCE OF RdbmsSrvInfoEntry
      MAX-ACCESS      not-accessible
      STATUS          current
      DESCRIPTION
          "The table of additional information about database servers.

Entries in this table correspond to applications in the APPLICATION-MIB applTable. Some objects in that table are application-specific. When they are associated with an RDBMS server in this table, the objects have the following meanings.

applName - The name of this server, i.e., the process or group of processes providing access to this database. The exact format will be product and host specific.

applVersion - The version number of this server, in product specific format.

applOperStatus - up(1) means operational and available for general use. down(2) means the server is not available for use, but is known to the agent. The other states have broad meaning, and may need to be supplemented by the vendor private MIB. Halted(3) implies an administrative state of unavailability. Congested(4) implies a resource or or administrative limit is prohibiting new inbound associations. The 'available soon' description of restarting(5) may include an indeterminate amount of recovery.

applLastChange is the time the agent noticed the most recent change to applOperStatus.

applInboundAssociation is the number of currently active local and remote conversations (usually SQL connects).

applOutboundAssociations is not provided by this MIB.

applAccumulatedInboundAssociations is the total number of local and remote conversations started since the server came up.

applAccumulatedOutbound associations is not provided by this MIB.

applLastInboundActivity is the time the most recent local or

remote conversation was attempted or disconnected.

applLastOutboundActivity is not provided by this MIB.

applRejectedInboundAssociations is the number of local or remote conversations rejected by the server for administrative reasons or because of resource limitations.

applFailedOutboundAssociations is not provided by this MIB."

      ::= { rdbmsObjects 6 }
  
  rdbmsSrvInfoEntry   OBJECT-TYPE
      SYNTAX          RdbmsSrvInfoEntry
      MAX-ACCESS      not-accessible
      STATUS          current
      DESCRIPTION
          "Information that must be present for a single 'up' database
           server, with visibility determined by the value of the
           corresponding applOperStatus object.  If an instance of
           applOperStatus is not up(1), then attempts to access
           corresponding instances in this table may result in either
           noSuchName (SNMPv1) or noSuchInstance (SNMPv2) being returned
           by the agent."
      INDEX { applIndex }
      ::= { rdbmsSrvInfoTable 1 }

RdbmsSrvInfoEntry ::=

      SEQUENCE {
          rdbmsSrvInfoStartupTime                 DateAndTime,
          rdbmsSrvInfoFinishedTransactions        Gauge32,
          rdbmsSrvInfoDiskReads                   Counter32,
          rdbmsSrvInfoDiskWrites                  Counter32,
          rdbmsSrvInfoLogicalReads                Counter32,
          rdbmsSrvInfoLogicalWrites               Counter32,
          rdbmsSrvInfoPageWrites                  Counter32,
          rdbmsSrvInfoPageReads                   Counter32,
          rdbmsSrvInfoDiskOutOfSpaces             Counter32,
          rdbmsSrvInfoHandledRequests             Counter32,
          rdbmsSrvInfoRequestRecvs                Counter32,
          rdbmsSrvInfoRequestSends                Counter32,
          rdbmsSrvInfoHighwaterInboundAssociations        Gauge32,
          rdbmsSrvInfoMaxInboundAssociations              Gauge32
      }
  
  rdbmsSrvInfoStartupTime  OBJECT-TYPE
      SYNTAX              DateAndTime
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The date and time at which this server was last started."
      ::= { rdbmsSrvInfoEntry 1 }
  
  rdbmsSrvInfoFinishedTransactions  OBJECT-TYPE
      SYNTAX              Gauge32
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The number of transactions visible to this server that have
           been completed by either commit or abort.  Some database
           operations, such as read-only queries, may not result in the
           creation of a transaction."
      ::= { rdbmsSrvInfoEntry 2 }
  
  rdbmsSrvInfoDiskReads   OBJECT-TYPE
      SYNTAX              Counter32
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The total number of reads of database files issued to the
           operating system by this server since startup.  Numbers are
           not comparable between products.  What constitutes a
           readand how it is accounted is product-specific."
      ::= { rdbmsSrvInfoEntry 3 }
  
  rdbmsSrvInfoLogicalReads    OBJECT-TYPE
      SYNTAX                  Counter32
      MAX-ACCESS              read-only
      STATUS                  current
      DESCRIPTION
          "The total number of logical reads of database files made
           internally by this server since startup.  The values of this
           object and those of rdbmsSrvInfoDiskReads reveal the effect
           of caching on read operation. Numbers are not comparable
           between products, and may only be meaningful when aggregated
           across all servers sharing a common cache."
      ::= { rdbmsSrvInfoEntry 4 }
  
  rdbmsSrvInfoDiskWrites  OBJECT-TYPE
      SYNTAX              Counter32
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The total number of writes to database files issued to the
           operating system by this server since startup.  Numbers are
           not comparable between products."
      ::= { rdbmsSrvInfoEntry 5 }
  
  rdbmsSrvInfoLogicalWrites  OBJECT-TYPE
      SYNTAX              Counter32
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The total number of times parts of the database files have
           been marked 'dirty' and in need of writing to the disk.  This
           value and rdbmsSrvInfoDiskWrites give some indication of the
           effect of 'write-behind' strategies in reducing the number of
           disk writes compared to database operations.  Because the
           writes may be done by servers other than those marking the
           parts of the database files dirty, these values may only be
           meaningful when aggregated across all servers sharing a
           common cache.  Numbers are not comparable between products."
      ::= { rdbmsSrvInfoEntry 6 }
  
  rdbmsSrvInfoPageReads   OBJECT-TYPE
      SYNTAX              Counter32
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The total number of pages in database files read by this
           server since startup.  'Pages' are product specific units of
           disk i/o operations.  This value, along with
           rdbmsSrvInfoDiskReads, reveals the effect of any grouping
           read-ahead that may be used to enhance performance of some
           queries, such as scans."
      ::= { rdbmsSrvInfoEntry 7}
  
  rdbmsSrvInfoPageWrites  OBJECT-TYPE
      SYNTAX              Counter32
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The total number of pages in database files written by this
           server since startup.  Pages are product-specific units of
           disk I/O.  This value, with rdbmsSrvInfoDiskWrites, shows the
           effect of write strategies that collapse logical writes of
           contiguous pages into single calls to the operating system."
      ::= { rdbmsSrvInfoEntry 8 }

rdbmsSrvInfoDiskOutOfSpaces OBJECT-TYPE

      SYNTAX                  Counter32
      MAX-ACCESS              read-only
      STATUS                  current
      DESCRIPTION
          "The total number of times the server has been unable to
           obtain disk space that it wanted, since server startup.  This
           would be inspected by an agent on receipt of an
           rdbmsOutOfSpace trap."
      ::= { rdbmsSrvInfoEntry 9 }
  
  rdbmsSrvInfoHandledRequests     OBJECT-TYPE
      SYNTAX              Counter32
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The total number of requests made to the server on inbound
           associations.  The meaning of 'requests' is product specific,
           and is not comparable between products.
  
           This is intended to encapsulate high level semantic
           operations between clients and servers, or between peers.
           For instance, one request might correspond to a 'select' or
           an 'insert' statement.  It is not intended to capture disk
           i/o described in rdbmsSrvInfoDiskReads and
           rdbmsSrvInfoDiskWrites."
      ::= { rdbmsSrvInfoEntry 10 }
  
  rdbmsSrvInfoRequestRecvs        OBJECT-TYPE
      SYNTAX              Counter32
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The number of receive operations made processing any requests
           on inbound associations. The meaning of operations is product
           specific, and is not comparable between products.
  
           This is intended to capture lower-level i/o operations than
           shown by HandledRequests, between clients and servers, or
           between peers.  For instance, it might roughly correspond to
           the amount of data given with an 'insert' statement.  It is
           not intended to capture disk i/o described in
           rdbmsSrvInfoDiskReads and rdbmsSrvInfoDiskWrites."
      ::= { rdbmsSrvInfoEntry 11 }
  
  rdbmsSrvInfoRequestSends        OBJECT-TYPE
      SYNTAX              Counter32
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The number of send operations made processing requests
           handled on inbound associations.  The meaning of operations
           is product specific, and is not comparable between products.
           This is intended to capture lower-level i/o operations than
           shown by HandledRequests, between between clients and
           servers, or between peers.  It might roughly correspond to
           the number of rows returned by a 'select' statement.  It is
           not intended to capture disk i/o described in DiskReads."
      ::= { rdbmsSrvInfoEntry 12 }
  
  rdbmsSrvInfoHighwaterInboundAssociations  OBJECT-TYPE
      SYNTAX              Gauge32
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The greatest number of inbound associations that have been
           simultaneously open to this server since startup."
      ::= { rdbmsSrvInfoEntry 13 }

rdbmsSrvInfoMaxInboundAssociations OBJECT-TYPE

      SYNTAX              Gauge32
      MAX-ACCESS          read-write
      STATUS              current
      DESCRIPTION
          "The greatest number of inbound associations that can be
           simultaneously open with this server.  If there is no limit,
           then the value should be zero.

Note that a compliant agent does not need to
allow write access to this object."

      ::= { rdbmsSrvInfoEntry 14 }
  
  ----------------------------------------------------------------
  
  rdbmsSrvParamTable      OBJECT-TYPE
      SYNTAX              SEQUENCE OF RdbmsSrvParamEntry
      MAX-ACCESS          not-accessible
      STATUS              current
      DESCRIPTION
          "The table of configuration parameters for a server.  Entries
           should be populated according to the following guidelines:
           (1) The value should be specified through administrative
               (human) intervention.
           (2) It should be configured on a per-server or a more global
               basis, with duplicate entries for each server sharing
               use of the parameter.
           (3) One of the following is true:
               (a) The parameter has a non-numeric value;
               (b) The current value is numeric, but it only changes due
                   to human intervention;
               (c) The current value is numeric and dynamic, but the
                   RDBMS does not track access/allocation failures
                   related to the parameter;
               (d) The current value is numeric and dynamic, the
                   RDBMS tracks changes in access/allocation failures
                   related to the parameter, but the failure has no
                   significant impact on RDBMS performance or
                   availability.
               (e) The current value is numeric and dynamic, the
                   RDBMS tracks changes in access/allocation failures
                   related to the parameter, the failure has
                   significant impact on RDBMS performance or
                   availability, and is shown in the
                   rdbmsSrvLimitedResource table."
      ::= { rdbmsObjects 7 }
  
  rdbmsSrvParamEntry      OBJECT-TYPE
      SYNTAX              RdbmsSrvParamEntry
      MAX-ACCESS          not-accessible
      STATUS              current
      DESCRIPTION
          "An entry for a single configuration parameter for a server.
           Parameters with single values have a subindex value of one.
           If the parameter is naturally considered to contain a
           variable number of members of a class, e.g.  members of the
           DBA user group, or tracepoints active in the server, then it
           must be presented as a set of rows.  If, on the other hand,
           the parameter represents a set of choices from a class,
           e.g. the permissions on a file or the options chosen out of
           the set of all options allowed, AND is guaranteed to always
           fit in the 255 character length of a DisplayString, then it
           may be presented as a comma separated list with a subindex
           value of one.  Zero may not be used as a subindex value.
  
           Entries for a server must be present if the value of the
           corresponding applOperStatus object is up(1).  If an instance
           of applOperStatus is not up(1), then attempts to access
           corresponding instances in this table may result in either
           noSuchName (SNMPv1) or noSuchInstance (SNMPv2) being returned
           by the agent."
      INDEX  { applIndex, rdbmsSrvParamName, rdbmsSrvParamSubIndex }
      ::= { rdbmsSrvParamTable 1 }

RdbmsSrvParamEntry ::=

SEQUENCE {

          rdbmsSrvParamName           DisplayString,
          rdbmsSrvParamSubIndex       INTEGER,
          rdbmsSrvParamID             AutonomousType,
          rdbmsSrvParamCurrValue      DisplayString,
          rdbmsSrvParamComment        DisplayString
      }
  
  rdbmsSrvParamName       OBJECT-TYPE
      SYNTAX              DisplayString (SIZE (1..64))
      MAX-ACCESS          not-accessible
      STATUS              current
      DESCRIPTION
          "The name of a configuration parameter for a server.  This
           name is product-specific. The length is limited to 64
           characters to constrain the number of sub-identifiers needed
           for instance identification (and to minimize network
           traffic)."
      ::= { rdbmsSrvParamEntry 1 }
  
  rdbmsSrvParamSubIndex   OBJECT-TYPE
      SYNTAX              INTEGER (1..2147483647)
      MAX-ACCESS          not-accessible
      STATUS              current
      DESCRIPTION
          "The subindex value for this parameter.  If the parameter is
           naturally considered to contain a variable number of members
           of a class, e.g.  members of the DBA user group, or files
           which are part of the database, then it must be presented as
           a set of rows.  If, on the other hand, the parameter
           represents a set of choices from a class, e.g. the
           permissions on a file or the options chosen out of the set of
           all options allowed, AND is guaranteed to always fit in the
           255 character length of a DisplayString, then it may be
           presented as a comma separated list with a subindex value of
           one.  Zero may not be used as a value."
      ::= { rdbmsSrvParamEntry 2 }
  
  rdbmsSrvParamID         OBJECT-TYPE
      SYNTAX              AutonomousType
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The ID of the parameter which may be described in some
           other MIB.  If there is no ID for this rdbmsSrvParamName,
           attempts to access this object will return noSuchName
           (SNMPv1) or noSuchInstance (SNMPv2)."
      ::= { rdbmsSrvParamEntry 3 }
  
  rdbmsSrvParamCurrValue  OBJECT-TYPE
      SYNTAX              DisplayString
      MAX-ACCESS          read-write
      STATUS              current
      DESCRIPTION
          "The value for a configuration parameter now in effect, the
           actual setting for the server.  While there may multiple
           values in the temporal domain of interest (for instance, the
           value to take effect at the next restart), this is the
           current setting.

Note that a compliant agent does not need to
allow write access to this object."

      ::= { rdbmsSrvParamEntry 4 }
  
  rdbmsSrvParamComment    OBJECT-TYPE
      SYNTAX              DisplayString
      MAX-ACCESS          read-write
      STATUS              current
      DESCRIPTION
          "Annotation which describes the purpose of a configuration
           parameter or the reason for a particular parameter's
           setting.

Note that a compliant agent does not need to
allow write access to this object."

      ::= { rdbmsSrvParamEntry 5 }
  
  ----------------------------------------------------------------
  
  rdbmsSrvLimitedResourceTable        OBJECT-TYPE
      SYNTAX          SEQUENCE OF RdbmsSrvLimitedResourceEntry
      MAX-ACCESS      not-accessible
      STATUS          current
      DESCRIPTION
          "The table of limited resources relevant to a server."
      ::= { rdbmsObjects 8 }
  
  rdbmsSrvLimitedResourceEntry    OBJECT-TYPE
      SYNTAX      RdbmsSrvLimitedResourceEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "An entry for a single limited resource kept by the server.
           A limited resource has maximum use determined by a parameter
           that might or might not changeable at run time, or visible in
           the rbmsSrvParamTable.  Examples would be the number of
           available locks, or number of concurrent executions allowed
           in a server.  Arrays of resources are supported through an

integer subindex, which should have the value of one for single-instance names.

           Limited resources that are shared across servers or databases
           are best duplicated in this table across
           all servers accessing the resource."
      INDEX { applIndex, rdbmsSrvLimitedResourceName }
      ::= { rdbmsSrvLimitedResourceTable 1 }

RdbmsSrvLimitedResourceEntry ::=

      SEQUENCE {
          rdbmsSrvLimitedResourceName         DisplayString,
          rdbmsSrvLimitedResourceID           AutonomousType,
          rdbmsSrvLimitedResourceLimit        INTEGER,
          rdbmsSrvLimitedResourceCurrent      INTEGER,
          rdbmsSrvLimitedResourceHighwater    INTEGER,
          rdbmsSrvLimitedResourceFailures     Counter32,
          rdbmsSrvLimitedResourceDescription  DisplayString
      }
  
  rdbmsSrvLimitedResourceName         OBJECT-TYPE
      SYNTAX          DisplayString
      MAX-ACCESS      not-accessible
      STATUS          current
      DESCRIPTION
          "The name of the resource, for instance 'threads' or
           'semaphores', or 'buffer pages'"
      ::= { rdbmsSrvLimitedResourceEntry  1 }

rdbmsSrvLimitedResourceID OBJECT-TYPE

      SYNTAX              AutonomousType
      MAX-ACCESS          read-only
      STATUS              current
      DESCRIPTION
          "The ID of the resource which may be described in some other
           MIB.  If there is no ID for this rdbmsSrvLimitedResourceName,
           attempts to access this object will return noSuchName
           (SNMPv1) or noSuchInstance (SNMPv2)."
      ::= { rdbmsSrvLimitedResourceEntry 2 }
  
  rdbmsSrvLimitedResourceLimit        OBJECT-TYPE
      SYNTAX          INTEGER (1..2147483647)
      MAX-ACCESS      read-write
      STATUS          current

DESCRIPTION

"The maximum value the resource use may attain.

Note that a compliant agent does not need to
allow write access to this object."

      ::= { rdbmsSrvLimitedResourceEntry  3 }
  
  rdbmsSrvLimitedResourceCurrent      OBJECT-TYPE
      SYNTAX          INTEGER (1..2147483647)
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
          "The current value for the resource."
      ::= { rdbmsSrvLimitedResourceEntry  4 }
  
  rdbmsSrvLimitedResourceHighwater            OBJECT-TYPE
      SYNTAX          INTEGER (1..2147483647)
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
          "The maximum value of the resource seen since applUpTime
           was reset."
      ::= { rdbmsSrvLimitedResourceEntry  5 }
  
  rdbmsSrvLimitedResourceFailures     OBJECT-TYPE
      SYNTAX          Counter32
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
          "The number of times the system wanted to exceed the limit of
           the resource since applUpTime was reset."
      ::= { rdbmsSrvLimitedResourceEntry  6 }
  
  rdbmsSrvLimitedResourceDescription    OBJECT-TYPE
      SYNTAX          DisplayString
      MAX-ACCESS      read-write
      STATUS          current
      DESCRIPTION
          "A description of the resource and the meaning of the integer
           units used for Limit, Current, and Highwater.

Note that a compliant agent does not need to
allow write access to this object."

      ::= { rdbmsSrvLimitedResourceEntry  7 }
  
  ----------------------------------------------------------------
  
  rdbmsRelTable   OBJECT-TYPE
      SYNTAX      SEQUENCE OF RdbmsRelEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "A table relating databases and servers present on a host."
      ::= { rdbmsObjects 9 }
  
  rdbmsRelEntry   OBJECT-TYPE
      SYNTAX      RdbmsRelEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "An entry relating a single database server to a single
           database to which it may provide access.  The table is
           indexed first by the index of rdbmsDbTable, and then
           rdbmsSrvTable, so that all servers capable of providing
           access to a given database may be found by SNMP traversal
           operations (get-next and get-bulk).  The makeup of this table
           depends on the product's architecture, e.g. if it is one
           server - many databases, then each server will appear n
           times, where n is the number of databases it may access, and
           each database will appear once.  If the architecture is one
           database - many servers, then each server will appear once
           and each database will appear n times, where n is the number
           of servers that may be accessing it."
      INDEX  { rdbmsDbIndex, applIndex }
      ::= { rdbmsRelTable 1 }

RdbmsRelEntry ::=

      SEQUENCE {
           rdbmsRelState          INTEGER,
           rdbmsRelActiveTime     DateAndTime
      }
  
  rdbmsRelState   OBJECT-TYPE
      SYNTAX      INTEGER{
                      other(1),
                      active(2),
                      available(3),
                      restricted(4),
                      unavailable(5)
                      }
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION

"The state of this server's access to this database.

Active(2) means the server is actively using the database. Available(3) means the server could use the database if necessary. Restricted(4) means the database is in some administratively determined state of less-than-complete availability. Unavailable(5) means the database is not available through this server. Other(1) means the database/server is in some other condition, possibly described in the vendor private MIB."

      ::= { rdbmsRelEntry 1 }
  
  rdbmsRelActiveTime  OBJECT-TYPE
      SYNTAX          DateAndTime
      MAX-ACCESS      read-only
      STATUS          current
      DESCRIPTION
          "The time the database was made active by the server.  If an
           instance of rdbmsRelState is not active(1), then attempts to
           access the corresponding instance of this object may result
           in either noSuchName (SNMPv1) or noSuchInstance (SNMPv2)
           being returned by the agent."
      ::= { rdbmsRelEntry 2 }
  
  ----------------------------------------------------------------

-- Well known resources for which limits, high water marks, -- access or allocation failures, and current levels of use -- are possibly available in either the rdbmsDbLimitedResources -- or the rdbmsSrvLimitedResources tables.

rdbmsWellKnownLimitedResources OBJECT IDENTIFIER

          ::= { rdbmsObjects 10 }
  
  rdbmsLogSpace   OBJECT-IDENTITY
                  STATUS  current
                  DESCRIPTION
                  "Storage allocated for redo and undo logs."
          ::= { rdbmsWellKnownLimitedResources 1}
  
  ----------------------------------------------------------------
  
  rdbmsTraps       OBJECT IDENTIFIER ::= { rdbmsMIB 2 }
  
  rdbmsStateChange    NOTIFICATION-TYPE
      OBJECTS         { rdbmsRelState }
      STATUS          current
      DESCRIPTION
          "An rdbmsStateChange trap signifies that one of the database
           server/databases managed by this agent has changed its
           rdbmsRelState in a way that makes it less accessible for use.
           For these purposes, both active(2) and available(3) are
           considered fully accessible.  The state sent with the trap is
           the new, less accessible state."
      ::= { rdbmsTraps 1 }

rdbmsOutOfSpace NOTIFICATION-TYPE

      OBJECTS     { rdbmsSrvInfoDiskOutOfSpaces }
      STATUS      current
      DESCRIPTION
          "An rdbmsOutOfSpace trap signifies that one of the database
           servers managed by this agent has been unable to allocate
           space for one of the databases managed by this agent.  Care
           should be taken to avoid flooding the network with these
           traps."
      ::= { rdbmsTraps 2 }
  
  ----------------------------------------------------------------
  
  -- compliance information
  
  rdbmsConformance    OBJECT IDENTIFIER ::= { rdbmsMIB 3 }
  rdbmsCompliances    OBJECT IDENTIFIER ::= { rdbmsConformance 1 }
  rdbmsGroups         OBJECT IDENTIFIER ::= { rdbmsConformance 2 }
  
  -- compliance statements
  
  rdbmsCompliance     MODULE-COMPLIANCE
      STATUS          current
      DESCRIPTION
          "The compliance statement for SNMP entities which
           implement the RDBMS MIB"
      MODULE HOST-RESOURCES-MIB
          MANDATORY-GROUPS    { hrSystem }
      MODULE APPLICATION-MIB
          MANDATORY-GROUPS { applGroup }
      MODULE RDBMS-MIB
          MANDATORY-GROUPS { rdbmsGroup }
  
      GROUP  rdbmsGroup
          DESCRIPTION
              "The rdbmsGroup is mandatory, but no write access
               to objects is required for compliance."
          OBJECT      rdbmsDbContact
          MIN-ACCESS  read-only
          DESCRIPTION
              "A compliant system need not allow write-access to this
              object."
          OBJECT      rdbmsDbParamCurrValue
          MIN-ACCESS  read-only
          DESCRIPTION
              "A compliant system need not allow write-access to this
              object."
          OBJECT      rdbmsDbParamComment
          MIN-ACCESS  read-only
          DESCRIPTION
              "A compliant system need not allow write-access to this
              object."
          OBJECT      rdbmsDbLimitedResourceLimit
          MIN-ACCESS  read-only
          DESCRIPTION
              "A compliant system need not allow write-access to this
              object."
          OBJECT      rdbmsDbLimitedResourceDescription
          MIN-ACCESS  read-only
          DESCRIPTION
              "A compliant system need not allow write-access to this
              object."
          OBJECT      rdbmsSrvContact
          MIN-ACCESS  read-only
          DESCRIPTION
              "A compliant system need not allow write-access to this
              object."
          OBJECT      rdbmsSrvInfoMaxInboundAssociations
          MIN-ACCESS  read-only
          DESCRIPTION
              "A compliant system need not allow write-access to this
              object."
          OBJECT      rdbmsSrvParamCurrValue
          MIN-ACCESS  read-only
          DESCRIPTION
              "A compliant system need not allow write-access to this
              object."
          OBJECT      rdbmsSrvParamComment
          MIN-ACCESS  read-only
          DESCRIPTION
              "A compliant system need not allow write-access to this
              object."
          OBJECT      rdbmsSrvLimitedResourceLimit
          MIN-ACCESS  read-only
          DESCRIPTION
              "A compliant system need not allow write-access to this
              object."
          OBJECT      rdbmsSrvLimitedResourceDescription
          MIN-ACCESS  read-only
          DESCRIPTION
              "A compliant system need not allow write-access to this
              object."
  
      ::= { rdbmsCompliances 1 }

-- units of conformance

-- rdbmsStateChange and rdbmsOutOfSpace traps are omitted -- intentionally. They are not required or part of any -- conformance group.

  rdbmsGroup   OBJECT-GROUP
      OBJECTS  {
                  rdbmsDbPrivateMibOID, rdbmsDbVendorName,
                  rdbmsDbName, rdbmsDbContact,
  
                  rdbmsDbInfoProductName, rdbmsDbInfoVersion,
                  rdbmsDbInfoSizeUnits, rdbmsDbInfoSizeAllocated,
                  rdbmsDbInfoSizeUsed, rdbmsDbInfoLastBackup,

rdbmsDbParamCurrValue, rdbmsDbParamComment,

                  rdbmsDbLimitedResourceLimit,
                  rdbmsDbLimitedResourceCurrent,
                  rdbmsDbLimitedResourceHighwater,
                  rdbmsDbLimitedResourceFailures,
                  rdbmsDbLimitedResourceDescription,

rdbmsSrvPrivateMibOID, rdbmsSrvVendorName, rdbmsSrvProductName, rdbmsSrvContact,

                  rdbmsSrvInfoStartupTime,
                  rdbmsSrvInfoFinishedTransactions,
                  rdbmsSrvInfoDiskReads, rdbmsSrvInfoDiskWrites,
                  rdbmsSrvInfoLogicalReads, rdbmsSrvInfoLogicalWrites,
                  rdbmsSrvInfoPageReads, rdbmsSrvInfoPageWrites,
                  rdbmsSrvInfoHandledRequests,
                  rdbmsSrvInfoRequestRecvs, rdbmsSrvInfoRequestSends,
                  rdbmsSrvInfoHighwaterInboundAssociations,
                  rdbmsSrvInfoMaxInboundAssociations,

rdbmsSrvParamCurrValue, rdbmsSrvParamComment,

rdbmsSrvLimitedResourceLimit,

rdbmsSrvLimitedResourceCurrent,

rdbmsSrvLimitedResourceHighwater,

rdbmsSrvLimitedResourceFailures,

rdbmsSrvLimitedResourceDescription,

                  rdbmsRelState, rdbmsRelActiveTime }
      STATUS   current
      DESCRIPTION
          "A collection of objects providing basic instrumentation of an
           RDBMS entity."
      ::= { rdbmsGroups 1 }
  
  ----------------------------------------------------------------
  
  END

5. Acknowledgements

This document was produced by the IETF RDBMSMIB working group:

       Mark Allyn, Boeing
       Virinder Batra, IBM
       Jonathan Bauer  DEC
       Janice Befu, Network General
       Gerard Berthet, Independence Technologies
       Dave Brower, Ingres
       Barry Bruins, Network General
       David Campbell, Digital Equipment Corporation
       Stephen Campbell, European Database Consulting
       Jeff Case       SNMP Research
       Dave Crocker    Silicon Graphics
       Tony Daniel, Informix
       Craig DeNoce, Sybase
       Howard Dernehl, Ingres/Data General
       Mike Hartstein, Oracle
       Vijay Iyer, Independence Technologies
       Britt Johnston, Progress
       Bill Kehoe, Sybase
       Deirdre Kostick, Bellcore
       Cheryl Krupczak, Empire Technologies
       Damien Lindauer, Microsoft
       Ivan Lui, Informix
       John McCormack, Tandem Computers Inc.
       David Meldrum, Sybase
       David Morandi, Red Brick Systems
       Bob Natale, American Computer
       Diana Parr, Gupta
       David Perkins, Synoptics
       Randy Presuhn, Peer Networks
       Brian Promes, Novell

Bob Purvy, Oracle
Roger Reinsch, IBM
Marshall T. Rose, Dover Beach Consulting
Jon Saperia, DEC
Marc Sinykin, Oracle
Jay Smith, Oracle
Mike Sorsen, Edward D. Jones & Co.
Bob Taylor, Tandem
Maria Valls, IBM
Bert Wijnen, IBM
Stan Wong, IBM

6. References

   [1] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Structure
       of Management Information for version 2 of the Simple Network
       Management Protocol (SNMPv2)", RFC 1442, SNMP Research, Inc.,
       Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon
       University, April 1993.
   
   [2] McCloghrie, K., and M. Rose, "Management Information Base for
       Network Management of TCP/IP-based internets - MIB-II", STD 17,
       RFC 1213, Hughes LAN Systems, Performance Systems International,
       March 1991.
   
   [3] Galvin, J., and K. McCloghrie, "Administrative Model for version
       2 of the Simple Network Management Protocol (SNMPv2)", RFC 1445,
       Trusted Information Systems, Hughes LAN Systems, April 1993.
   
   [4] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol
       Operations for version 2 of the Simple Network Management
       Protocol (SNMPv2)", RFC 1448, SNMP Research, Inc., Hughes LAN
       Systems, Dover Beach Consulting, Inc., Carnegie Mellon
       University, April 1993.
   
   [5] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Textual
       Conventions for version 2 of the Simple Network Management
       Protocol (SNMPv2)", RFC 1443, SNMP Research, Inc., Hughes LAN
       Systems, Dover Beach Consulting, Inc., Carnegie Mellon
       University, April 1993.
   
   [6] Kille, S., WG Chair, and N. Freed, Editor, "The Network Services
       Monitoring MIB", RFC 1565, ISODE Consortium, Innosoft, January
       1994.

7. Security Considerations

Security issues are not discussed in this memo.

8. Authors' Addresses

David Brower
The ASK Group, INGRES DBMS Development
1080 Marina Village Parkway
Alameda, CA, 94501
US

   Phone: +1 510 748 3418
   EMail: daveb@ingres.com
   
   Bob Purvy
   Oracle Corporation
   500 Oracle Parkway
   Redwood Shores, CA  94065
   US
   
   Phone: +1 415 506 2972
   EMail: bpurvy@us.oracle.com
   
   Anthony Daniel
   Informix Software, Inc.
   921 S.W. Washington Street
   Portland, OR  97205
   US
   
   Phone: +1 503 221 2638
   EMail: anthony@informix.com
   
   Marc Sinykin
   Oracle Corporation
   400 Oracle Parkway
   Redwood Shores, CA  94065
   US
   
   Phone: +1 415 506 2477
   EMail: msinykin@us.oracle.com
   Jay Smith
   Oracle Corporation
   400 Oracle Parkway
   Redwood Shores, CA  94065
   US
   
   Phone: +1 415 506 6239
   EMail: jaysmith@us.oracle.com