Compile the PMDF configuration, alias, mapping, security, system wide filter, circuit check, and option files into an OpenVMS shareable image.
Command Qualifiers Defaults /IMAGE_FILE=file-spec /IMAGE_FILE=PMDF_CONFIG_DATA /MAXIMUM /NOMAXIMUM /OPTION_FILE=file-spec /OPTION_FILE=PMDF_OPTION_FILE /SIZES /NOSIZES /STATISTICS /NOSTATISTICS
The CNBUILD utility compiles the textual configuration, option, mapping, security, conversion, system wide filter, and alias files into a single OpenVMS shareable image. The resulting image,
PMDF_EXE:CONFIG_DATA.EXE), can then be installed with the OpenVMS
Whenever a component of PMDF (e.g., a channel program) must read any possibly compiled configuration component, it first checks to see if the
PMDF_CONFIG_DATAimage exists. If it does, the image is merged into the running program using the OpenVMS RTL routine
LIB$FIND_IMAGE_SYMBOL. There are five exceptions to this rule. The first is
CNBUILDitself, which for obvious reasons always reads the text files and never tries to load the image form of the configuration data. The remaining four exceptions are
TEST/X400which can all be instructed with the
/NOIMAGE_FILEqualifier to ignore any compiled image information. This facility in
TEST/REWRITEis useful for testing changes prior to compiling them.
The reason for compiling configuration information is simple: performance. The only penalty paid for compilation is the need to rebuild and reinstall the file any time the configuration or alias files are edited. Also, be sure to restart any channels or components which load the configuration data only once when they start up (e.g., the PMDF multithreaded TCP SMTP server, the POP or IMAP servers, FAX_RECEIVE, BITNET channels, or, if using PMDF-MR for MR TS replacement, the All-in-1 Sender, All-in-1 Fetcher, and MailWorks server).
Once you begin to use a compiled configuration, it will be necessary to recompile the configuration every time changes are made to any of the following files: the PMDF configuration file,
pmdf.cnf(or any files referenced by it); the system alias file,
aliases.; the system mapping file,
mappings.; the PMDF option file,
option.dat; the conversions file,
conversions., the system wide filter file,
pmdf.filter, the circuit check configuration file,
circuitcheck.cnf, or the security configuration file,
security.cnf. Until such time that the configuration is recompiled and reinstalled, changes to any of these files will not be visible to the running PMDF system.
See Chapter 8 for further details on the use of compiled configurations.
CNBUILDcreates as output the file
PMDF_CONFIG_DATA. With the
/IMAGE_FILEqualifier, an alternate file name may be specified. When the
/NOIMAGE_FILEqualifier is specified,
CNBUILDdoes not produce an output file. This qualifier is used in conjunction with the
/OPTION_FILEqualifier to produce as output an option file which specifies table sizes adequate to hold the configuration required by the processed input files.
/NOMAXIMUM (default)The file
PMDF_TABLE:maximum.datis read in addition to
/MAXIMUMis specified. This file specifies near maximum table sizes but does not change any other option file parameter settings. Only use this qualifier if the current table sizes are inadequate. The
/OPTION_FILEqualifiers should always be used in conjunction with this qualifier---it makes no sense to output the enormous configuration that is produced by
/MAXIMUM, but it does make sense to use
/MAXIMUMto get past size restrictions in order to build a properly sized option file so that a properly sized configuration can be built with a subsequent
CNBUILDcan optionally produce an option file that contains correct table sizes to hold the configuration that was just compiled (plus a little room for growth). The
/OPTION_FILEqualifier causes this file to be output. By default, this file is the file pointed to by the
PMDF_TABLE:option.dat. The value on the
/OPTION_FILEqualifier may be used to specify an alternate file name. If the
/NOOPTION_FILEqualifier is given, then no option file will be output.
CNBUILDalways reads any option file that is already present via the
PMDF_OPTION_FILElogical name; use of this qualifier will not alter this behavior. However, use of the
CNBUILDto read PMDF options from the
PMDF_TABLE:maximum.datin addition to reading
PMDF_OPTION_FILE. This file specifies near maximum table sizes. Only use this qualifier if the current table sizes are inadequate, and only use it to create a new option file. The
/NOIMAGEqualifier should always be specified when
/MAXIMUMis specified since a maximum-size image would be truly enormous and extremely wasteful.
PMDF CNBUILDto output information on the sizes of the elements of the uncompiled configuration.
/NOSTATISTICS (default)The /STATISTICS qualifier instructs
CNBUILDto output information on how much of the various tables in the compiled configuration were actually used to store data. These numbers give a rough measurement of the efficiency of the compilation, and may indicate whether or not an additional rebuild with the
/OPTION_FILEqualifier is needed.
$ PMDF CNBUILD $ INSTALL REPLACE PMDF_CONFIG_DATA
Above are the standard commands used to regenerate and reinstall a compiled configuration. After compiling the configuration, install it with the DCL INSTALL command and then restart any programs which may need to reload the new configuration. (For instance, it is necessary to restart the PMDF multithreaded TCP SMTP server with the "PMDF RESTART SMTP" command after recompiling the configuration.)
$ PMDF CNBUILD/NOIMAGE_FILE/OPTION_FILE/MAXIMUM $ PMDF CNBUILD $ INSTALL REPLACE PMDF_CONFIG_DATA
Use the sequence of three commands shown above when you encounter the infamous "No room in table" error message.