Ingres Database
- 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 Component | OS Type | Versioning | Pattern Depth |
---|---|---|---|
DBMSServer | Windows, UNIX | Package, File | Instance-based |
RecoveryServer | Windows, UNIX | Package, File | Instance-based |
NameServer | Windows, UNIX | Package, File | Instance-based |
CommunicationsServer | Windows, UNIX | Package, File | Instance-based |
DataAccessServer | Windows, UNIX | Package, File | Instance-based |
BridgeServer | Windows, UNIX | Package, File | Instance-based |
StarServer | Windows, UNIX | Package, File | Instance-based |
Archiver | Windows, UNIX | Package, File | Instance-based |
VisualDBARemoteCommandServer | Windows, UNIX | Package, File | Instance-based |
Platforms Supported by the Pattern
The patterns support both the Windows and UNIX platforms.
Identification
Software Instance Triggers
Pattern | Trigger Node | Attribute | Condition | Argument |
---|---|---|---|---|
DBMSServer | DiscoveredProcess | cmd | matches | regex '(?i)\bingres.*\biidbms(?:\.exe)?$' |
args | matches | regex '(?i)dbms' | ||
RecoveryServer | DiscoveredProcess | cmd | matches | regex '(?i)\bingres.*\biidbms(?:\.exe)?$' |
args | matches | regex '(?i)dmfrcp' | ||
or | ||||
cmd | matches | regex '(?i)\bingres.*\bdmfrcp(?:\.exe)?$' | ||
NameServer | DiscoveredProcess | cmd | matches | regex '(?i)\bingres.*\biigcn(?:\.exe)?$' |
CommunicationsServer | DiscoveredProcess | cmd | matches | regex '(?i)\bingres.*\biigcc(?:\.exe)?$' |
DataAccessServer | DiscoveredProcess | cmd | matches | regex '(?i)\bingres.*\biigcd(?:\.exe)?$' |
BridgeServer | DiscoveredProcess | cmd | matches | regex '(?i)\bingres.*\biigcb(?:\.exe)?$' |
StarServer | DiscoveredProcess | cmd | matches | regex '(?i)\bingres.*\biistar(?:\.exe)?$' |
Archiver | DiscoveredProcess | cmd | matches | regex '(?i)\bingres.*\bdmfacp(?:\.exe)?$' |
VisualDBARemoteCommandServer | DiscoveredProcess | cmd | matches | regex '(?i)\bingres.*\brmcmd(?:\.exe)?$' |
Software Instance Type Attributes Created
The patterns in this module will set the following attributes:
Pattern Name | SI Type |
---|---|
DBMSServer | Ingres Database Server |
RecoveryServer | Ingres Recovery Server |
NameServer | Ingres Name Server |
CommunicationsServer | Ingres Net Communications Server |
DataAccessServer | Ingres Data Access Server |
BridgeServer | Ingres Bridge Server |
StarServer | Ingres Star Server |
Archiver | Ingres Archiver |
VisualDBARemoteCommandServer | Ingres 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.
Name | Command | Arguments |
---|---|---|
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 = 916384 + (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
Comments
Log in or register to comment.