GME Configuration File Settings
There are a number of configuration files available in the /conf directory.
Each addresses a different GME set-up—connecting GME to other services, etc.
The file localhost-gme-config.xml contains a basic setup for a
GME server to run on the local machine and will provide a good example of how the configuration
files are structured. See the mobius configuration overview for
information on the elements in the top resource block of the configuration files.
The localhost config files should never be used for more than single GME testing purposes. If you are running multiple GMEs, customize the config files by assigning unique service identifiers and making any other changes necessary to specify the service as unique. When other services connect to a GME started as localhost, the GME will identify itself as "localhost" to the connecting service. This can cause problems with service name resolution.
The GME server contains a single resource block that provides certain functionality and information to other GME components. The resources defined in the block are instantiated by the GME server at startup and are configured by the config file. The resource for the GME is:
- GME Configuration
<resource name="gmeConfig"... >
The element <gmeConfiguration-configuration>, the outermost element of
the resource, contains three sub-elements. Each is listed here,
along with its children. Below this list we have elaborated the purpose
of the elements.
managementDatabaseFactoriesauthorityManagerDatabaseFactorysubordinateManagerDatabaseFactory
policiesperformance-cachingnotification-policy
root-database
<managementDatabaseFactories>-
This element is a container for the elements that define how the GME
will determine which related GMEs are authoritative and/or subordinate to it.
<authorityManagerDatabaseFactory>- The Authority Manager keeps track of information about authorities for the GME server. The class attribute specifies the factory used for creating an instance of the Authority Manager Database.
<subordinateManagerDatabaseFactory>- The Subordinate Manager keeps track of information about subordinate GMEs for the GME server. The class attribute specifies the factory used when creating an instance of the Subordinate Manager Database.
<policies>
This element establishes parameters for how long the GME
should keep old data and what other hosts it should notify of its existence.
-
<performance-caching>-
The
<namespace-caching>and<schema-caching>sub-elements of this element tell the GME how much namespace and schema data it should cache and for how long it should maintain the cache. <notification-policy>-
This element contains a
<notification-list>sub-element that specifies which running GMEs it should notify upon instantiation.
<root-database>-
This element configures the MySQL root database information.
The children of this element configure the database.
Its "id" attribute is the base name of the MySQL databases that
will be created and used by the GME. If you configure multiple GMEs to use a
single MySQL installation, be sure to give a unique value to the "id"
for each GME or there will be problems with name collision in MySQL.
<name>- This element specifies the name of the database. For MySQL's root database, this should be nothing.
<driver>- The driver class for accessing the MySQL database.
<urlPrefix>- The url prefix for accessing the database.
<host>- The host the database lives on. Usually, this will be localhost.
<port>- The port via which the database can be accessed.
<username>- The username to log into the database with. This username must have privileges to create and delete databases and tables.
<password>- The password to authenticate the username.
<pool>- This element determines how many connections to the database will be made initially. When the GME needs to communicate with the database, it will get a connection, and when its done, it releases it. Should the Database Manager run out of available connections, it will make a new one, but this causes a slight delay. Set the pool value in anticipation of how many concurrent database operations will be needed.