TRANSFER Programming Manual

TRANSFER Asynchronous Processes
TRANSFER Application Components
2–10 40970 Tandem Computers Incorporated
TRANSFER
Asynchronous
Processes
TRANSFER asynchronous processes handle package delivery. They schedule
packages for delivery, locate recipients for those packages, and transmit the packages.
They ensure that a package is delivered within the timeframe specified by the sender.
If a network node is unavailable, they ensure packages destined for the node are
transported as soon as the node becomes available. They also cancel packages and
arrange for their expiration.
The asynchronous processes also perform various time-staged operations and
database cleanup functions. These functions include handling package expiration,
unsaving (removing) items from folders governed by item-retention times, deleting
items and external objects, and managing session cleanup.
The TRANSFER delivery system provides several kinds of asynchronous processes:
TSCHED—a scheduler process
TAREQs—TRANSFER asynchronous requesters
TFRONT pseudoterminals—processes that emulate terminals
TRECV—the TRANSFER network receiver
TWORK—the TRANSFER worker server
User-written client requesters do not communicate directly with the asynchronous
processes. To send a package, a client sends its request to TISERV; TISERV, in turn,
contacts the scheduler. The only case in which asynchronous processes communicate
directly with user-written software is when TAREQs invoke agents.
Scheduler (TSCHED) Every node has a scheduler that runs as a fault-tolerant process pair. The scheduler, of
which only one copy exists, maintains queues on disk to keep track of the following:
Packages that are ready for delivery, expiration, or cancellation
Packages that cannot be acted upon because their timestamps call for deferred
action
Packages that are waiting for delivery, expiration, or cancellation at unavailable
nodes
Packages move to the ready queue when all conditions for delivery are met. When a
network node is available, all packages that have recipients at that node are placed in
the ready queue. If some recipients are at available nodes and other recipients are at
unavailable nodes, only transport to the unavailable nodes is deferred; the package is
considered ready for transport to all available nodes.
When a package is transported to a node, the TRANSFER delivery system expands the
distribution lists that are defined on that node. The TRANSFER delivery system
replaces each distribution list name with the actual names of the correspondents. If
the distribution list contains names of correspondents on other nodes, the TRANSFER
delivery system transports the package to the other nodes.