PMDF contains a utility,
cnbuild, to compile the
configuration, option, mapping, conversion, alias, security, and system
wide filter configuration files into a single shareable image (on
OpenVMS) or a single image in shared memory (on UNIX) or a dynamic link
library (on Windows). The main reason for compiling configuration
information is simple: performance. 1 Another feature of
using a compiled configuration is that you can test configuration
changes more conveniently, since the configuration files themselves are
not "live" when a compiled configuration is in use.
Whenever a component of PMDF (e.g., a channel program) must read the configuration file it first checks to see if a compiled configuration exists. If it does, the image is merged into the running program (on OpenVMS) or attached to by the running program (on UNIX or Windows). 2 If the attempt to load the compiled configuration fails for any reason, PMDF falls back on the old method of reading the text files instead.
The only penalty paid for compilation is the need to rebuild and, on OpenVMS systems, reinstall the image every time the configuration, option, mapping, conversion, alias, or security configuration files are edited.
On OpenVMS systems, the image file is referenced with the
PMDF_CONFIG_DATA logical. This logical translates to
PMDF_EXE:CONFIG_DATA.EXE; PMDF_EXE itself is a logical
which translates to
PMDF_ROOT:[xxx_EXE] depending upon the
architecture (VAX, Alpha, or IA64). The image file can be installed
with the standard OpenVMS INSTALL utility.
On UNIX systems, the name of the image file is specified with the
PMDF_CONFIG_DATA option in the PMDF tailor file. By default, this is
On Windows systems, the name of the image file is specified with the
PMDF_CONFIG_DATA PMDF Tailor Registry entry. Usually this is the file
As always when there is a change to the PMDF configuration, resident PMDF processes (such as the multithreaded SMTP server) should be restarted with the
1 A test on a µVAX II system showed that reading a fairly complex configuration and alias file took about 6 seconds of CPU time. By contrast, initialization of PMDF took about 1 second of CPU time when the data was precompiled as a shareable image.
2 There are two exceptions to this
rule. The first is the