Ingres Database

Related topics
Product name
Publisher page
  • [Ingres|Ingres]
Category
Relational Database Management Systems
Release
TKU 2011-Sep-1
More information
Publisher link

Product Description

Ingres Database is a commercially supported, open-source relational database management system.

Known Versions

The history of Ingres is complicated. Full details can be obtained here and here, a summary is below

Original Ingres Releases

The known version numbers for the original Ingres releases are as follows

  • 2.0
  • 2.2
  • 2.5
  • 2.6
  • 3.0.3
  • 5
  • 6.0
  • 6.2
  • 6.3
  • 6.4

OpenIngres

After version 6.4 the product was renamed OpenIngres and numbering started from 1.0, but note that OpenIngres 1.0 is a superior product to Ingres 6.4.

The known version numbers for OpenIngres are

  • 1.0
  • 1.1
  • 1.2
  • 2.0 (also known as Ingres II)
  • 2.5 (also known as Ingres II)
  • 2.6 (also known as Ingres II)

CA Ingres

CA has released one version on Ingres:

  • r3

Ingres Corporation

Ingres Corporation has released three versions of Ingres:

  • 2006 (known as 9.0.4 internally)
  • 2006 R2 (known as 9.1.0 internally)
  • 9.2 (also known as 2006 R3)

Software Pattern Summary

Product ComponentOS TypeVersioningPattern Depth
DBMSServerWindows, UNIXPackage, FileInstance-based
RecoveryServerWindows, UNIXPackage, FileInstance-based
NameServerWindows, UNIXPackage, FileInstance-based
CommunicationsServerWindows, UNIXPackage, FileInstance-based
DataAccessServerWindows, UNIXPackage, FileInstance-based
BridgeServerWindows, UNIXPackage, FileInstance-based
StarServerWindows, UNIXPackage, FileInstance-based
ArchiverWindows, UNIXPackage, FileInstance-based
VisualDBARemoteCommandServerWindows, UNIXPackage, FileInstance-based

Platforms Supported by the Pattern

The patterns support both the Windows and UNIX platforms.

Identification

Software Instance Triggers

PatternTrigger NodeAttributeConditionArgument
DBMSServerDiscoveredProcesscmdmatches

regex '(?i)\bingres.*\biidbms(?:\.exe)?$'

argsmatchesregex '(?i)dbms'
RecoveryServerDiscoveredProcesscmdmatches

regex '(?i)\bingres.*\biidbms(?:\.exe)?$'

argsmatchesregex '(?i)dmfrcp'
or
cmdmatches

regex '(?i)\bingres.*\bdmfrcp(?:\.exe)?$'

NameServerDiscoveredProcesscmdmatches

regex '(?i)\bingres.*\biigcn(?:\.exe)?$'

CommunicationsServerDiscoveredProcesscmdmatches

regex '(?i)\bingres.*\biigcc(?:\.exe)?$'

DataAccessServerDiscoveredProcesscmdmatches

regex '(?i)\bingres.*\biigcd(?:\.exe)?$'

BridgeServerDiscoveredProcesscmdmatches

regex '(?i)\bingres.*\biigcb(?:\.exe)?$'

StarServerDiscoveredProcesscmdmatches

regex '(?i)\bingres.*\biistar(?:\.exe)?$'

ArchiverDiscoveredProcesscmdmatches

regex '(?i)\bingres.*\bdmfacp(?:\.exe)?$'

VisualDBARemoteCommandServerDiscoveredProcesscmdmatches

regex '(?i)\bingres.*\brmcmd(?:\.exe)?$'

Software Instance Type Attributes Created

The patterns in this module will set the following attributes:

Pattern NameSI Type
DBMSServerIngres Database Server
RecoveryServerIngres Recovery Server
NameServerIngres Name Server
CommunicationsServerIngres Net Communications Server
DataAccessServerIngres Data Access Server
BridgeServerIngres Bridge Server
StarServerIngres Star Server
ArchiverIngres Archiver
VisualDBARemoteCommandServerIngres Visual DBA Remote Command Server

Simple Identification Mappings

The following components/processes are identified using the combination of pattern definitions and simple identity mappings which map other known (but deemed less important in terms of application modeling) processes.

NameCommandArguments
Ingres Archiver Process

regex '(?i)\bingres.*\bdmfacp(?:\.exe)?$'

Ingres Net Communications Server

regex '(?i)\bingres.*\biigcc(?:\.exe)?$'

Ingres Data Access Server (DAS)

regex '(?i)\bingres.*\biigcd(?:\.exe)?$'

Ingres Name Server

regex '(?i)\bingres.*\biigcn(?:\.exe)?$'

Ingres Remote Command Process

regex '(?i)\bingres.*\brmcmd(?:\.exe)?$'

Ingres Server Process

regex '(?i)\bingres.*\bservproc(?:\.exe)?$'

Ingres Recovery Server

regex '(?i)\bingres.*\bdmfrcp(?:\.exe)?$'

Ingres Bridge Server

regex '(?i)\bingres.*\biigcb(?:\.exe)?$'

Ingres ICE Server

regex '(?i)\bingres.*\bicesvr(?:\.exe)?$'

Ingres JDBC Server

regex '(?i)\bingres.*\biijdbc(?:\.exe)?$'

Ingres Visual Manager

regex '(?i)\bingres.*\bivm(?:\.exe)?$'

Ingres Distributed Database Server Process

regex '(?i)\bingres.*\biistar(?:\.exe)?$'

Ingres Export Assistant

regex '(?i)\bingres.*\biea(?:\.exe)?$'

Ingres Import Assistant

regex '(?i)\bingres.*\biia(?:\.exe)?$'

Ingres Journal Analyser

regex '(?i)\bingres.*\bija(?:\.exe)?$'

Ingres Network Utility

regex '(?i)\bingres.*\bingnet(?:\.exe)?$'

Ingres Performance Monitor Wizard

regex '(?i)\bingres.*\bperfwiz(?:\.exe)?$'

Ingres Configuration Manager

regex '(?i)\bingres.*\bvcbf(?:\.exe)?$'

Ingres Visual Configuration Differences Analyzer

regex '(?i)\bingres.*\bvcda(?:\.exe)?$'

Ingres Visual Database Objects Differences Analyzer

regex '(?i)\bingres.*\bvdda(?:\.exe)?$'

Ingres Process

regex '(?i)\bingres.*\bvdba(?:\.exe)?$'

Ingres Process

regex '(?i)\bingres.*\bvdbamon(?:\.exe)?$'

Ingres Process

regex '(?i)\bingres.*\bvdbasql(?:\.exe)?$'

Ingres Process

regex '(?i)\bingres.*\bwinstart(?:\.exe)?$'

Ingres Disc I/O Process

regex '(?i)\bingres.*\biislave$'

Ingres Database DBMS Server

regex '(?i)\bingres.*\biidbms(?:\.exe)?$'

regex '(?i)dbms'
Ingres Recovery Server

regex '(?i)\bingres.*\biidbms(?:\.exe)?$'

regex '(?i)dmfrcp'

Versioning

Version information for the product is currently collected using the Package and File Versioning methods.

The methods are tried in an order of precedence based on likely success and/or accuracy of the information that can be gathered. Once a result is obtained, the methods lower in precedence are not attempted. In order of precedence the methods are:

Package Versioning

Foundation executes a search for the installed packages and tries to match them against the following regular expression:

  • (?i)^Ingres

When it finds a match, it extracts the version for Ingres Database from the package information. Should it match on more than one package, the version information is extracted from the package with the highest version number.

File Versioning

If package versioning is unsuccessful, the patterns try to get versioning information from a file. This is only attempted if the trigger process is fully qualified. File versioning is a two stage process:

To obtain the base path, the trigger process is parsed with regular expression (?i)^(.*[/\\])bin

To obtain the version, the file $base_path/version.rel is parsed with regular expression ^\S\S (\d+(?:\.\d+)*)

Obtaining Product version

Once the full version is obtained from one of the above techniques, the pattens goes on to extract the product version from the full version.

Following is the regular expression used to extract product version from full version :

^(\d+(?:\.\d+)?) .

If the pattern fails to extract the product version, then the product version is set to the full version that was obtained by the pattern

Application Model Produced by Software Pattern

Pattern Trigger

The DBMSServer pattern triggers on a iidbms or iidbms.exe process with 'ingres' in its path and 'dbms' in its arguments.

The RecoveryServer pattern triggers on either a iidbms or iidbms.exe process with 'ingres' in its path and 'dmfrcp' in its arguments or a dmfrcp or dmfrcp.exe process with 'ingres' in its path.

The NameServer pattern triggers on a iigcn or iigcn.exe process with 'ingres' in its path.

The CommunicationsServer pattern triggers on a iigcc or iigcc.exe process with 'ingres' in its path.

The DataAccessServer pattern triggers on a iigcd or iigcd.exe process with 'ingres' in its path.

The BridgeServer pattern triggers on a iigcb or iigcb.exe process with 'ingres' in its path.

The StarServer pattern triggers on a iistar or iistar.exe process with 'ingres' in its path.

The Archiver pattern triggers on a dmfacp or dmfacp.exe process with 'ingres' in its path.

The VisualDBARemoteCommandServer pattern triggers on a rmcmd or rmcmd.exe process with 'ingres' in its path.

SI Depth

The DBMSServer pattern creates a grouped instance-based Software Instance, its key being based on either instance (if available), type (i.e. Ingres Database DBMS Server) and host key or command line, type and host key.

The RecoveryServer pattern creates a grouped instance-based Software Instance, its key being based on either instance (if available), type (i.e. Ingres Recovery Server) and host key or command line, type and host key.

The NameServer pattern creates an instance-based Software Instance, its key being based on either instance (if available), type (i.e. Ingres Name Server) and host key or command line, type and host key.

The CommunicationsServer pattern creates a grouped instance-based Software Instance, its key being based on either instance (if available), type (i.e. Ingres Net Communications Server) and host key or command line, type and host key.

The DataAccessServer pattern creates a grouped instance-based Software Instance, its key being based on either instance (if available), type (i.e. Ingres Data Access Server) and host key or command line, type and host key.

The BridgeServer pattern creates an instance-based Software Instance, its key being based on either instance (if available), type (i.e. Ingres Bridge Server) and host key or command line, type and host key.

The StarServer pattern creates an instance-based Software Instance, its key being based on either instance (if available), type (i.e. Ingres Star Server) and host key or command line, type and host key.

The Archiver pattern creates an instance-based Software Instance, its key being based on either instance (if available), type (i.e. Ingres Archiver) and host key or command line, type and host key.

The VisualDBARemoteCommandServer pattern creates a grouped instance-based Software Instance, its key being based on instance, type (i.e. Ingres Visual DBA Remote Command Server) and host key.

Additional Attributes

Instance

The pattern attempts to discover the instance of the database. There are two methods it uses

First, it tries to obtain the instance information from the trigger process argument. It parses the trigger process argument using the following regular expression: ' (\S\S)$' (disregard quotes)

If the pattern cannot obtain the instance information from the trigger process argument it attempts to obtain the instance information from a file. It parses file $base_path/version.rel using regular expression '^(\S\S) ' (disregard quotes). Please refer to the file versioning section for details of how $base_path is obtained

Port number

The pattern attempts to identify a port number for the Communications Server component only. The port number is derived from the Ingres instance.

Given an Ingres instance of 'II', 21064 will be returned as the port number.

The algorithm used is as follows:

(1 << 14) + ((ord(instance[0]) & 31) << 9) + ((ord(instance[1]) & 63) << 3)

The ASCII character code of the first letter in the Ingres instance name is 73; in the case of 'II', the second letter is exactly the same so ord(instance[0]) and ord(instance[1]) are replaced with 73 and 73 respectively:

(1 << 14) + ((73 & 31) << 9) + ((73 & 63) << 3)

1 << 14 or 2 to the power of 14 is 16384:

16384 + ((73 & 31) << 9) + ((73 & 63) << 3)

73 in binary is 1001001. 31 in binary is 11111. Added together:

1001001 = 73
0001111 = 31
-------
0001001 = 9

73 in binary is 1001001. 63 in binary is 11111. Added together:

1001001 = 73
0011111 = 63
-------
0001001 = 9

16384 + (9 << 9) + (9 << 3)

9 << 9 or 1001 shifted 9 places to the left is 1001000000000 in binary or 4608 in decimal:

16384 + 4608 + (9 << 3)

9 << 3 or 1001 shifted 3 places to the left is 1001000 in binary or 72 in decimal:

16384 + 4608 + 72

16384 + 4608 + 72 = 21064

Relationship Creation

A peer to peer relationship is created between a Database Server SI and a Recovery Server SI that have the same instance

A client server relationship is created between a Database Server SI (the server) and a Name Server SI (the client) that have the same instance name

A client server relationship is created between a Name Server SI (the server) and a Net Communications server (the client) that have the same instance name.

Subject Matter Expertise

Subject Matter Expert input will be welcome on any other potential approaches not discussed to improving product versioning coverage and depth of IngresDatabase.

Testing

The patterns and simple identities have been tested against local Windows and Linux installations.

Information Sources

Open Issues

There are no known open issues with this pattern.


Created by: [Rebecca Shalfield|User Rebecca Shalfield] 16 Jan 2009
Updated by: [Nikola Vukovljak|User Nikola Vukovljak] 14 Sep 2011
Reviewed by: [Chris Blake|User Chris Blake] 26 Jan 2009

Was this page helpful? Yes No Submitting... Thank you

Comments