Abstract:

With Informix versions 11.50, 11.70 and 12.10 IBM has introduced an array of new configuration parameters that support new advanced capabilities and provide increased flexibility and agility. With all of these versions IBM has also introduced greater self-management capability meaning that the database server can more readily adapt to its environment and workload – the database server itself takes control over part of its run-time configuration.

This article examines the fundamental configuration data we can expect to find on any Informix systems today and where we find it.

ONCONFIG file

The obvious place to start is the ONCONFIG file itself. This file contains all of the run-time configuration information which the engine reads in at start-up.

To view the ONCONFIG file either (a) open the file pointed to by $INFORMIDIR/etc/$ONCONFIG or (b) type the command ‘onstat –c’ at the command line.

As you might expect, ‘onstat –c’ simply prints out a copy of the ONCONFIG file pointed to by $INFORMIXDIR/etc/$ONCONFIG. Conveniently, it resolves $INFORMIXDIR/etc/$ONCONFIG in the header output.

Copy to Clipboard

The only information this is going to show is where the ONCONFIG file is located and what the configuration would be if we were to start the database server from the current environment.

TIP: Historically, this command was used in conjunction with ‘grep’ to quickly check a specific configuration value. Starting with IDS V11.10, the onstat –c feature has been extended, allowing for an argument to be parsed:

Copy to Clipboard

Informix Reserved Pages

‘oncheck –pr’ prints out (amongst other things) the configuration parameters that were loaded into the engine at restart. It also validates this against the $INFORMIXDIR/etc/$ONCONFIG file.

The second section of the ‘oncheck –pr’ output is the PAGE_CONFIG section.

‘oncheck –pr’ prints out a warning if any configuration parameter has been changed from the original $INFORMIXDIR/etc/$ONCONFIG file and states what the ONCONFIG and ‘oncheck –pr’ versions are.

Below is a sample extract which demonstrates this:

Copy to Clipboard

https://www-01.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.adref.doc/ids_adr_0282.htm?lang=en

This test is one method that can be used to identify dynamic changes where the ‘onmode -wf’ has been used as the change is written to the $ONCONFIG file itself, however, would not be appropriate for ‘onmode –wm’ whereby it writes to memory only:

Copy to Clipboard

oncheck –cr can also be used to achieve the same result.

NOTE: Not all configuration parameters are stored in the reserved pages.

‘sysmaster’ System Database

The ‘sysmaster:sysconfig’ view (derived from the ‘sysmaster:syscfgtab’ table) stores the supported/documented effective configuration value of every configuration parameter (i.e. the configuration value that is currently in operation). It stores the value in ‘sysconfig.cf_effective’.

The ‘sysconfig.cf_original’ field stores the value of the configuration parameter at the time of the instance restart, allowing for comparison between effective and original values. It also stores the default value for the parameter.

NOTE: In earlier versions of IDS, not all parameters listed in the ONCONFIG are present in sysconfig

Informix Message Log (online.log)

Whilst the database server is in operation, the message log will record all explicit dynamic configuration changes (i.e. changes that are initiated with ‘onmode -wf’ or ‘onmode -wm’). It will not record any changes to autonomic parameters (i.e. parameters labelled as ‘AUTO’).

The change is recorded in the message log as follows:

“Value of [CONFIG PARAMETER] has been changed to [VALUE]”)

Copy to Clipboard

‘sysadmin’ System Database and Informix Scheduler

The Scheduler maintains some degree of version control regarding the Informix server configuration.

Configuration data is stored in a table called sysadmin:mon_config. Each parameter is given the same unique ID as in the ‘sysmaster:sysconfig’ table and a view is created within the sysadmin database called ‘sysadmin:mon_onconfig’ which joins the two system tables. Any time a parameter is changed it inserts the new value in the ‘sysadmin:mon_config’ table and this new insert is given a “sequence” number that basically indicates the version of the configuration parameter setting.

The sysadmin:mon_config table is populated by a function onconfig_save_diffs() that is called by the scheduler. By default the task is run daily.

Note that it would not be possible to write a trigger on the sysmaster:sysconfig table – so an event driven insert into the mon_config table is not possible.

Improvements at version 12.10

Under 12.10 a new ‘onstat –g cfg’ utility has been added meaning we can now:

  • list those configuration parameters that we can tune dynamically with 'onstat -g cfg tunable'. This is not available at version 11.70 in which the tunable parameters were listed in a list in IBM’s documentation https://www-01.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.adref.doc/ids_adr_0439.htm?lang=en
  • use a single command line utility ‘onstat –g cfg diff’ to list all configuration parameters that have changed from their default value or the value assigned in the ONCONFIG file
  • list all configuration changes that have generated a warning or an error message using ‘onstat –g cfg msg’.

The ‘onstat –g cfg’ utility has the following options:

Copy to Clipboard

TIP: to compare a configuration on one system to that on another system or an earlier ONCONFIG version it’s possible to export the current (effective) configuration to a file using ‘onmode -we’.

TIP: import tunable configuration parameters from a file using ‘onmode –wi’ allowing for a faster deploying rather than running multiple ‘onmode –wm’ commands.

Conclusion:

This article has discussed the places to view and start tracking configuration changes to an Informix environment.

Disclaimer

The above is provided “as is” without warranty of any kind, either express or implied, including without limitation any implied warranties of condition, uninterrupted use, merchantability, fitness for a particular purpose, or non-infringement.