Page tree
    Skip to end of metadata
    Go to start of metadata
    Discover with BMC Discovery
    download

    This product can be discovered by any edition of BMC Discovery. Download our free Community Edition to try it out, or [see what else it can discover] !

    What is this?
    This is a product information page, containing details of the information that BMC Discovery gathers about a product and how it is obtained.
    Product Name
    Database
    Publisher Page
    Ingres
    Category
    Relational Database Management Systems
    Release
    TKU 2011-Sep-1
    Change History
    Ingres Database - Change History
    Reports & Attributes
    Ingres Database - Reports & Attributes
    Publisher Link
    Ingres

    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 16 Jan 2009
    Updated by: Nikola Vukovljak 14 Sep 2011
    Reviewed by: Chris Blake 26 Jan 2009