The Connection Manager oversees connections to various types servers. It maintains a registry of server connections and provides an interface for interacting with the servers. The relevant interfaces are shown in the attached diagram.
Server connections and their parameters can be supplied to the session via an XML file. An XML file is used as since it's more platform-portable than an INI (unfortunately at the expense of some readability). JSON was also considered but there are some bugs in the READ-JSON code (as of 10.2B04) which removed that format from consideration. This may change with future releases (since JSON is more readable IMO).
Each configuration has a config node with a name element. This is used to uniquely identify the configuration once it has been loaded.
A config node has a series of serverconnection elements, which identify the various connections. These need a type (which maps back to the ConnectionTypeEnum) and name(used to uniquely identify that connection within its type).
Each serverconnection element has a number of parameter elements, which have a name and value. The name depends on the server connection type.
<?xml version="1.0" encoding="UTF-8"?>
The config.xml file is generated by the installer for both client and server sessions, and is stored in the autoedgethefactory/[client|server]/cfg folder.
ABL sessions on both client and server (ie AppServer startup) run the OpenEdge/CommonInfrastructure/Common/start_session.p procedure. This procedure start the InjectABL container and also the Service Manager. It also loads and caches the config XML file specified on the command line into the ABLSession object's SessionProperties. The -param switch is used to specify the config file name and location, and also the config name to use.
The default parameters are in ./autoedgethefactory/client/cfg/client.pf and are
The server-side entries look similar.