With the exception of the G3 files used by the G3_TO_FAX channel and
the P1 files found in the inbound and outbound X.400 channels, messages
queued for delivery are always stored in the same format, described
below in Section 1.5.2, regardless of the type of channel in which they
are queued. All messages are stored in subdirectories under the PMDF
queue directory.7 Each channel has its own subdirectory,
with the name of the subdirectory being that of the channel. For
example, messages queued for delivery to Internet destinations are
typically handled by a tcp_local channel, hence stored in
PMDF_QUEUE:[tcp_local] on OpenVMS systems,
/pmdf/queue/tcp_local/ on UNIX systems, and usually
C:\pmdf\queue\tcp_local\ on NT. A channel subdirectory can
in turn have multiple subdirectories beneath it, usually purely for
file system usage reasons,8 but also some channels, such as
the MAILSERV and PRINTER channels, use a subsidiary
subdirectory for storing temporary file. Each file in a channel
subdirectory contains a single message.
On OpenVMS, some temporary files are stored in the top level queue directory. The names of these temporary files usually begin with a dollar sign,
All of these directories are protected against access by nonprivileged
users. The first two characters of each file name are a representation
of the number of times delivery has been attempted on the file. This
information is encoded in "complemented base 36". Files are
initially created having names beginning with
ZZ". Upon completion of an unsuccessful
delivery attempt, a file is renamed, counting down in complemented base
36. So a name beginning with "
ZY" indicates that
at least one attempt has been made, a name beginning with
ZA" indicatees that at least 25 attempts have
been made, a name beginning with "
that at least 35 attempts have been made, a name beginning with
YZ" indicates that at least 36 attempts have
been made, and so on.
The remainder of the file names are pseudo-random strings of
hexadecimal characters that serve to make the file names unique. The
file type (extension) is always a pair of letters or digits, usually
00". Messages being held have a
.HELD" as the file type; these messages are not
eligible for delivery processing and must be renamed to have a
two-character file type before they will become eligible for
The actual internal format of the message files is irrelevant. Those who want to write their own PMDF channel programs should access the messages via the documented PMDF API interface. This interface is documented in the PMDF Programmer's Reference Manual. PMDF itself uses the MM subroutine library to enqueue messages and the QU subroutine library to dequeue messages. However, it is sometimes useful for a system manager to examine messages in the queues, so it is nice to note that messages are stored as ASCII text and message files can be typed on a terminal without adverse effects. An overview is provided of message file format below in Section 1.5.2.