Guest

Cisco Remote Monitoring Suite Option

Alarms Database Schema (Release 4.6)

  • Viewing Options

  • PDF (499.5 KB)
  • Feedback
Alarms Database Schema

Table Of Contents

Alarms Database Schema

Introduction

Table Classes

A Note About Time

Detailed Schema Description

VersionInfo Table

Description

Fields

ProductInfo Table

Description

Fields

Objects Table

Description

Fields

OIDNodes Table

Description

Fields

Attributes Table

Description

Fields

OIDNodeAttributes Table

Description

Fields

HyperlinkInfo Table

Description

Fields

Rules Table

Description

Fields

Customers Table

Description

Fields

InstanceNodes Table

Description

Fields

Uptime Table

Description

Fields

Alarms Table

Description

Fields

Events Table

Description

Fields

Simples Table

Description

Fields

ObjectState Table

Description

Fields

AlarmsSummaryHour Table

Description

Fields

AlarmsSummaryDay Table

Description

Fields

Filters Table

Description

Fields

FiltersProductSpecific Table

Description

Fields

How Handles Are Used

Alarm State Transition Diagram


Alarms Database Schema


Introduction

"Remote Monitoring Suite Overview", presented an overview of the main tables in the Alarms Database. This appendix provides the database map (Figure A-1) and describes all of the tables in the database in greater detail.

Table Classes

There are four classes of tables maintained in the database:

1. Configuration Tables

These tables store information related to products, Rule mapping and nodes.

Tables in this class include the following:

VersionInfo

ProductInfo

Objects

OIDNodes

Attributes

OIDNodeAttributes

HyperlinkInfo

NodeTypes

Rules

Customers

InstanceNodes

2. Alarms Tables

These tables store information related to the Listener Event stream processed by the LGMapper and LGArchiver Servers.

These tables include:

Uptime

Alarms

Events

Simples

ObjectState

3. Summary Statistics Tables

These tables store summary information collected during continuous monitoring of Listener Events.

The information in these tables represent totals or averages of important metrics related to Alarms and Events.

These tables include:

AlarmsSummaryHour

AlarmsSummaryDay

4. Filter Tables

These tables store information related to server-side filtering options.

These tables include:

Filters

FiltersProductSpecific

Figure A-1 Alarms Database Schema Map

A Note About Time

There are many time fields in tables throughout the database. All times recorded in the database are stored relative to the time zone of the LGMapper/LGArchiver Server machine. Some times represent the time the Event actually occurred at the customer site, other times represent the time an Event is received at the LGMapper, and other times represent the time that an AlarmTracker user assigned an Alarm.


Note Customers may be located all around the world and when an Event is sent to Listener its Event time is adjusted to be in the time zone of the Listener. When this Event is sent on to LGMapper, the time may be further adjusted if the LGMapper time zone is different than that of the Listener.


Detailed Schema Description

VersionInfo Table

Description

The VersionInfo table stores information related to the schema version and relevant times of updates. This table is updated by the LGCnfg tool and by the LGMapper/LGArchiver Servers.

This table should contain only a single row of information.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
VersionNumber (PK)

int

no

4

10

0

no

(n/a)

(n/a)

MasterDB

bit

no

1

no

(n/a)

(n/a)

MasterDBFile

varchar

no

255

yes

yes

no

ModifiedTime

datetime

no

8

no

(n/a)

(n/a)

ReplicationTime

datetime

no

8

yes

(n/a)

(n/a)

ReindexTime

datetime

no

8

yes

(n/a)

(n/a)



Note (PK) is used throughout this document to indicate the Primary Key of the table.


Fields

Column_name
Column Description
VersionNumber

Alarms database schema version number.

MasterDB

Set to 1 if the database is a Master Database, 0 if it is a Slave Database. Database replication is not currently implemented in Version 2 of the product.

MasterDBFile

If MasterDB is set to 0, this field contains the location of the Master Database. Database replication is not currently implemented in Version 2 of the product.

ModifiedTime

The time the configuration information in the database was last changed. Changes made using LGCnfg to any of the Configuration Tables except for Customers and InstanceNodes (refer to the Introduction) update this field.

ReplicationTime

The time the database was last replicated. Database replication is not currently implemented in Version 2 of the product.

ReindexTime

The time of the last full re index using DBCC DBREINDEX.

AdminLocks

The count of Admin locks on the Alarms Database. If an instance of LGCnfg2 has the database open with read/write access, it will increment this value. When it exits, it will decrement this value. When LGMapper or LGArchiver starts up, it will check this field. If it is non-zero, it will fail and exit.


ProductInfo Table

Description

This table contains general information about Products supported by the Rule mapping process.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
ProductID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

ProductName

varchar

no

64

no

yes

no

ModifiedTime

datetime

no

8

no

(n/a)

(n/a)

ObjectsParseTime

datetime

no

8

yes

(n/a)

(n/a)

BeeperParseTime

datetime

no

8

yes

(n/a)

(n/a)

Description

varchar

no

256

yes

yes

no


Fields

Column_name
Column Description
ProductID

Product ID. This ProductID field is used as a foreign key in many other tables.

ProductName

Product name.

ModifiedTime

Time this record was last updated.

ObjectsParseTime

Last time the LGCnfg tool updated the Objects table with a new object.flt file.

BeeperParseTime

Last time the LGCnfg tool updated the Objects table with a new beeper.v4 file.

Description

General description of the product.


Objects Table

Description

The Objects table stores information about the object.flt and beeper.flt files used at the customer site and at the Listener site to determine which EMS Events are phoned home to Listener and processed by Listener.

Information in this table represents the subset of the EMS messages that the Logger tracks.

Information in this table represents the basis for the Rule mapping process.

The contents of this table can be viewed in the Objects View of the LGCnfg tool.

Column_name
Type
Computed
Length
Length
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
ProductID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

MsgID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

ModifiedTime

datetime

no

8

yes

(n/a)

(n/a)

State

int

no

4

10

0

yes

(n/a)

(n/a)

Class

int

no

4

10

0

yes

(n/a)

(n/a)

Timeout

int

no

4

10

0

yes

(n/a)

(n/a)

Args

int

no

4

10

0

yes

(n/a)

(n/a)

AlmArgs

int

no

4

10

0

yes

(n/a)

(n/a)

TrapNo

int

no

4

10

0

yes

(n/a)

(n/a)

TrapSev

int

no

4

10

0

yes

(n/a)

(n/a)

Mnemonic

varchar

no

128

yes

yes

no


Fields

Column_name
Column Description
ProductID

Product ID.

MsgID

EMS Message ID.

ModifiedTime

Time this record was last updated.

State

A decimal value (0..9) indicating the internal state to use when tracking the object. A value of 9 indicates the message is a stateless object/alarm and should always be sent as an alarm. A value of 0 indicates it is a "clear" (reset) for the object. Other events signal a "raise" for the object.

Class

A name which allows grouping of EMS message IDs into logical objects. There is one Class ID for each kind of object tracked.

Timeout

Currently unused by the CSFS process (processes that receive the alarm feed such as a process to generate pager notices, would use the time-out value).

Args

An argument string (max of 16 characters) composed of single hex values(0..F) indicating the arguments from the EMS event that are used internally by the object tracking process (CSFS) to discriminate the event into a unique object. (E.G. 862) Currently the following values are used:

9 DMP System ID
8 SystemName
7 ProcessName
6 Side
5..1 EMS Arguments
AlmArgs

An argument string (like Object Argument String above except that 9..6 cannot be used!!) that is passed to clients receiving a feed from the CSFS process to use for their own internal processing.

TrapNo

A number which (also defined in the MIB definition) indicates the trap number to use when forwarding the alarm. This is passed to clients receiving a feed from the CSFS process when an alarm event is detected.

TrapSev

A decimal value (0..32767) indicating the severity of the alarm. This is passed onto CSFS clients when an alarm event is detected.

Mnemonic

Description of the event.


OIDNodes Table

Description

The OIDNodes table stores information about a generalized hierarchy of objects. This table defines the basic template object structure for the Rule mapping process to use to create Instance Nodes.

The parent-child relationships are represented in the table by having each record contain a ParentID field which contains the NodeID of the parent node.

A graphical representation of this table as a tree view can be seen in the OID Nodes Tree View of the LGCnfg tool.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
NodeID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

ParentID

int

no

4

10

0

no

(n/a)

(n/a)

Name

varchar

no

64

no

yes

no

ProductID

int

no

4

10

0

no

(n/a)

(n/a)

NodeType

int

no

4

10

0

no

(n/a)

(n/a)

StateRollup

bit

no

1

no

(n/a)

(n/a)

ChildNotifications int

no

4

10

0

no

(n/a)

(n/a)

 
HyperlinkNodeID

int

no

4

10

0

no

(n/a)

(n/a)

AttributeCount

int

no

4

10

0

no

(n/a)

(n/a)

Filter

int

no

4

10

0

no

(n/a)

(n/a)

ModifiedTime

datetime

no

8

no

(n/a)

(n/a)


Fields

Column_name
Column Description
NodeID

Primary key and unique node identifier. This is an identity column.

ParentID

NodeID of the parent node. The root node has a ParentID of zero.

Name

Node name.

ProductID

Product ID.

NodeType

Node Type.

StateRollup

Defines how the State of this node rolls up to its parent.

The possible values are:

0 - The State does not roll up to its parent.

1 - The State rolls up to its parent.

ChildNotifications

Defines how State roll up notifications from child nodes are handled.

The possible values are:

0 - The node ignores State roll up notifications from its children.

1 - The node processes State roll ups in a functional way.

This means that the overall child roll up contribution is computed by ANDing the individual child node States.

If all nodes are up, the roll up contribution is up

If all nodes are down, the roll up contribution is down.

If at least one of the nodes is down, but not all, the roll up contribution is partial impaired.

2 - The processes State roll ups in a critical path way.

This means that the overall child roll up contribution is computed by ORing the individual child node States. Thus, the roll up contribution represents the highest State value of all child nodes that roll up their States.

HyperlinkNodeID

If the node is a Hyperlink node, this field represents the NodeID of the real node that it refers to.

AttributeCount

Count of the number of Attributes associated with the Node. All nodes must have a State Attribute so this field will have a minimum value of 1.

Filter

Filter value indicating whether a server-side filter is set for it.

A value of 1 means that the OID Node is being filtered.

A value of 2 means that the OID Node is being filtered as a result of one of its parent nodes being filtered.

A mask value of 0x10 means that the OID Node is filtered as a result of a ProductID filter being set.

ModifiedTime

Time this record was last updated.


Attributes Table

Description

The Attributes table contains a mapping of an AttirbuteID value to an Attribute name. It also contains information about the type of Attribute.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
AttributeID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

Name

varchar

no

64

no

yes

no

DataType

smallint

no

2

5

0

no

(n/a)

(n/a)

Rollup

int

no

4

10

0

no

(n/a)

(n/a)

DefaultValue

varchar

no

64

yes

yes

no

ModifiedTime

datetime

no

8

no

(n/a)

(n/a)


Fields

Column_name
Column Description
AttributeID

Primary key and identity column containing the AttributeID.

Name

Attribute name.

DataType

VARTYPE field. See the MicroSoft Visual C++ documentation for the VARIANT data type for possible values.

Rollup

Indicates how the value of the Attribute contributes to the node's State value.

The possible values are:

0 - The Attribute value does not contribute to the State value.

1 - The Attribute value is combined with other Attribute values in a functional way. This means that the overall Attribute contribution is computed by ANDing the individual Attribute values.

2 - The Attribute value is combined with other Attribute values in a critical path way. This means that the overall Attributes contribution is computed by ORing the individual Attribute values. Thus, the roll up contribution represents the highest Attribute value of all Attributes that roll up their values.

DefaultValue

Default value for the Attribute.

ModifiedTime

Time this record was last updated.


OIDNodeAttributes Table

Description

The OIDNodeAttributes table contains the mappings of OIDNodes and the Attributes they contain.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
NodeID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

AttributeID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

ModifiedTime

datetime

no

8

no

(n/a)

(n/a)


Fields

Column_name
Column Description
NodeID

NodeID in the OIDNodes table.

AttributeID

AttributeID in the Attributes table.

ModifiedTime

Time this record was last updated.


HyperlinkInfo Table

Description

The HyperlinkInfo table contains information about Hyperlink nodes including information on how to determine the resulting Instance Node.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
NodeID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

InstanceName

varchar

no

255

no

yes

no

FormatString

varchar

no

255

yes

yes

no

ModifiedTime

datetime

no

8

no

(n/a)

(n/a)


Fields

Column_name
Column Description
NodeID

NodeID in the OIDNodes table.

InstanceName

A specification of the how the Instance Name will be formed.

FormatString

If the Instance Name includes parameters, this field includes C-style formatting information.

ModifiedTime

Time this record was last updated.


Rules Table

Description

The Rules table stores the information that maps a Listener message to a specific Attribute and Instance Node based on the message content. Each Rule is associated with a particular OID Node in the OIDNodes table.

The set of Rules defined for each OID Node can be seen visually in the Rules View of the LGCnfg tool. Each time a different OID Node is selected, the set of Rules for that OID Node is displayed.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
RuleID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

ProductID

int

no

4

10

0

no

(n/a)

(n/a)

Class

int

no

4

10

0

no

(n/a)

(n/a)

ModifiedTime

datetime

no

8

no

(n/a)

(n/a)

OIDNodeID

int

no

4

10

0

no

(n/a)

(n/a)

InstanceName

varchar

no

255

no

yes

no

AttributeID

int

no

4

10

0

no

(n/a)

(n/a)

Comment

varchar

no

255

yes

yes

no

MsgID

varchar

no

255

yes

yes

no

SystemType

varchar

no

255

yes

yes

no

Side

varchar

no

255

yes

yes

no

SystemName

varchar

no

255

yes

yes

no

ProcName

varchar

no

255

yes

yes

no

EMSParam1

varchar

no

255

yes

yes

no

EMSParam2

varchar

no

255

yes

yes

no

EMSParam3

varchar

no

255

yes

yes

no

EMSParam4

varchar

no

255

yes

yes

no

EMSParam5

varchar

no

255

yes

yes

no


Fields

Column_name
Column Description
RuleID

Primary key and identity column that identifies the Rule.

ProductID

Product ID.

Class

EMS message Class.

ModifiedTime

Time this record was last updated.

OIDNodeID

NodeID in the OIDNodes table associated with this Rule.

InstanceName

Text string that specifies how the Instance Node name is to be determined from the Listener message content.

AttributeID

AttributeID from the Attributes table associated with this Rule.

Comment

Comment field.

MsgID

EMS Message ID can be used as a criteria to select this Rule for a given Listener message. This field can be NULL or empty if not needed as a criterion. If it is present, it must be a valid SQL expression, e.g., = 0xa102c109.

SystemType

System Type can be used as a criteria to select this Rule for a given Listener message. This field can be NULL or empty if not needed as a criterion. If it is present, it must be a valid SQL expression, e.g., = 5'.

Side

Duplexed side can be used as a criteria to select this Rule for a given Listener message. This field can be NULL or empty if not needed as a criterion. If it is present, it must be a valid SQL expression, e.g., ='A'.

SystemName

System Name can be used as a criteria to select this Rule for a given Listener message. This field can be NULL or empty if not needed as a criterion. If it is present, it must be a valid SQL expression, e.g., Like `%A'.

ProcName

Process name that can be used as a criteria to select this Rule for a given Listener message. This field can be NULL or empty if not needed as a criterion. If it is present, it must be a valid SQL expression, e.g., Like '%Logger%'.

EMSParam1

EMS message parameter 1 that can be used as a criteria to select this Rule for a given Listener message. This field can be NULL or empty if not needed as a criterion. If it is present, it must be a valid SQL expression.

EMSParam2

EMS message parameter 2 that can be used as a criteria to select this Rule for a given Listener message. This field can be NULL or empty if not needed as a criterion. If it is present, it must be a valid SQL expression.

EMSParam3

EMS message parameter 3 that can be used as a criteria to select this Rule for a given Listener message. This field can be NULL or empty if not needed as a criterion. If it is present, it must be a valid SQL expression.

EMSParam4

EMS message parameter 4 that can be used as a criteria to select this Rule for a given Listener message. This field can be NULL or empty if not needed as a criterion. If it is present, it must be a valid SQL expression.

EMSParam5

EMS message parameter 5 that can be used as a criteria to select this Rule for a given Listener message. This field can be NULL or empty if not needed as a criterion. If it is present, it must be a valid SQL expression.


Customers Table

Description

The Customers table stores specific Customer instance names. Initially, this table is empty and is populated as the LGMapper/LGArchiver processes Listener messages and encounters new Customers.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
CustomerID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

CustomerName

varchar

no

50

no

yes

no

Handle

int

no

4

10

0

no

(n/a)

(n/a)

CreationTime

datetime

no

8

no

(n/a)

(n/a)


Fields

Column_name
Column Description
CustomerID

Primary key. Customer ID.

CustomerName

Customer name.

Handle

Unique 32-bit Handle associated with the Customer. The Customer Handle is determined from the CustomerID via the following C++ expression: Handle = 0x40000000 | (CustomerID << 14)

CreationTime

Time this record was created.


InstanceNodes Table

Description

The InstanceNodes table stores the entire known hierarchy of Instance Nodes created by the LGMapper/LGArchiver at run time. These nodes are created by mapping Listener Events via the Rules and OIDNodes information to specific Instance Nodes.

The parent-child relationships are represented in the table by having each record contain a ParentHandle field which contains the Handle of the parent node.

A graphical representation of this table as a tree view can be seen in the Instance Nodes Tree View of the LGCnfg tool.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
Handle (PK)

int

no

4

10

0

no

(n/a)

(n/a)

ParentHandle

int

no

4

10

0

no

(n/a)

(n/a)

IIDAddress

varchar

no

128

no

yes

no

CustomerID

int

no

4

10

0

no

(n/a)

(n/a)

ProductID

int

no

4

10

0

no

(n/a)

(n/a)

NodeName

varchar

no

64

no

yes

no

HyperlinkHandle

int

no

4

10

0

no

(n/a)

(n/a)

NodeID

int

no

4

10

0

no

(n/a)

(n/a)

ModifiedTime

datetime

no

8

no

(n/a)

(n/a)


Fields

Column_name
Column Description
Handle

Primary key, 32-bit Handle that uniquely defines this node. Handle bits are assigned in a particular manner as described in How Handles Are Used.

ParentHandle

The Handle of the parent node.

IIDAddress

An Instance ID Address string that defines the instance node's place in the object hierarchy. This IIDAddress is in the form 1.2.4.13 and is unique for all Instance Nodes. The Root node has IIDAddress 1. First-level child nodes have IIDAddresses 1.1, 1.2, etc. and so on.

CustomerID

Customer ID.

ProductID

Product ID.

NodeName

Node name.

HyperlinkHandle

For Hyperlink nodes, this value is the Handle of the real node to which it refers. For real nodes, this value is zero.

NodeID

The NodeID in the [OIDNodes] table to which this node refers to.

ModifiedTime

Time this record was last updated.


Uptime Table

Description

The Uptime table indicates the times during which the LGMapper/LGArchiver Server is processing Listener data. The table consists of pairings of Time and State values.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
Time (PK)

datetime

no

8

no

(n/a)

(n/a)

State

bit

no

1

no

(n/a)

(n/a)


Fields

Column_name
Column Description
Time

Time the LGMapper/LGArchiver started or stopped processing Listener messages.

State

1 - indicates the LGMapper/LGArchiver started processing data.

0 - indicates the LGMapper/LGArchiver stopped processing data.


Alarms Table

Description

The Alarms table is the primary table for storing Alarm object information. A record in the Alarms table represents an Alarm object.

Records in the associated Events table make up the Events or state transitions for the Alarm object.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
AlarmID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

RealAlarm

bit

no

1

no

(n/a)

(n/a)

ObjectName

varchar

no

255

no

yes

no

OwnerHandle

int

no

4

10

0

no

(n/a)

(n/a)

IIDAddress

varchar

no

128

no

yes

no

CustomerID

int

no

4

10

0

no

(n/a)

(n/a)

ProductID

int

no

4

10

0

no

(n/a)

(n/a)

Excluded

bit

no

1

no

(n/a)

(n/a)

Active

bit

no

1

no

(n/a)

(n/a)

ApplicationError

bit

no

1

no

(n/a)

(n/a)

State

int

no

4

10

0

no

(n/a)

(n/a)

Assigned

int

no

4

10

0

no

(n/a)

(n/a)

AssignedBy

varchar

no

64

yes

yes

no

AssignedTo

varchar

no

64

yes

yes

no

TicketID

varchar

no

32

yes

yes

no

CreationTime

datetime

no

8

no

(n/a)

(n/a)

ReceivedTime

datetime

no

8

no

(n/a)

(n/a)

CurrentTime

datetime

no

8

no

(n/a)

(n/a)

LastEventID

int

no

4

10

0

no

(n/a)

(n/a)

EventRepeatCount

int

no

4

10

0

no

(n/a)

(n/a)

EventCount

int

no

4

10

0

no

(n/a)

(n/a)

AttributeID

int

no

4

10

0

no

(n/a)

(n/a)

AttributeName

varchar

no

50

yes

yes

no

CategoryName

varchar

no

32

yes

yes

no

Class

int

no

4

10

0

no

(n/a)

(n/a)

DMPID

int

no

4

10

0

no

(n/a)

(n/a)

MsgID

int

no

4

10

0

no

(n/a)

(n/a)

ProcessName

varchar

no

16

yes

yes

no

SystemName

varchar

no

32

yes

yes

no

Side

char

no

1

yes

yes

yes

SingleState

bit

no

1

no

(n/a)

(n/a)

TrapSeverity

int

no

4

10

0

no

(n/a)

(n/a)

SystemType

int

no

4

10

0

no

(n/a)

(n/a)


Fields

Column_name
Column Description
AlarmID

Primary key, value that uniquely identifies the Alarm object.

RealAlarm

A flag indicating whether the Alarm object is a "real" Alarm, meaning it was created as a result of a Listener down Event.

This table also stores Listener Base Record information that merely indicate that an object is in an up state. These are not considered real Alarms and, thus, have a value of 0 for this field.

ObjectName

The Listener ObjectName associated with the Alarm.

OwnerHandle

The Handle in the InstanceNodes table which identifies the Instance Node associated with this Alarm.

IIDAddress

IIDAddress in the InstanceNodes table corresponding to the OwnerHandle of the Instance Node associated with this Alarm.

CustomerID

Customer ID.

ProductID

Product ID.

Excluded

1 - Alarm is Excluded.

0 - Alarm is not Excluded.

Active

1- Alarm is Active.

0 - Alarm is Inactive.

An Active Alarm is an open Alarm. It is an Alarm that is not in its terminal state. See Alarm State Transition Diagram for a State transition diagram for an Alarm object.

ApplicationError

1- Alarm is an Application Error.

0 - Alarm is not an Application Error.

State

State value of the Alarm. The range of State values are shown in Alarm State Transition Diagram.

Assigned

Assignment Status value of the Alarm. The range of Assigned values are shown in Alarm State Transition Diagram.

AssignedBy

The user name of the person who assigned, cleared, excluded, deleted an Alarm.

AssignedTo

Text that a user can type in to indicate a person or group responsible for an Alarm.

TicketID

Text field that can be used to associate an Alarm with a trouble ticket reporting system.

CreationTime

Time the Alarm event condition was raised.

ReceivedTime

Time the database Alarm object was created.

CurrentTime

Time of the last Event record for this Alarm object.

LastEventID

EventID from the Events table of the last Event for this Alarm object.

EventRepeatCount

The number of times a duplicate Event was received for this Alarm object.

The LGMapper/LGArchiver implement a form of Event suppression for Alarm objects to control the number of Events stored for an Alarm object.

When an Alarm is in a particular state as shown in Alarm State Transition Diagram, if repeated Events that do not involve a state transition are received, they are inserted only up to a particular threshold value.

The threshold value (default value = 5) is set by the LGMapperCnfg or LGArchiverCnfg programs. Once the number of repeat Events exceed this threshold, they begin to be overwritten to cap the amount of data stored for any particular Alarm.

This field stores the Event repeat count for the current Alarm state.

EventCount

The total number of Events received for this Alarm.

AttributeID

The AttributeID from the Attributes table associated with this Alarm.

AttributeName

The AttributeName from the Attributes table.

CategoryName

Category Name from the EMS message.

Class

Class from the EMS message.

DMPID

DMP ID from the EMS message.

MsgID

EMS Message ID.

ProcessName

Name of the process that generated the Alarm/Event.

SystemName

System name of the machine that generated the Alarm/Event.

Side

Duplexed side (typically 'A' or 'B') that generated the Alarm/Event.

SingleState

1 - Alarm is a single-state object.

0 - Alarm is not a single-state object.

Some Alarm objects are defined as single-state Alarms. This means that a Clear Event (see Alarm State Transition Diagram) will never be received for it. An AlarmTracker user must clear this Alarm manually to close it.

TrapSeverity

SNMP Trap Severity from the EMS message.

SystemType

System Type from the EMS message.


Events Table

Description

The Events table is joined to the Alarms by the AlarmID field and represents all Events received for a particular Alarm object. This table represents all the state transitions of an Alarm object as described in Alarm State Transition Diagram.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
EventID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

AlarmID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

MsgID

int

no

4

10

0

no

(n/a)

(n/a)

MsgType

int

no

4

10

0

no

(n/a)

(n/a)

State

int

no

4

10

0

yes

(n/a)

(n/a)

Assigned

int

no

4

10

0

yes

(n/a)

(n/a)

Time

datetime

no

8

no

(n/a)

(n/a)

ReceivedTime

datetime

no

8

no

(n/a)

(n/a)

MsgText

varchar

no

255

yes

yes

no

OutcomeText

varchar

no

255

yes

yes

no

AssignedBy

varchar

no

64

yes

yes

no


Fields

Column_name
Column Description
EventID

Sequential EventID for an Alarm object. The initial raise Event for the Alarm will always be EventID = 1.

Note that due to Event repeat count suppression and total Event count suppression, the sequence of Events will not always be consecutive, but they will always be in order.

AlarmID

AlarmID from the Alarms table.

MsgID

EMS Message ID for the Event.

MsgType

Message type. The following message types are defined in

Mnemonic -- Value -- Description order:

mtMessage -- 1 -- Customer-generated Listener message

mtHeartbeat -- 2-- Listener Heartbeat message. (Does not appear in Events table).

mtLastBaseRecord -- 3 -- Listener Last Base Record message. (Does not appear in Events table).

mtWorkingOn -- 4 -- User action message. Indicates a user has assigned or unassigned an Alarm.

mtExclude -- 5 -- User action message. Indicates a user has excluded or unexcluded an Alarm.

mtExcludeNode -- 6 -- User action message. Indicates a user has excluded or unexcluded a Node.

mtClear -- 7 -- User action message. Indicates that a user has cleared an Alarm.

mtDelete -- 8 -- User action message. Indicates that a user has deleted an object.

State

State value of the Event. The range of State values are shown in Alarm State Transition Diagram.

Assigned

Assignment Status value of the Event. The range of Assigned values are shown in Alarm State Transition Diagram.

Time

Event time. For a customer-generated Event, this is the time of the Event at the Customer site adjusted to be in the time zone of the LGMapper/LGArchiver.

For an AlarmTracker user Event, this is the time the user Event was generated.

ReceivedTime

The time the Event was received at the LGMapper/LGArchiver.

MsgText

Message text.

OutcomeText

Notes entered by AlarmTracker user.

AssignedBy

For a user action message. Indicates the user name of the person who initiated the action.


Simples Table

Description

The Simples table stores the set of Simple Events sent by Listener. Simple Events are stateless objects and are considered to be less important than Alarm objects so they are maintained in a separate table.


Note Listener purges Simple Events from its in-memory objects and the LGMapper Server also purges Simple Events to mirror Listener's actions. LGArchiver, on the other hand, does not purge Simple Events based on Listener commands. Instead, Simple Events are purged from the LGArchiver database based on the amount of time history is saved in the database. This parameter is configurable from the LGArchiverCnfg tool.


Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
AlarmID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

ObjectName

varchar

no

255

no

yes

no

OwnerHandle

int

no

4

10

0

no

(n/a)

(n/a)

CustomerID

int

no

4

10

0

no

(n/a)

(n/a)

ProductID

int

no

4

10

0

no

(n/a)

(n/a)

Excluded

bit

no

1

no

(n/a)

(n/a)

State

int

no

4

10

0

no

(n/a)

(n/a)

CreationTime

datetime

no

8

no

(n/a)

(n/a)

ReceivedTime

datetime

no

8

no

(n/a)

(n/a)

CategoryName

varchar

no

32

no

yes

no

DMPID

int

no

4

10

0

no

(n/a)

(n/a)

MsgID

int

no

4

10

0

no

(n/a)

(n/a)

ProcessName

varchar

no

16

yes

yes

no

SystemName

varchar

no

32

yes

yes

no

Side

char

no

1

yes

yes

yes

TrapSeverity

int

no

4

10

0

no

(n/a)

(n/a)

SystemType

int

no

4

10

0

no

(n/a)

(n/a)

MsgText

varchar

no

255

no

yes

no


Fields

Column_name
Column Description
AlarmID

Primary key, value that uniquely identifies the Alarm object.

ObjectName

The Listener ObjectName associated with the Alarm.

OwnerHandle

The Handle in the InstanceNodes table which identifies the Instance Node associated with this Alarm.

CustomerID

Customer ID.

ProductID

Product ID.

Excluded

1 - Alarm is Excluded

0 - Alarm is not Excluded.

State

State value of the Alarm. The range of State values are shown in Alarm State Transition Diagram.

CreationTime

Time the Alarm event condition was raised.

ReceivedTime

Time the database Alarm object was created.

CategoryName

Category Name from the EMS message.

Class

Class from the EMS message.

DMPID

DMP ID from the EMS message.

MsgID

EMS Message ID.

ProcessName

Name of the process that generated the Alarm/Event.

SystemName

System name of the machine that generated the Alarm/Event.

Side

Duplexed side (typically 'A' or 'B') that generated the Alarm/Event.

TrapSeverity

SNMP Trap Severity from the EMS message.

SystemType

System Type from the EMS message.

MsgText

Message text.


ObjectState Table

Description

The ObjectState table is used by LGMapper only and maintains a map of Listener ObjectName to the particular Alarm object (AlarmID) currently associated with it. This table allows the AlarmTracker user to more easily query the current object state in its Object State View.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
ObjectName (PK)

varchar

no

255

no

yes

no

CustomerID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

ProductID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

AlarmID

int

no

4

10

0

no

(n/a)

(n/a)


Fields

Column_name
Column Description
ObjectName

The Listener ObjectName associated with the Alarm.

CustomerID

Customer ID.

ProductID

Product ID.

AlarmID

Primary key, value that uniquely identifies the Alarm object.


AlarmsSummaryHour Table

Description

The AlarmsSummaryHour table stores summary counts and statistics across all Customers. This table is updated hourly. A thirty (30) day history of hourly records are maintained.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
CustomerID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

Time (PK)

datetime

no

8

no

(n/a)

(n/a)

NewAlarmCount

int

no

4

10

0

no

(n/a)

(n/a)

ClosedAlarmCount

int

no

4

10

0

no

(n/a)

(n/a)

UnassignedAlarms

int

no

4

10

0

no

(n/a)

(n/a)

AssignedAlarms

int

no

4

10

0

no

(n/a)

(n/a)

ExcludedAlarms

int

no

4

10

0

no

(n/a)

(n/a)

NewAppErrCount

int

no

4

10

0

no

(n/a)

(n/a)

ClosedAppErrCount int

no

4

10

0

no

(n/a)

(n/a)

 
UnassignedAppErrs int

no

4

10

0

no

(n/a)

(n/a)

 
AssignedAppErrs

int

no

4

10

0

no

(n/a)

(n/a)

ExcludedAppErrs

int

no

4

10

0

no

(n/a)

(n/a)

AlarmEventCount

int

no

4

10

0

no

(n/a)

(n/a)

AppErrCount

int

no

4

10

0

no

(n/a)

(n/a)

SimpleCount

int

no

4

10

0

no

(n/a)

(n/a)


Fields

Column_name
Column Description
CustomerID

Customer ID.

Time

Time of update.

NewAlarmCount

The number of new Alarms that were raised during this hour.

ClosedAlarmCount

The number of Alarms that were closed (either from a device-generated Clear or a user-generated Clear Event).

UnassignedAlarms

The number of unassigned Alarm objects that existed at the time of the update.

AssignedAlarms

The number of open and assigned Alarm objects that existed at the time of the update.

ExcludedAlarms

The number of open and excluded Alarm objects that existed at the time of the update.

NewAppErrCount

The number of new Application Error objects that were created during this hour.

ClosedAppErrCount

The number of Application Error objects that were closed by user-generated Clear Events.

UnassignedAppErrs

The number of unassigned Application Error objects that existed at the time of the update.

AssignedAppErrs

The number of open and assigned Application Error objects that existed at the time of the update.

ExcludedAppErrs

The number of open and excluded Application Error objects that existed at the time of the update.

AlarmEventCount

The total number of Alarm object Events processed during the hour. This count does not include Simple Events or Application Error Events.

AppErrCount

The total number of Application Error Events processed during the hour.

SimpleCount

The total number of Simple Events processed during the hour.


AlarmsSummaryDay Table

Description

The AlarmsSummaryDay stores daily summary counts and statistics generated from the AlarmsSummaryHour table across all Customers. This table is updated daily, it is not purged.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullIn
Source
CustomerID (PK)

int

no

4

10

0

no

(n/a)

(n/a)

Time (PK)

datetime

no

8

no

(n/a)

(n/a)

Samples

int

no

4

10

0

no

(n/a)

(n/a)

NewAlarmCount

int

no

4

10

0

no

(n/a)

(n/a)

ClosedAlarmCount

int

no

4

10

0

no

(n/a)

(n/a)

UnassignedAlarmsAvg float

no

8

53

NULL

no

(n/a)

(n/a)

 
AssignedAlarmsAvg float

no

8

53

NULL

no

(n/a)

(n/a)

 
ExcludedAlarmsAvg float

no

8

53

NULL

no

(n/a)

(n/a)

 
NewAppErrCount

int

no

4

10

0

no

(n/a)

(n/a)

ClosedAppErrCount int

no

4

10

0

no

(n/a)

(n/a)

 
UnassignedAppErrsAvg float

no

8

53

NULL

no

(n/a)

(n/a)

 
AssignedAppErrsAvg float

no

8

53

NULL

no

(n/a)

(n/a)

 
ExcludedAppErrsAvg float

no

8

53

NULL

no

(n/a)

(n/a)

 
AlarmEventCount

int

no

4

10

0

no

(n/a)

(n/a)

AppErrCount

int

no

4

10

0

no

(n/a)

(n/a)

SimpleCount

int

no

4

10

0

no

(n/a)

(n/a)


Fields

Column_name
Column Description
CustomerID

Customer ID.

Time

Time of update.

Samples

The number of samples from the AlarmsSummaryHour table that rolled up into this entry.

If the LGMapper/LGArchiver is running continuously over the 24-hour period, this value will be 24.

If the Server is down for a period, this value may be less than 24.

NewAlarmCount

The number of new Alarms that were raised during this day.

ClosedAlarmCount

The number of Alarms that were closed (either from a device-generated Clear or a user-generated Clear Event).

UnassignedAlarmsAvg

The average number of unassigned Alarm objects over the hourly samples for that day.

AssignedAlarmsAvg

The average number of open and assigned Alarm objects over the hourly samples for that day.

ExcludedAlarmsAvg

The average number of open and excluded Alarm objects over the hourly samples for that day.

NewAppErrCount

The number of new Application Error objects that were created during this day.

ClosedAppErrCount

The number of Application Error objects closed by user-generated Clear Events.

UnassignedAppErrsAvg

The average number of unassigned Application Error objects over the hourly samples for that day.

AssignedAppErrsAvg

The average number of open and assigned Application Error objects over the hourly samples for that day.

ExcludedAppErrsAvg

The average number of open and excluded Application Error objects over the hourly samples for that day.

AlarmEventCount

The total number of Alarm object Events processed during the day. This count does not include Simple Events or Application Error Events.

AppErrCount

The total number of Application Error Events processed during the day.

SimpleCount

The total number of Simple Events processed during the day.


The five (5) count fields (NewAlarmCount, ClosedAlarmCount, AlarmEventCount, AppErrCount and SimpleCount) are actually pro-rated values over a 24 hour period based on the number of Samples recorded. The value stored in one of these fields represents the sum of the hourly count values times the 24 hour pro-rated factor.

e.g.: NewAlarmCount =

(24 / Samples) * SUM (AlarmsSummaryHour.NewAlarmCount)


Note If Samples = 24, the pro-rated factor is one.


Filters Table

Description

The Filters table stores the server-side filter settings for customer filtering and product filtering.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
FilterField

int

no

4

10

0

no

(n/a)

(n/a)

Criterion

int

no

4

10

0

no

(n/a)

(n/a)

ModifiedTime

datetime

no

8

no

(n/a)

(n/a)


Fields

Column_name
Column Description
FilterField

A value of 1 indicates that this is a Customer filter.

A value of 2 indicates that this is a Product filter.

Criterion

If FilterField = 1, this value is the CustomerID to be filtered out.

If FilterField = 2, this value is the ProductID to be filtered out.

ModifiedTime

Time this record was last updated.


FiltersProductSpecific Table

Description

The FiltersProductSpecific table stores the server-side filter settings that are product specific. These include Class-level and MsgID-level filters.

Column_name
Type
Computed
Length
Prec
Scale
Nullable
Trim
Trailing
Blanks
FixedLen
NullInSource
ProductID

int

no

4

10

0

no

(n/a)

(n/a)

FilterField

int

no

4

10

0

no

(n/a)

(n/a)

Criterion

int

no

4

10

0

no

(n/a)

(n/a)

ModifiedTime

datetime

no

8

no

(n/a)

(n/a)


Fields

Column_name
Column Description
ProductID

Product ID.

FilterField

A value of 3 indicates that this is a Class filter.

A value of 4 indicates that this is a MsgID filter.

Criterion

If FilterField = 3, this value is the Class to be filtered out.

If FilterField = 4, this value is the MsgID to be filtered out.

ModifiedTime

Time this record was last updated.


How Handles Are Used

A Handle is a 32-bit value that uniquely identifies a Node in the object hierarchy. Although there are no formal restrictions on the value of the Handle (other than it be unique across all Nodes), we have decided to use certain bits to define characteristics about the Node. This section describes how those bit fields are used.

The following table shows the layout of the 32 bits used in the Handle.

Bits
31

30

29

...

24

23

...

14

13

...

0

   

ProductID

Customer ID

Object ID


The following table describes the use of the 32 bits used in the Handle

Bits
Description
0-13

Used to specify an arbitrary Object ID. This allows for 214-1 = 16,383 objects for each ProductID.

14-23

Reserved for a Customer ID. This allows for 210=11,024 customers. This Customer ID matches that used in the Alarms Database. By convention, the Object ID for the Customer Node is 0.

24-29

Reserved for a ProductID. This allows for 26-1 = 63 ProductIDs. This ProductID matches that used in the Alarms Database. By convention, the ProductID for the Customer Node is 0. ProductID 1 is assigned to ICM.

30

Reserved. This bit will always be set by applications using these Handles. The root node of a hierarchy will have only this bit set.

31

The user bit. Use to create new Nodes in your Client code. That is, you are free to create new LGNode objects and set that bit and not be concerned that the Server may create Node objects that clash with any that you create.


By convention the Root Node labeled as "Customers" has a Handle = 0x40000000.

As an example of some other Handles, consider a customer with Customer ID = 38. The Customer Node for this customer is 0x40098000 (0100 0011 0000 1001 1000 0000 0000 0000). The Object IDs and ProductIDs will be different for all other child Nodes, but bits 14-23 will be the same, and bit 30 will always be set.

The following macros in Grid2Common.h may be useful when manipulating Handles.

#define DP_CUSTOMERSHANDLE 0x40000000 // Customers RootNode

#define DPM_DPRESERVED 0xff000000

#define DPM_PRODUCTVALUES 0x3f000000 // ProductIDs

#define DPM_CUSTVALUES 0x00ffc000 // CustomerIDs

#define DPM_OBJECTVALUES 0x00003fff // Object values

#define CUSTIDFROMHANDLE(arg) (((arg) & DPM_CUSTVALUES) >> 14)

#define PRODUCTIDFROMHANDLE(arg) ((arg) & DPM_PRODUCTVALUES) >> 24)

#define CUSTHANDLEFROMHANDLE(arg) ((arg) & (DP_CUSTOMERSHANDLE | DPM_CUSTVALUES))

#define UNMAPPEDOBJECTSFROMHANDLE(arg) ((arg) & (DP_CUSTOMERSHANDLE | DPM_CUSTVALUES)) + 1)

#define ISCUSTOMERHANDLE(arg) \
((((arg) == ((arg) & (DP_CUSTOMERSHANDLE | DPM_CUSTVALUES))) && \
((arg) & DPM_CUSTVALUES)) ? TRUE : FALSE)

#define ISPRODUCTHANDLE(arg) \
((((arg) == ((arg) & (DP_CUSTOMERSHANDLE | DPM_PRODUCTVALUES | DPM_CUSTVALUES))) \
&& ((arg) & DPM_PRODUCTVALUES)) ? TRUE : FALSE)

#define MAKELGHANDLE(prodID, custID, objID) \
(DP_CUSTOMERSHANDLE | ((prodID) << 24) | ((custID) << 14) | (objID))

Alarm State Transition Diagram

Figure A-2 indicates the possible state transition values for an Alarm object. It shows how an Alarm object is created and the different state transitions that it can make.

Figure A-2 Alarm State Transition Model

Red (solid) transition arrows indicate state changes as a result of customer-generated Events.

Blue (dashed) transition arrows indicate state changes as a result of customer support-generated Events (such as Clear, Assign, Exclude).

An Alarm is created when a Listener Raise Event is received at the LGMapper. The initial state of an Alarm object is Down and Unassigned. Figure A-2, shows two mnemonics that indicate the State (corresponding to the Alarms.State and Events.State field values) of the Alarms and its Assignment Status (corresponding to the Alarms.Assigned and Events.Assigned field value).

The following mnemonics for the State values are defined:

svUp
= 0,
svApplicationError
= 1,
svPartialImpaired
= 2,
svDown
= 3,

The following mnemonics for the Assigned values are defined:

asNoAlarms

= 0

asUnused

=1

asExcluded

=2

asAssigned

=3

asAssignedTimeout

=4

asUnassignedAppErr

=5

asUnassigned

=6