This program provides runtime matching between requests and responders.
- Checking requests and selecting the responder version required. ie Limiting programs to use minimum and maximum versions
- Duplicating requests and running in parallel over severval versions to parallel test new code
- Detecting requests that cannot be serviced by active agents and starting new ones as required.
Startup
During startup, this program creates the file "CrashStartup Directory.Txt". This name does not mean it crashed, rather it encountered unexpected problems. The name CrashStartup was chosen to be very obvious. You may read the contents of this file. If the startup has no problems, this file will be removed.
If you start Directory.exe when "CrashStartup Directory.txt" already exists, it internally switches to a more verbose logging mode and writes more detail of startup progress
Once the startup has created a Query Exchange Billboard, problems are typically logged to both this log file and the Query Exchange error logs
You may run multiple copies of this program and they will attempt to load share decision making, however a single copy is highly recommended.
Support
If you terminate this process, all requests requiring directory assistance will stop and hang. Depending on current configuration this may mean ALL new requests hang.
Internal Operation
Each function (BUCK DATI etc) is given a version number. This number is generally taken from the build date/time of the program.
When client programs request a function, eg Spellcheck("house"), they quickly check if directory assistance is required before placing the query in the READY state. As most programs do not request explicit versions and only one copy exists this step usually does nothing.
If the request does require directory assistance, the request is placed in the DIRECTORY state and Directory.exe will determine what is to happen
The directory program runs through several checks selecting minimum and maximum versions and eventually sets the selecting version into the request and moves the query to READY state. Responder programs honour the version selectors and ignore requests they cannot process
New versions
If you have a new version of a function (eg Spellcheck), then directory will insert a "minimum version" rule on all requests so that only the new version is required. This versioning is available for each environment seperately, so you can run production at different versions to test and dev
Directory is capable of blocking versions also. So if version 124 of the Spellcheck function is completely broken it will ensure no requests are selected by this version, unless the requestor explicitly asks for that version