PMDF contains a utility, CNBUILD (OpenVMS) or
(UNIX and NT), 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 (NT). 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
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 NT).2 If the image merge (on OpenVMS) or attach (on UNIX on NT) operation 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 either
PMDF_ROOT:[alpha_exe] depending upon the architecture, VAX
or Alpha. The image file can be installed with the standard OpenVMS
INSTALL utility. This compilation is done without the use of the
OpenVMS linker --- PMDF is capable of creating shareable images on its
own that are acceptable to the OpenVMS image activator.
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 NT 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 PMDF RESTART (OpenVMS) or
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 PMDF CNBUILD (OpenVMS) or