Pre-release documentation - subject to change.

Architecture Details

When Extended TOSEND Queues (more than sixteen TOSENDx folders) are defined, the management of TOSEND queues requires the installation of the following components:

QUEUES.DBThis database file resides in the CopiaFacts Application Data area (the FAXFACTS folder) and contains details of nodes, queues and schedules.
CFMSG.exeThis service executable runs on the fileserver and provides message services for the COPIAFACTS instances and Job Launch instances to access the database and the TOSEND queue counts.
CFSCHEDULE.exeThis program is used to configure and manage the queue settings.

The relationship between these components is as shown below:

Installation and Implementation

The CFMSG and CFSCHEDULE executables, and a default QUEUES.DB database, are installed by the CopiaFacts 8.2 server installer when Job Administration is licensed.  While the maximum TOSEND queue number (configured on the $request_dir command) remains as 15 or below, these components are not used.

For new Job Administration users, we suggest starting with TOSEND folders up to TOSEND15 and then increasing the number if required.  For existing Job Administration users wishing to make use of more folders, we recommend the following steps:

upgrade all nodes to version 8.2.

carefully plan your usage of the additional folders as described below.

use CFSCHEDULE to configure folders 0 to 15 so that they correspond to your current usage of them, and set up schedules for each active engine node to use the folders which are currently enabled for it.  These settings will not be used by the engines while the number of configured folders remains at 15 or below.

increase the number of folders on the $request_dir command to a number above 15 (there is no need to specify the maximum of 99 unless you really need them all).

gradually start to make use of the additional queues by assigning them in special schedules to particular nodes, and launching jobs into them.

Strategies for using additional queues

The many advantages of having more queues arise from the ability to define queues for specific types, categories, priorities or sizes of job.  To do this, the principal requirements are:

ensure each queue handles a specific types of work: only fax, or only e-mail, or only voice.  The queue properties can be set to limit the work that can be launched into a queue and the system will then enforce this for you automatically.

make the majority of nodes handle only specific work types.  This greatly enhances efficiency and throughput, and again, the system will not let you assign a queue defined as 'only for fax work' to a node which has no fax lines.

In many cases however, it will be impractical to work out all the rules in advance, ready to switch on and hope that all the settings are correct.  It may be more practical to begin with a strategy which could be described as 'more of the same' and set up more complex definitions later.

The 'More of the Same' Strategy

This strategy simply takes the current method of operation and extends it to more queues.  To implement it, you would use CFSCHEDULE to configure the following:

all TOSEND queues to have a 'Content' parameter of multiple.  So any work can be launched into any queue (as in earlier CopiaFacts releases) and the system does not check what is launched into each queue.

most engine nodes are designated for specific operations, but several can handle multiple tasks (as in earlier CopiaFacts releases) and when multiple tasks are scheduled for a node, it operates with lower throughput.

the additional queues provide somewhat more flexibility in scheduling, but only minimal operational advantages.  Note also that any one job can be launched into a maximum of 15 separate queues, and that each engine node can only handle 16 separate queues, so general-purpose queues cannot be extended except within these limits.

This strategy may be appropriate for smaller Job Administration users who feel that 15 TOSEND folders is not quite enough, but who are happy with the current scheduling methods.

Optimized Scheduling Strategies

In order to make fuller use of extended TOSEND folders, a more pro-active strategy is required.  In practice this may end up being simpler to manage and use than the 'more of the same' strategy described above.  It is necessary to follow a few simple rules:

Single-purpose nodesIt is essential that the majority of COPIAFACTS nodes have a single purpose, be it faxing, voice or e-mailing.  They will then process the majority of outbound tasks.  It will usually be necessary to leave one or more nodes which can undertake administrative and general tasks.  The objective is to keep your node-names off the last line of the CFSCHEDULE 'Engine Nodes' tab:

TOSEND groupsYou will find it helpful to define TOSEND queues in groups all of one type.  For example you could define:
TOSEND20 to TOSEND 39   Fax
TOSEND40 to TOSEND 59   E-Mail
TOSEND60 to TOSEND 79   Voice
Within these blocks you may then use some standard patterns, for example defining 21, 22 and 23 as 'normal' faxes in decreasing priority order, 20 for super-high priority, 24 for completely non-urgent jobs, and the remainder of the range for other special purposes.
Node groupsWith the scheme outlined above, you can define a batch of nodes for routine tasks, all with the same schedule, and such a group for fax might all handle TOSEND queues 20 - 24, with suitable assigned priorities.  Other batches of nodes can handle e-mail tasks.
Standard schedulesA 'schedule' assigns a set of TOSEND queues to a set of nodes.  At any one time a node can have only one schedule.  For ease of management it is best to keep groups of nodes together in the schedules you apply to them at different times.  For example if you apply a special schedule for faxing at weekends, or on Fridays, it will help if the nodes in the schedule are not switched around in each one.  You will need to devise a naming scheme for schedules if your requirements are particularly fluid.
Currently, new schedules must be applied manually.  However we plan to implement a means of activating a new schedule automatically, and also to publish an API to modify and activate schedules.