    Network Working Group                                  D. Brower, Editor
    Request for Comments: 1697        The ASK Group, INGRES DBMS Development
    Category: Standards Track         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.

    Brower, Purvy, Daniel, Sinykin & Smith                          [Page 1]

    RFC 1697                       RDBMS-MIB                     August 1994

    2.  The SNMPv2 Network Management Framework

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

          o RFC 1442 [1] which defines the SMI, the mechanisms used for
            describing and naming objects for the purpose of management.

          o STD 17, RFC 1213 [2] defines MIB-II, the core set of managed
            objects for the Internet suite of protocols.

          o RFC 1445 [3] which defines the administrative and other
            architectural aspects of the framework.

          o RFC 1448 [4] which defines the protocol used for network
            access to managed objects.

          o 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

          o 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.

    Brower, Purvy, Daniel, Sinykin & Smith                          [Page 2]

    RFC 1697                       RDBMS-MIB                     August 1994

    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:

    Brower, Purvy, Daniel, Sinykin & Smith                          [Page 3]

    RFC 1697                       RDBMS-MIB                     August 1994

       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.

    Brower, Purvy, Daniel, Sinykin & Smith                          [Page 4]

    RFC 1697                       RDBMS-MIB                     August 1994

    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

    Brower, Purvy, Daniel, Sinykin & Smith                          [Page 5]

    RFC 1697                       RDBMS-MIB                     August 1994

    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 }

    Brower, Purvy, Daniel, Sinykin & Smith                          [Page 6]

    RFC 1697                       RDBMS-MIB                     August 1994

      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

    Brower, Purvy, Daniel, Sinykin & Smith                          [Page 7]

    RFC 1697                       RDBMS-MIB                     August 1994

              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 }

    Brower, Purvy, Daniel, Sinykin & Smith                          [Page 8]

    RFC 1697                       RDBMS-MIB                     August 1994

      ----------------------------------------------------------------

      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

    Brower, Purvy, Daniel, Sinykin & Smith                          [Page 9]

    RFC 1697                       RDBMS-MIB                     August 1994

          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 }

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 10]

    RFC 1697                       RDBMS-MIB                     August 1994

      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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 11]

    RFC 1697                       RDBMS-MIB                     August 1994

                       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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 12]

    RFC 1697                       RDBMS-MIB                     August 1994

          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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 13]

    RFC 1697                       RDBMS-MIB                     August 1994

               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.

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 14]

    RFC 1697                       RDBMS-MIB                     August 1994

               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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 15]

    RFC 1697                       RDBMS-MIB                     August 1994

          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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 16]

    RFC 1697                       RDBMS-MIB                     August 1994

          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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 17]

    RFC 1697                       RDBMS-MIB                     August 1994

              "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 }

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 18]

    RFC 1697                       RDBMS-MIB                     August 1994

      ----------------------------------------------------------------

      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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 19]

    RFC 1697                       RDBMS-MIB                     August 1994

               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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 20]

    RFC 1697                       RDBMS-MIB                     August 1994

          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."

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 21]

    RFC 1697                       RDBMS-MIB                     August 1994

          ::= { 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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 22]

    RFC 1697                       RDBMS-MIB                     August 1994

              "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.

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 23]

    RFC 1697                       RDBMS-MIB                     August 1994

               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;

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 24]

    RFC 1697                       RDBMS-MIB                     August 1994

                   (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,

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 25]

    RFC 1697                       RDBMS-MIB                     August 1994

              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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 26]

    RFC 1697                       RDBMS-MIB                     August 1994

          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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 27]

    RFC 1697                       RDBMS-MIB                     August 1994

               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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 28]

    RFC 1697                       RDBMS-MIB                     August 1994

          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 }

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 29]

    RFC 1697                       RDBMS-MIB                     August 1994

      ----------------------------------------------------------------

      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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 30]

    RFC 1697                       RDBMS-MIB                     August 1994

              "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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 31]

    RFC 1697                       RDBMS-MIB                     August 1994

              "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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 32]

    RFC 1697                       RDBMS-MIB                     August 1994

                  "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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 33]

    RFC 1697                       RDBMS-MIB                     August 1994

              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,

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 34]

    RFC 1697                       RDBMS-MIB                     August 1994

                      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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 35]

    RFC 1697                       RDBMS-MIB                     August 1994

           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.

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 36]

    RFC 1697                       RDBMS-MIB                     August 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

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 37]

    RFC 1697                       RDBMS-MIB                     August 1994

       Jay Smith
       Oracle Corporation
       400 Oracle Parkway
       Redwood Shores, CA  94065
       US

       Phone: +1 415 506 6239
       EMail: jaysmith@us.oracle.com

    Brower, Purvy, Daniel, Sinykin & Smith                         [Page 38]