Server Agent Administration: Informix

When configuring an Informix database agent the critical configuration items are:

  • Database Identification - this is an actual database name, e.g., "stores7", which identifies the actual Informix database file that you want to be connected with. This is the value that you enter into the "Database Name" field of either your Admin Assistant's database agent configuration form or wizard dialog. If you choose to have database identification take place at the client rather than server, you enter this value into the "Database Name" field or connection attribute when configuring the Generic Client.

Informix provides a number of environment variables for configuring database clients. The basic set required for successfully connecting your database agent to an Informix database server is tabulated below:

Table: 1. Default Rule Book settings

Rule Book Section and Parameters Default Rule Book Settings Notes
[Environment INFORMIX5] Informix 5 Agent environment settings
INFORMIXDIR /dbs/informix5 Full path to the base directory for the Informix 5 installation.
TBCONFIG tbconfig Database server configuration file
FORCE_ONLINE_DATABASE 1 Force mode: 0 for Standard Engine (SE); 1 for ONLINE
[Environment INFORMIX6]
INFORMIXDIR /dbs/informix6 Full path to the base directory for the Informix 6 installation.
[Environment INFORMIX7]
INFORMIXDIR /dbs/informix7 Full path to the base directory for the Informix 7 installation.
INFORMIXSERVER online7 The name of the Informix 7 server that you want the agent to attach to. As long as you have I-Connect or I-Net installed, configured, and up-and-running, this value can connect your database agent with remote Informix database servers.
ONCONFIG ONCONFIG Database server configuration file
FORCE_ONLINE_DATABASE 1 Force mode: 0 for Standard Engine (SE); 1 for ONLINE
DELIMIDENT Y This will allow quoted identifiers to be handled.
OPL_INF_MULTISESS Y Enables Informix multisession mode. When active (Y), each ODBC connection gets its own database session. When inactive (N), all ODBC connections share one database connection.
OPL_SPACEPADCHAR Y When active (Y), character data from a CHAR column is fetched with trailing spaces retained. The column data is padded up to the column width. When inactive (N), trailing spaces are stripped off.

Security Enhancement

Due to the fact that older Informix versions leave username and password verification to the host operating system, it is possible to close what could be an ODBC, UDBC, JDBC, OLE DB, or ADO.NET security loophole by utilizing the database agent "OpsysLogin" facility which can be enabled through the Admin Assistant. By enabling this feature your Informix database agent will verify user accounts at the operating system level before attempting to connect to your Informix database. It is important to note that "super-user" or Administrator (depending on operating system) privileges are required to successfully use this feature. This implies that the account that starts the request broker must possess one of the aforementioned system level privileges; on the other hand, these privileges aren't required for your actual OpenLink client sessions.

Rebuilding Informix Database agents

We provide a relinkable library and script files that enable you to rebuild your database agents as shared (as opposed to statically linked) binaries, or for the purposes of getting a closer database implementation fit, should your Informix database environment be a more recent release than the actual version we used to build the database agent installed on your system. Please read the Relinking Database Agents section that follows, for details on how to perform this task.

Note that to run the Informix agents you may require the latest Informix Connect (a free download from the IBM/Informix site); in order to relink them, you require the Client SDK as well.

Application Server and Three-Tier Architecture Configuration

There may be situations in which you are unable to install the Request Broker and Database Agents on the same machine as the one hosting your Informix database server. Irrespective of the reasons that lead you to this scenario, it is possible to configure the database agents hosted on your Application Server machine such that they connect to a remote Informix database on your Database Server machine using Informix database specific networking (I-Connect or I-Net) as opposed to our Database Independent Networking. The end result is a three-tier distributed architecture in which the communication between Generic Clients and Database Agents use our database independent networking, while the communication between the Informix database agent and the Informix database server uses I-Connect or I-Net (depending on Informix version).

Configuration Steps

Assuming you have an Informix Database Server machine called "mainserver2" that has an Informix I-Connect or I-Net server process running (this is set up and configured via the SQLHOSTS file on the database server machine).

1. On your Application Server (the machine hosting your database agent) create an I-connect or I-Net Connection Alias called "mainserver2" (for purpose of this example only) if a working Connection Alias doesn't already exist on this machine.

2. Ensure that you have a usable connection to your remote Informix database using Connection Alias "mainserver2".

3. Add the following values to the "Database Server Options" field within the Admin Assistant Forms or Wizards used to configure your database agent. If you choose to set this value on the client simply enter the same value into to the "Database Name" Attribute associated with the configuration of your OpenLink client (see OpenLink ODBC or JDBC or UDBC client configuration for more details):

      mainserver2

You can also set the INFORMIXSERVER environment variable to "mainserver2".

See Also

Application Server Architecture for various illustrations of distributed client-server architectures supported by OpenLink database agent

Agent handling of SQLGetInfo

The Informix agent is hard coded with responses to SQLGetInfo(). These are affected by the build version:

Table: 8.2.3.5.1. SQLGetInfo() differences

Parameter Build Version <

7.x

Build Version > 7.x (eg. 9.x)
SQL_MAX_CATEGORY_NAME_LEN 8 32
SQL_MAX_OWNER_NAME_LEN 8 32
SQL_MAX_SCHEMA_NAME_LEN 18 128
SQL_MAX_QUALIFIER_NAME_LEN 18 128
SQL_EXPRESSIONS_IN_ORDERBY N N

Unicode Configuration

See the Unicode section for configuration details.


Referenced by...