Chapter 10 - Banyan Mail Service Directories
The Banyan Intelligent Messaging Mail service uses files in two directories:
/diskn/BMS - Contains user mailboxes.
/disk1/banyan/bms - Contains the two processes that make up the Banyan Intelligent Messaging Mail service: bms, the Banyan Mail service; and mta, the Banyan message transfer agent. These two processes are a single executable on the hard disk, with two logical links in the /disk1/banyan/bms directory.
A Short History of Intelligent Messaging
Banyan's Intelligent Messaging was introduced concurrent with the release of Version 5.50 of VINES. Later, a patch was released which upgraded Intelligent Messaging to Intelligent Messaging III.
Intelligent Messaging III was named after StreetTalk III, and integrated many of the features of Banyan's StreetTalk III directory service.
With the release of Version 7.0 of VINES, Intelligent Messaging has been modified for better performance. This product is called Intelligent Messaging III.
The directory structure of /diskn/BMS is shown in Figure 10-1.
The directory structure of a standard user mailbox is shown in Figure 10-2.
In the /diskn/BMS directory, there are up to thirteen directories whose names begin with an "at" sign. They are named @0, @1, @2, and so on through @C.
In these directories are mailboxes for each user of the Intelligent Messaging Mail service on that server. Mailbox names are capitalized and are a maximum of 14 characters. A mailbox name is the StreetTalk item name of the owner of the mailbox with the spaces removed. For example, if the owner of the mailbox is Oksana Baiul@skating@olympics, the UNIX name of the mailbox is OKSANABAIUL.
If two or more users of the mail system have the same StreetTalk item name, then the mailboxes are differentiated with numbers. For example, if there are three people named Mohammed Cruz using the mail service, the first mailbox created is named MOHAMMEDCRUZ, the second mailbox is MOHAMMEDCRUZ01, and the third mailbox is MOHAMMEDCRUZ02.
The Query and Infodir directories are scratch directories used by the mail service. The mail service writes temporary files to the Query directory when it is resolving a query. The service writes temporary files to the Infodir directory when an administrator is running MMAIL. This information is later formatted and displayed on the screen.
There are six files in /diskn/BMS. They are:
sessctr - This file contains a number that is incremented as users log in to the mail service.
MS_COST.db - This file contains the network costs for reaching other servers in the network.
Spotless! - This file is re-written by the Janitor task whenever it finishes running, normally at 3:00 a.m. daily (though this time is configurable with Intelligent Messaging Mail III and Intelligent Messaging IIIp.) The file contains a line like the following:
The database for MS@TEAK@SERVERS has been cleaned.
datarev - This file contains a revision number for the data area layout, which is all directories below /diskn/BMS. For Banyan Version 7.0 servers, this revision number is 2.
ms3.db - This file is an Intelligent Messaging Mail system database. It maps StreetTalk user names to the associated mailboxes.
ms3.sav - This is a backup copy of the ms3.db file. It is created when the service starts up.
User Mailbox Directory Structure
The directories in a standard user mailbox are shown in Figure 10-2.
The @n directories contain two different sets of files. Message files have the extension .m, and contain the text of mail messages sent to the owner of the mailbox. Attachments have the extension .a, and are files sent along with the mail message text.
The database file envelope.db contains the envelope of all the mail messages in the mailbox, along with pointers to the message text and attachments that are associated with each message.
The /diskn/BMS/@n/MS directory is the Banyan Mail service's mailbox. It contains directories used by the Banyan Mail service and the Message Transfer Agent (MTA). These directories are shown in Figure 10-3.
Note: The default name of the Mail service's mailbox is MS. If you change the name of the service, the mailbox name changes accordingly.
The files and folders shown in Figure 10-3 are as follows:
Accept (Directory)
Messages received from other servers are written to this directory, assembled, and then moved to a Resolve0 folder.
Deadletter (Directory)
Messages that cannot be delivered are moved to this directory, where they are deleted by the Janitor process.
folder.db (Database)
Describes all of the folders in this mailbox.
Resolve0 (Directory)
Messages are moved to a Resolve folder while their list of recipients is being processed. Messages are first received in the Resolve0 folder. The MTA spends a set amount of time trying to resolve the recipients list of each message here.
Messages that are completely resolved in the short time period are moved to Transfer0. Messages that are not completely resolved are moved to Resolve1.
Resolve1 (Directory)
Messages of normal or low priority are moved to this directory if the time period for a message in Resolve0 runs out before the recipients list is completely resolved.
The recipients list of each message in this folder is worked on twice by the MTA. Messages whose recipients are successfully resolved are moved to Transfer0. Messages whose recipients are still not resolved are moved to Resolve2.
Resolve2 (Directory)
Messages that are moved to this folder are typically those that have recipients that exist, but are temporarily unavailable.
Scratchn (Directory)
These directories are used as temporary storage for recipients lists that are being resolved. The recipients lists for some messages are resolved in several passes. After each pass, the recipients list is written to this directory. There is always one of these directories. Others are created as required by the service.
Send (Directory)
Messages received from local users are written to this directory and then moved to a Resolve0 folder.
Transfer0 (Directory)
Intelligent Messaging Mail uses Transfer folders to transfer messages. Messages are moved to the Transfer0 folder after their recipients lists have been resolved. While the messages reside here, the service determines the cost of sending them, using the /disk1/banyan/bms/gcost program, and then moves them to Transfer1 or Transfer2.
Transfer1 (Directory)
Low-cost messages (those that are destined for servers across fast media like Ethernet) are moved to this folder.
Transfer2 (Directory)
High-cost messages (those that are destined for servers across slow media like serial lines) are moved to this folder.
The /disk1/banyan/bms directory is the Banyan Mail service directory. It contains the Intelligent Messaging Mail III service executable (bms) and all of its support files. The files in /disk1/banyan/bms are as follows:
bms (Executable)
Banyan Intelligent Messaging Mail service executable.
bmsdown (Executable)
Downgrades a service from Messaging III to Intelligent Messaging.
bmsup (Executable)
Downgrades a service from Messaging III to Intelligent Messaging.
bmsdown2 (Executable)
Downgrades a service from Intelligent Messaging Mail IIIP to Intelligent Messaging Mail III.
bmsup2 (Executable)
Upgrades a service from Intelligent Messaging Mail III to Intelligent Messaging Mail IIIP.
comp (Executable)
This program compresses data for delivery to another mta.
compress (Executable)
Used by the Intelligent Messaging Mail service to compress messages that are large, or are to be sent over slow links.
uncompress (Executable)
Used by the Intelligent Messaging Mail service to decompress messages.
convert (Script)
Called by the Backup/Restore utility. It generates a set of log files called UPn.log.
envelopes.sh (Script)
Called from manly. This script lists the mail envelopes in the databases found in any of the mail service subdirectories. It also lists the attachments found, and their sizes. This shell is called by VINES Assistant.
gcost (Executable)
Determines the network cost of sending a message to its destination.
Jan0.log (ASCII)
Used during upgrades to intelligent messaging. This information is then copied to the MSn.log file. Jan0.log is then deleted.
mailbox.sh (Script)
Restores mailboxes to a server running Intelligent Messaging III. This shell is called by VINES Assistant.
MN0.log, MN1.log (ASCII)
Log files for manly, the mail service analysis utility.
MS0.log, MS1.log (ASCII)
Intelligent Messaging Mail service rolling log files.
MT0.log, MT1.log (ASCII)
Message Transfer Agent rolling log files.
msdirpath (ASCII)
Contains the path of the Mail service mailbox. Typically, the file contains the string "@n/MS", where n is a hexadecimal number between 0x0 and 0xc.
mta (Executable)
Message Transfer Agent. This process moves messages to their destination. This executable is linked to bms.
rpt (Executable)
Mail service log report generator. This program reads one of the logs in the directory, and translates certain error codes into readable English.
An example command line follows:
rpt MS0.log > out
SHAREDMB (ASCII)
Enables the shared mailbox support feature on Intelligent Messaging Mail services.
vnm.err (ASCII)
VINES Mail error text.
wastebasket.sh (Script)
Cleans all the old messages out of the wastebaskets of the local Mail service. This shell is called by VINES Assistant.
cleanup (Script)
Standard Banyan file, as described in Table 1-2.
cores (Directory)
Standard Banyan directory, as described in Table 1-2.
create (Script)
Standard Banyan file, as described in Table 1-2.
destroy (Script)
Standard Banyan file, as described in Table 1-2.
dumpscript (Script)
Standard Banyan file, as described in Table 1-2.
startup (Script)
Standard Banyan file, as described in Table 1-2.
svclog6 (ASCII)
Standard Banyan file, as described in Table 1-2.
SvcLogs (ASCII)
Standard Banyan file, as described in Table 1-2.
SvcTable (ASCII)
Standard Banyan file, as described in Table 1-2.
/disk1/banyan/bms/util
The utilities in the /disk1/banyan/bms/util directory are as follows:
compact (Executable)
Compact utility.
dump (Executable)
Dump utility, which turns database files into a readable format.
goodbad (Executable)
Verifies the integrity of a database file.
rebuild (Executable)
Rebuild utility.