Compile the PMDF configuration, alias, mapping, conversion, security, system wide filter, circuit check, and option files and load the resulting image file into shared memory.
Command Qualifiers Defaults
Must have superuser privileges (UNIX) or be logged in as Administrator (NT) in order to use this utility.
cnbuildutility compiles the textual configuration, option, mapping, conversion, security, system wide filter, circuit check, and alias files, and loads the resulting image file into shared memory. The resulting image is the file named by the PMDF_CONFIG_DATA option of the PMDF tailor file,
Whenever a component of PMDF (e.g., a channel program) must read any possibly compiled configuration component, it first checks to see whether the file named by the PMDF tailor file option PMDF_CONFIG_DATA is loaded into shared memory; if this compiled image exists but is not loaded, PMDF loads it into shared memory. If PMDF finds (or not finding, is able to load itself) a compiled image in shared memory, the running program uses that image. There are four exceptions to this rule. The first is
pmdf cnbuilditself, which for obvious reasons always reads the text files and never tries to use an image form of the configuration data. The remaining three exceptions are
pmdf test -rewrite,
pmdf test -mapping, and
pmdf test -x400which can all be instructed with the
-image_filequalifier to use a different compiled configuration file. This facility in
pmdf 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 recompile and reload the image any time the configuration or alias files are edited. Also, be sure to restart any programs or channels which load the configuration data only once when they start up, e.g., the PMDF multithreaded TCP SMTP 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 (or any files referenced by it), the PMDF system alias file, the PMDF mapping file, the PMDF option file, the PMDF conversion file, the PMDF security configuration file, the system wide filter file, or the circuit check configuration file. Specifically, these are the files pointed at the PMDF tailor file options (UNIX) or PMDF Tailor Registry keys (NT) PMDF_CONFIG_FILE, PMDF_ALIAS_FILE, PMDF_MAPPING_FILE, PMDF_OPTION_FILE, PMDF_CONVERSION_FILE, and PMDF_SECURITY_CONFIG_FILE, respectively, which usually point on UNIX to
or on NT to
as well as the files
C:\pmdf\table\circuitcheck.cnf(NT). Until such time as the configuration is rebuilt, 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.
pmdf cnbuildcreates as output the image file named by the PMDF_CONFIG_DATA option of the PMDF tailor file,
/etc/pmdf_tailor, (UNIX) or PMDF Tailor Registry key (NT). With the
-image_filequalifier, an alternate file name may be specified. When the
-noimage_filequalifier is specified,
pmdf cnbuilddoes not produce an output image 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.
-maximumis specified, the file
/pmdf/table/maximum.datis read in addition to the file named by the PMDF_OPTION_FILE option in the PMDF tailor file,
/etc/pmdf_tailor, (UNIX) or PMDF Tailor Registry key (NT). 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
pmdf 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 named by the PMDF_OPTION_FILE option in the PMDF tailor file,
/etc/pmdf_tailor, (UNIX) or PMDF Tailor Registry key (NT). 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.
pmdf cnbuildalways reads any option file that is already present via the PMDF_OPTION_FILE option of the PMDF tailor file,
/etc/pmdf_tailor, (UNIX) or PMDF Tailor Registry key (NT); use of this qualifier will not alter this behavior. However, use of the
pmdf cnbuildto read PMDF options from the file
maximum.datin the PMDF table directory in addition to reading the file named by 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
-noimage_filequalifier should always be specified when
-maximumis specified since a maximum-size image would be truly enormous and extremely wasteful.
Remove any existant compiled configuration; i.e., remove the file named by the PMDF_CONFIG_DATA option of the PMDF tailor file,
/etc/pmdf_tailor, (UNIX) or PMDF Tailor Registry key (NT).
pmdf cnbuildto output information on the sizes of uncompiled PMDF tables.
pmdf 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
This is the standard command used on UNIX to regenerate a compiled configuration. After compiling the configuration, restart any programs which may need to reload the new configuration; e.g., the TCP SMTP server should be restarted.
# pmdf cnbuild -noimage_file -option_file -maximum # pmdf cnbuild
Use these two UNIX commands when you encounter the infamous "No room in table" error message.
C:\> pmdf cnbuild
This is the standard command used on NT to regenerate a compiled configuration. After compiling the configuration, restart any programs which may need to reload the new configuration; e.g., the Dispatcher should be restarted.
C:\> pmdf cnbuild -noimage_file -option_file -maximum C:\> pmdf cnbuild
Use these two NT commands when you encounter the infamous "No room in table" error message.