Wednesday, September 19, 2007

INI Madness Tamed!

As many might be aware the task of managing the INI files, used to store the configuration of our server based products, can be difficult at best. Server Manager addresses many of these problems in the following ways:

Complete INIs:
Server Manager provides a web based tools release specific mechanism for editing the configuration files of our server based products. Using Server Manager there should be no reason to manually edit the INI files directly. Server Manager provides a web based view/editing of all the configuration files.

Server Manager utilizes metadata about configuration settings that are delivered with each tools release. To accomplish this we performed many searches over the entire codebase to find every configuration item used. Our policy is: if something is configurable via INI it is configurable via Server Manager. This search resulted in the addition of many, some possibly obscure, configuration settings. It also resulted in the removal of many configuration items that have historically been delivered but are no longer relevant.

For existing enterprise servers that are registered with SM many configuration settings that were present in the JDE.INI that are no longer used will remain in the file, if present, but won't appear using the Server Manager GUI. For our web based servers the INIs are created when the instance is created, so will perfectly match the tools release initially used. If a setting is present in these web based INIs and the server is later upgraded to a release that obsoletes a setting that parameter will still remain in the file, but will no longer be viewable through the management console.

It is, of course, possible that we missed a setting. We did our best, but there are a lot of settings to manage. If a setting was missed and is therefore not available through the management console application it may always be edited directly within the file. All settings not known to SM will be maintained during tools release upgrades/downgrades.

Documentation:
Each configuration item is identified using a short, human readable description. An extended description is provided via the online help and bundled documentation. Default values, where applicable, are provided as reference. Many parameters provide a list of values detailing exactly what is allowed for each setting. For reference the documentation provides the INI filename, section, and entry for each setting.

We've also provided a reference document with the product detailing each setting. As of this writing this is over 350 pages. All the information in the documentation is also available in online help. If you are looking for a particular setting and are having trouble locating it using the new descriptions the documentation allows a quick lookup based on the INI entry details.

This reference documentation is current as of the 8.97 tools release. It will be kept current for all future tools releases. The reference may also be of assistance to earlier tools release but be aware that not all settings will be applicable to the earlier releases.

Relevant INIs:
Another task we undertook was to remove the configuration parameters that are not relevant to the product. Historically the JAS.INI and JDBJ.INI used for web servers were simply duplicated for the other web based products (collaborative portal, transaction server, PIMSync server, and the new business services server). We evaluated these products and removed from their configuration parameters that didn't apply. This means that each server has it's own unique set of configuration parameters. We hope this will reduce confusion in not appearing to require configuring parameters that do not apply to the server.

The transaction server (RTE) also previously contained three separate copies of each configuration file, one for each of the EARs that make up the product. This has been removed and only a single set of configuration files are shared among all the EARs.


There's much more to talk about configuration management in Server Manager: server groups, configuration comparison, and audit history. I hope to post on those topics in the future.