queue
, nonurgentqueue
, normalqueue
, urgentqueue
, after
)
PMDF creates service jobs to deliver messages. The queues where the
jobs are created can be selected on a channel by channel basis by using
the queue
, nonurgentqueue
,
normalqueue
, and urgentqueue
keywords. These
*queue
keywords must be followed by the name of the queue
to which delivery jobs for the current channel should be queued. The
name of the queue should not contain more than twelve characters.
Different queue usage for messages of different priorities may be
explicitly set using the nonurgentqueue
,
normalqueue
, or urgentqueue
keywords.
Otherwise, the queue
value (if any) will be used for all
messages. If no *queue
keyword is specified, then the
queue used is the default queue, MAIL$BATCH on OpenVMS or the DEFAULT
queue defined in the Job Controller configuration file on UNIX and NT.
Using multiple queues is especially useful when PMDF is run in a
cluster.
Certain channels may require hardware or software that is only
available on a
specific system within the cluster. Accordingly, queues may be
associated with
specific systems, making it possible to ensure that the jobs servicing a
particular channel only run on the proper machine.
Execution of service jobs can be deferred using the after
keyword. The after
keyword must be followed by a
specification of the amount of time to delay. If the value following
the keyword is an unsigned integer value, it is interpreted as a number
of seconds by which to defer the execution of the job---a delta time
value.
On OpenVMS, there is an alternative time format specification. Anything
other
than an unsigned integer will be interpreted as being in standard
OpenVMS
combination date/time format. The specification must not be quoted and
may not
contain any spaces. For example,
TOMORROW+1
delays
execution of
any submitted job to 1:00AM the following day; +00:01:00
delays
execution of any submitted job for one minute. The specification
-::
is equivalent to the current date/time and is the
default,
resulting in immediate eligibility for execution.
On OpenVMS, deferred execution with an absolute time value is most
often used
to schedule delivery at a time when some resource is known to be
available. It
can also be used to defer delivery to a time when the system isn't so
heavily
loaded, but other techniques, such as placing dynamic limits on the
allowed
number of simultaneous jobs, may be a better solution.
Deferred execution with a (typically small) delta time value is most
often used to increase throughput (e.g., as a result of
cutting down on image activation overhead) for heavily used channels.
Note that, regardless of the after
channel keyword, PMDF
will not submit a new channel job when there is already a pending or
holding job for that channel. (PMDF will, however, submit a new channel
job when there are already running jobs for that channel.) So by using
the after
channel keyword to introduce a slight latency in
the execution of immediate PMDF channel jobs, each such job has a
window of time during which to "collect" all the messages
sent to the channel in that time. Whereas normally an immediate PMDF
channel job might typically handle only one (or at especially busy
times perhaps two or three) messages, such use of the
after
channel keyword allows immediate PMDF channel jobs
to typically collect and handle larger numbers of messages. For
channels with high connection or image activation overhead, this can
result in significantly higher overall throughput.