Configuration Manager - How to manage links between multi-db, multi-server applications
Posted by Bruce Lill on November 30th, 2007 | Category: Domino
The database will be used to house all configuration documents that will be replicated to all servers. A scheduled agent will run on each server that will verify that all profiled databases have the correct configuration documents. It will use the configID and the last date modified to decide if the document is up to date.
A database profile will be created for each database that uses configuration documents. The profile will list all the configuration docs that are needed for that database. The list will be the Title from the configuration documents instead of the database title. The title and environment will be used to select the configuration documents used. A history of the updates will be maintained on the profile.
The new configuration document will maintain the current fields (to support the current script libraries) and includes additional fields to support failover and locations.
A new Script Library (Utilities.Navigation.Location) has been created to replace the current getdb & getserver in Utility Functions. The new library will support the use of locations and failover.
To use the database create a database Profile for your target database.
It will have a primary & failover server and a list of configuration documents needed in the target.
The only changes needed in the Target database is the inclusion of a View called (vConfigID) that can be copied from this database or from the Resource Database. The view is used to find the configurations by configID instead of title.
To Use in your database:
First make sure the design of your database has the updated elements.
- Copy the (vConfigID) view to your database.
- Update the Admin\Configuration | vConfiguration view.
- Update the Setup Profile form.
- Create a Database Profile for your new database
- Select your database (pick it on the primary server it's to be used on)
- Set the environment used (production, UAT, or Development)
- Pick a category (to group your databases - CRM, Portal, KM, etc.)
- Fill out the Failover server and Location information.
2. Verify the configuration document list and that all the configurations listed are enabled in the Configuration Db.
3. Enable the Database Profile.
4. Press the Deploy Now button to update the database with the new configuration documents.
Agents:
Admin\ Deploy Selected Profiles
Run From a view with the profiles to be deployed selected.
- The agent will get the list of configuration documents and the Environment for the Profile document .
- It will get all configurations that are Enabled, in the same environment and have the same titles.
- Use the (vConfigID) view in the target db to update current configurations, add missing ones and delete any configurations that are not in the Profile configuration list (this includes any that have been marked disabled).
Admin\Profile - Pull current info
Run From a view with the profiles to be updated selected.
- The agent will get the list of all the configuration documents currently in the database specified in the Profile document .
- It will update the configuration list for the profile
- It will disable the Profile if it finds an error such as the view is missing in the database or the database is not accessible..
(processProfiles)
Run each day an every server.
The agent will find all Enabled Profiles that have the current server listed as the Primary. It will then get each profile, get the list of configuration documents that are for the same Environment and update current configurations, add missing ones and delete any configurations that are not in the Profile configuration list (this includes any that have been marked disabled).
Views:
- Configuration \ by Environment
- All configuration documents categorized by Environment (Production, UAT and Development)
- Configuration \ Server
- All configuration documents categorized by Primary server
- Configuration \ by Title
- All configuration documents listed by Title
- Configuration \ by Use
- All configuration documents categorized by Environment with the Profiles that use the configuration document grouped below it. This will let you see everywhere a configuration document is used.
- Profiles \ By Server
- All Profiles documents categorized by Primary server
- Profiles \ By Title
- All Profiles documents listed by Title
- Profiles \ By Environment
- All Profiles documents categorized by Environment (Production, UAT and Development)
Forms:
- Setup - Configuration Document. This document contains the information needed to know how to connect to it. It is placed in every database that needs to access it.
- DB Profile - Database Profile. This document is used to enter information about a database and which configuration documents are needed by that database. It will be referenced by the agents when they update the configuration documents.
New script library Functionality:
for Users (Notes Clients):
1. Get the user's location
2. If the location is listed use the primary & failover servers
3. If not use the Local as server
for Servers:
1. Get the primary & failover servers from the configuration document
For either approach, if both the primary and failover are not accessible then use the current server.
"Local" can be used for the primary or failover server name to indicate that the function should use the current server.
Database Profile Documents
Configuration Document
Overview:
Attachments:
Configuration Manager template: dbconfig.zip
Demo from Entwickler Camp: configDemo.zip
Comments (1)
Thanks, this really help with our applications.