gecko-dev/mstone/doc/MailStone.html

1830 строки
165 KiB
HTML

<html><head>
<title>Messaging Server Administrator's Guide: Mailstone Utility
</title>
<SCRIPT LANGUAGE="JavaScript">
// for older browsers, will just replace the document
function showHideLayerSwitch(ignored)
{
document.location = 'kingtoc.htm';
}
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.2">
var visibleVar="null";
if (navigator.appName == "Netscape") {
layerStyleRef="layer.";
layerRef="document.layers";
styleSwitch="";
visibleVar="show";
} else {
layerStyleRef="layer.style.";
layerRef="document.all";
styleSwitch=".style";
visibleVar="visible";
}
function showHideLayerSwitch(layerName)
{
if (eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility == visibleVar')) {
hideLayer(layerName);
} else {
showLayer(layerName);
}
}
function showLayer(layerName)
{
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"');
}
function hideLayer(layerName)
{
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"');
}
</SCRIPT>
<STYLE TYPE="text/css">
#header {
z-index: 5;
visibility: visible;
}
#pulldownMenu {
position: absolute;
z-index: 10;
visibility: hidden;
left: 182px;
top: 55px;
}
</STYLE>
<DIV BGCOLOR="#000000" id="pulldownMenu" >
<SCRIPT>
function onMouseOut()
{
visibility="hide";
}
</SCRIPT>
<TABLE BORDER=1 CELLPADDING=4 CELLSPACING=0> <TR> <TD BGCOLOR="#9999CC">
<FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>
</TD> </TR> </TABLE> </DIV>
</SCRIPT>
</HEAD>
<BODY LINK="#666699" VLINK="#666699" ALINK="#333366" BGCOLOR="#FFFFFF"><FONT FACE="PrimaSans BT, Verdana,
Sans-Serif" Size=-1>
<a name="TOP">
<TABLE CELLPADDING=10 CELLSPACING=2 border=0 WIDTH=100% BGCOLOR="#CCCCCC">
<TR><TD><TABLE CELLPADDING=5 CELLSPACING=2 border=0>
<TR>
<TD> &nbsp
</TD>
</TR>
</TABLE>
</TD></TR>
</TABLE>
<BR> <BR>
</a>
</DIV>
</P>
<CENTER>
<TABLE CELLPADDING=2 CELLSPACING=2 WIDTH="85%" BORDER=0>
<TR>
<TD><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" Size=-1><A NAME="Mailstone Utility
"></A><A NAME="1045828"><FONT FACE="Palatino, Serif" SIZE="+2"> <B>
Mailstone Utility
</FONT></B><P><A NAME="1045829">
This document describes how to use Mailstone 4.1 for capacity planning and testing on Netscape Messaging Server and other mail servers. </P></A>
<A NAME="1017268">
This document contains the following sections: </P></A>
<ul><P><A NAME="1011972"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><a href="stone.htm#1011979">About the Mailstone Utility</a> </FONT></LI></A><A NAME="1036539"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><a href="stone.htm#1022848">Installing Mailstone</a> </FONT></LI></A><BR><A NAME="1036546"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><a href="stone.htm#1024558">Setting Up Mailstone Tests</a> </FONT></LI></A><BR><A NAME="1037932"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><a href="stone.htm#1061767">Synchronizing Client Machines</a> </FONT></LI></A><BR><A NAME="1036553"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><a href="stone.htm#1049983">Running Mailstone</a> </FONT></LI></A><BR><A NAME="1036567"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><a href="stone.htm#1061822">Reviewing Test Results</a> </FONT></LI></A><BR><A NAME="1062165"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><a href="stone.htm#1061888">Detailed Protocol Test Steps</a></FONT></LI></A><BR><A NAME="1036574"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><a href="stone.htm#1043075">Removing Mailstone</a> </FONT></LI></A><BR></ul><BR></TD></TR><TR> <TD BGCOLOR="#9999CC"><A HREF="#top"><IMG SRC="up.gif" BORDER=0></A><A NAME="About the Mailstone Utility"></A><A NAME="1011979"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="white"> <B>About the Mailstone Utility</B></FONT></A></TD></TR><TR><TD><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" Size=-1><A NAME="1011982">
The Mailstone utility is a stress-testing tool that system administrators can use to determine Netscape Messaging Server capacity by testing how the server performs under load. You can use Mailstone on all Unix platforms supported by Netscape Messaging Server and also on Windows NT. </P></A>
<A NAME="1023527">
Mailstone can also be used to similarly test and compare other mail servers that support SMTP, POP, and IMAP protocols. </P></A>
<A NAME="1023159">
Mailstone simulates tasks that users might perform. It lets you simulate worst-case loads--for example, Monday at 9 a.m., when most users are checking their mail and sending and receiving messages--so you can determine what maximum load your messaging server can take. </P></A>
<A NAME="1037127">
Mailstone can be used to test the load-carrying capabilities of a system configuration before it is put into use. Based on how well a mail server handles the loads generated by Mailstone, you can determine whether your current deployment configuration is adequate, or whether you need additional or more powerful server machines. </P></A>
<A NAME="1037128">
Mailstone measures both throughput and response time of the mail server being tested. Mailstone reports the number and size of messages sent, the rate at which messages (and bytes) pass through the system, and the average time taken to both transmit a message to the server and receive a message from the server. Mailstone can present its results in both text and graphical format. </P></A>
<A NAME="1023254">
Mailstone is run on a client machine (referred to as <em>testmaster</em> in these instructions). </P></A>
<ul><P><A NAME="1030719"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">In Unix environments, the test can be configured to include additional client machines (referred to as <I>testclients</I> in these instructions). These additional clients can be any supported Unix machine. The testmaster machine can also function as a testclient machine.</FONT></LI></A><P><A NAME="1030720"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">In NT environments, Mailstone runs only on the single testmaster machine which acts as both testmaster and testclient. </FONT></LI></A></ul><A NAME="1030721">
The Mailstone testbed consists of the testmaster machine, any testclient machines, the Messaging Server to be tested, plus the network configuration and Directory Server. (See <a href="stone.htm#1044600">Figure 0.1</a>.) </P></A>
<A NAME="1044600">
<P><B>Figure 0.1 Mailstone Testbed (Unix environment)<p><img src="stone01.gif">
</B></P>
</A><A NAME="1011987">
When Mailstone is run on the testmaster machine using the <FONT FACE="courier, courier new, monospace">mstone</FONT> command the following happens:</P></A>
<ol>
<P><a name="1011988">
<B><FONT FACE="ARIAL"><LI></FONT></B>Command line arguments are combined with configuration files to define the test. </LI>
</a>
<P><a name="1011990">
<B><FONT FACE="ARIAL"><LI></FONT></B>The test processes are executed across the testbed. (In Unix environments <FONT FACE="courier, courier new, monospace">rsh</FONT> is used to run the processes on the other client machines.)</LI>
</a>
<P><a name="1011991">
<B><FONT FACE="ARIAL"><LI></FONT></B>Results are collected and displayed on the HTML results page.</LI>
</a>
</ol>
<BR></TD></TR><TR> <TD BGCOLOR="#9999CC"><A HREF="#top"><IMG SRC="up.gif" BORDER=0></A><A NAME="Installing Mailstone"></A><A NAME="1022848"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="white"> <B>Installing Mailstone</B></FONT></A></TD></TR><TR><TD><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" Size=-1><A NAME="1038215">
You can install Mailstone at the same time as Messaging Server by choosing Mailstone as one of the Messaging Server components to be installed. See your Messaging Server installation instructions for details on how to do this. The Mailstone software that is installed at the same time as Messaging Server is a version for the same operating system used by Messaging Server. </P></A>
<A NAME="1038216">
The instructions in this section describe how to install an all-platforms version of Mailstone separate from a Messaging Server installation. This Mailstone version can be used to test Messaging Server or any other Mailstone-compatible email server. (If you initially install Mailstone as part of Messaging Server installation and later want to install the all-platforms version of Mailstone, see <a href="stone.htm#1038301">Reinstalling Mailstone</a>.)</P></A>
<A NAME="1023635">
To transfer, extract, and install the all-platforms version of the Mailstone archive files follow these steps:</P></A>
<ol>
<P><a name="1023684">
<B><FONT FACE="ARIAL"><LI></FONT></B>Locate the Mailstone archive file for your platform. </LI>
</a>
<P><A NAME="1046706">
(The contents of both files are identical. Different file types are provided for
convenience.)
</A></P><P><A NAME="1023569">
<B> For Unix</B> the file is <FONT FACE="courier, courier new, monospace">mailstone-4.15.tar.gz</FONT>.
</A></P><P><A NAME="1023570">
<B> For Windows NT </B>the file is <FONT FACE="courier, courier new, monospace">mailstone-4.15.zip</FONT>.
</A></P><P><a name="1023572">
<B><FONT FACE="ARIAL"><LI></FONT></B>Choose the testmaster machine on which you will run Mailstone and copy the archive file to a temporary installation directory, such as <FONT FACE="courier, courier new, monospace">/tmp</FONT>, on that machine.</LI>
</a>
<P><A NAME="1046733">
The testmaster machine can be the same machine as the server being tested, or a
different machine.
</A></P><P><a name="1023573">
<B><FONT FACE="ARIAL"><LI></FONT></B>Go to the testmaster directory immediately above where you want the Mailstone software to be installed. </LI>
</a>
<P><A NAME="1046735">
For example, if you go to <FONT FACE="courier, courier new, monospace">/usr/netscape</FONT> Mailstone will be installed in <br>
<FONT FACE="courier, courier new, monospace">/usr/netscape/mailstone</FONT>.
</A></P><P><a name="1034278">
<B><FONT FACE="ARIAL"><LI></FONT></B>Extract the Mailstone files.</LI>
</a>
<P><A NAME="1023574">
<B>In Unix environments</B>:
</A></P><P><A NAME="1023983">
<FONT FACE="courier, courier new, monospace">gunzip -c /tmp/mailstone-4.15.tar.gz | tar xf -
</FONT>
</A></P><P><A NAME="1038482">
<B>In Windows NT environments:
</B>
</A></P><P><A NAME="1037204">
<FONT FACE="courier, courier new, monospace">unzip c:\temp\mailstone-4.15.zip
</FONT>
</A></P><P><A NAME="1038535">
The extraction process creates the required Mailstone files and places them in a
<FONT FACE="courier, courier new, monospace">mailstone</FONT> directory and associated subdirectories.
</A></P><P><A NAME="1024217">
See <a href="stone.htm#1091108">Table 0.2</a> for a description of the main Mailstone files.
</A></P></ol>
<A NAME="1023544">
Once Mailstone is installed, you set up (configure) each test as described in <a href="stone.htm#1024558">Setting Up Mailstone Tests</a> and then run the <FONT FACE="courier, courier new, monospace">mstone</FONT> program as described in <a href="stone.htm#1061767">Synchronizing Client Machines</a>. </P></A>
<A NAME="Reinstalling Mailstone"></A><A NAME="1038301"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
Reinstalling Mailstone</B></FONT></A><P>
<A NAME="1038302">
If you initially install Mailstone as part of Messaging Server installation and later want to install the all-platforms version of Mailstone, or you want to reinstall Mailstone for any other reason, you must first perform the following steps before using the installation procedure described above.</P></A>
<ol>
<P><a name="1038311">
<B><FONT FACE="ARIAL"><LI></FONT></B>Go to the <FONT FACE="courier, courier new, monospace">mailstone</FONT> directory. </LI>
</a>
<P><A NAME="1038313">
For example: <FONT FACE="courier, courier new, monospace">cd /usr/netscape/mailstone</FONT>.
</A></P><P><a name="1044122">
<B><FONT FACE="ARIAL"><LI></FONT></B>Run the cleanup program to remove installed files. </LI>
</a>
<P><A NAME="1049208">
Type: <FONT FACE="courier, courier new, monospace">./cleanup</FONT>.
</A></P><P><a name="1049209">
<B><FONT FACE="ARIAL"><LI></FONT></B>Rename the <FONT FACE="courier, courier new, monospace">mailstone/conf</FONT> directory. </LI>
</a>
<P><A NAME="1049231">
Type: <FONT FACE="courier, courier new, monospace">mv conf conf.save</FONT>.
</A></P></ol>
<A NAME="1049237">
After you install the new version of Mailstone, you can copy any needed files from <FONT FACE="courier, courier new, monospace">conf.save</FONT> into the new <FONT FACE="courier, courier new, monospace">conf</FONT> directory.</P></A>
<BR></TD></TR><TR> <TD BGCOLOR="#9999CC"><A HREF="#top"><IMG SRC="up.gif" BORDER=0></A><A NAME="Setting Up Mailstone Tests"></A><A NAME="1024558"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="white"> <B>Setting Up Mailstone Tests</B></FONT></A></TD></TR><TR><TD><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" Size=-1><A NAME="1040646">
To configure for a Mailstone test run, you typically perform the following steps:</P></A>
<ol>
<P><a name="1048787">
<B><FONT FACE="ARIAL"><LI></FONT></B>Go to the <FONT FACE="courier, courier new, monospace">mailstone</FONT> directory (e.g. <FONT FACE="courier, courier new, monospace">cd /usr/netscape/mailstone</FONT>).</LI>
</a>
<P><a name="1091548">
<B><FONT FACE="ARIAL"><LI></FONT></B>Run <FONT FACE="courier, courier new, monospace">setup config</FONT>. This will display the LICENSE and ask if you agree to it. </LI>
</a>
<P><a name="1048788">
<B><FONT FACE="ARIAL"><LI></FONT></B>Answer <FONT FACE="courier, courier new, monospace">yes</FONT> to set up an initial configuration.</LI>
</a>
<P><a name="1048800">
<B><FONT FACE="ARIAL"><LI></FONT></B>Enter the name of the mail server.</LI>
</a>
<P><a name="1049417">
<B><FONT FACE="ARIAL"><LI></FONT></B>Enter the test user account name and password. The user account names should be separate from any actual users and should be unique to the server being tested (e.g. <FONT FACE="courier, courier new, monospace">mailhost-test</FONT>).</LI>
</a>
<P><A NAME="1049431">
By default, the user number will be appended to the end of the user account name. If
the name contains <FONT FACE="courier, courier new, monospace">%ld</FONT>, then this will be replaced with the user number. If the
password contains<FONT FACE="courier, courier new, monospace"> %ld</FONT>, then it will be replaced with the user number (otherwise, no
numbering will be used in the password).
</A></P><P><a name="1091565">
<B><FONT FACE="ARIAL"><LI></FONT></B>Enter the test client machine names. For NT, only <FONT FACE="courier, courier new, monospace">localhost</FONT> is allowed.</LI>
</a>
<P><a name="1091566">
<B><FONT FACE="ARIAL"><LI></FONT></B>Answer <FONT FACE="courier, courier new, monospace">yes</FONT> to create an LDIF file for users and a broadcast account.</LI>
</a>
<P><a name="1091567">
<B><FONT FACE="ARIAL"><LI></FONT></B>Answer <FONT FACE="courier, courier new, monospace">yes</FONT> to view the new configuration file. Make any additional changes to <FONT FACE="courier, courier new, monospace">conf/general.html </FONT>with a text editor. See <a href="stone.htm#1026185">Configuring Test Execution</a> for details about adding clients and controlling test execution. To re-run the simple configuration editor, run <FONT FACE="courier, courier new, monospace">setup config</FONT>.</LI>
</a>
<P><a name="1048808">
<B><FONT FACE="ARIAL"><LI></FONT></B>Edit the contents of your System Data file to specify the system configuration data you want appended to test results. </LI>
</a>
<P><A NAME="1048811">
By default, this file is named <FONT FACE="courier, courier new, monospace">conf/general.html</FONT>. See <a href="stone.htm#1026893">System Data File
(general.html)</a>.
</A></P><P><a name="1044171">
<B><FONT FACE="ARIAL"><LI></FONT></B>On UNIX systems, make sure you can <FONT FACE="courier, courier new, monospace">rsh</FONT> to each client machine. You may have to edit the <FONT FACE="courier, courier new, monospace">~/.rhosts</FONT> files to enable permission.</LI>
</a>
<P><a name="1049956">
<B><FONT FACE="ARIAL"><LI></FONT></B>Run <FONT FACE="courier, courier new, monospace">setup</FONT> to copy messages and executables to test clients machines. If you encounter problems with configuration or access permissions, correct them and re-run <FONT FACE="courier, courier new, monospace">setup</FONT>.</LI>
</a>
<P><A NAME="1046744">
(Even though there are no additional testclient machines in Windows environments,
you must still run <FONT FACE="courier, courier new, monospace">setup</FONT> because the testmaster machine acts as a testclient
machine.)
</A></P><P><a name="1044150">
<B><FONT FACE="ARIAL"><LI></FONT></B>Important. If you are using more than one testclient machine, run <FONT FACE="courier, courier new, monospace">checktime</FONT> as described in <a href="stone.htm#1061767">Synchronizing Client Machines</a> to verify that the system clocks are within 2 seconds of each other.</LI>
</a>
</ol>
<A NAME="1048830">
If you add/change client machines or change test execution parameters, run <FONT FACE="courier, courier new, monospace">setup </FONT>again to copy the necessary files to each test client machine.</P></A>
<A NAME="Establishing the Test User Base"></A><A NAME="1049308"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
Establishing the Test User Base</B></FONT></A><P>
<A NAME="1049309">
In order to test a messaging server, you need to create a set of test users. During set up, you created an LDIF file that will create these users in the Directory Server used by Netscape Messaging Server. If you are testing another kind of mail server, you will have to use other means to create these accounts.</P></A>
<A NAME="1049331">
You then add the test LDIF file's entries to your directory. You can use either of the following to update the LDAP Directory from the <FONT FACE="courier, courier new, monospace">conf/mailhost.ldif</FONT> file:</P></A>
<ul><P><A NAME="1049332"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Database Manager</B>. The Netscape Directory Server provides a Database Manager that can be used to update the LDAP Directory as described in <a href="stone.htm#1049342">Adding Test Users with Database Manager</a>. </FONT></LI></A><P><A NAME="1049336"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>ldapmodify</B>. You can also use the <FONT FACE="courier, courier new, monospace">ldapmodify</FONT> command-line utility to update the LDAP Directory as described in <a href="stone.htm#1070712">Adding Test Users with ldapmodify</a>.</FONT></LI></A><P><A NAME="1049504"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Edit the database</B>. (Experts only) You can export the current database, append the new entries, and then import the new version. This is the fastest method and makes adding millions of users practical.</FONT></LI></A></ul><A NAME="1049340">
<B>Caution:</B> You should backup the Directory Server before making any changes. </P></A>
<A NAME="Adding Test Users with Database Manager"></A><A NAME="1049342"><FONT FACE="Palatino, Serif" SIZE="-1" COLOR="black"> <B>
Adding Test Users with Database Manager</B></FONT></A><P>
<A NAME="1049343">
You can use the Database Manager feature to add the test user account information in the <FONT FACE="courier, courier new, monospace">conf/mailhost.ldif</FONT> file to the LDAP Directory on your instance of Directory Server. </P></A>
<A NAME="1049344">
<B>Note:</B> This process will go faster if you first disable access logging on Directory Server. </P></A>
<A NAME="1049345">
<B>Directory Server 4.x</B>. To add test users with Directory Server version 4.x, follow these steps:</P></A>
<ol>
<P><a name="1049347">
<B><FONT FACE="ARIAL"><LI></FONT></B>Start up Netscape Console and log in.</LI>
</a>
<P><a name="1049349">
<B><FONT FACE="ARIAL"><LI></FONT></B>Open the Server Group containing the instance of Directory Server you want to use. </LI>
</a>
<P><a name="1049350">
<B><FONT FACE="ARIAL"><LI></FONT></B>Double-click the name of the Directory Server. </LI>
</a>
<P><a name="1049351">
<B><FONT FACE="ARIAL"><LI></FONT></B>Click the `Configuration' tab.</LI>
</a>
<P><a name="1049352">
<B><FONT FACE="ARIAL"><LI></FONT></B>Right-click Database and select the `Import' option. </LI>
</a>
<P><a name="1049353">
<B><FONT FACE="ARIAL"><LI></FONT></B>Enter the name of the file containing your LDIF modifications in the dialog box. </LI>
</a>
<P><A NAME="1049354">
For example, <FONT FACE="courier, courier new, monospace">/usr/netscape/mailstone/conf/mailhost.ldif</FONT>.
</A></P><P><a name="1049355">
<B><FONT FACE="ARIAL"><LI></FONT></B>Select `Append Data to Database'.</LI>
</a>
<P><a name="1049356">
<B><FONT FACE="ARIAL"><LI></FONT></B>Select `Add Only'.</LI>
</a>
<P><a name="1049357">
<B><FONT FACE="ARIAL"><LI></FONT></B>Select `Continue on Error'.</LI>
</a>
<ul><A NAME="1049359">
<P><B>Caution:</B> If you are using the Database Manager to update a Netscape Directory
Server be sure to use Directory Server's <B>Append Data</B> and <B>Add Only </B>options so as
not to overwrite any other entries.
</P>
</A>
</ul><P><a name="1049492">
<B><FONT FACE="ARIAL"><LI></FONT></B>Click `OK'.</LI>
</a>
</ol>
<A NAME="1070734">
See <a href="stone.htm#1048564">Appendix</a> for steps for adding users under Directory 3.x or using <FONT FACE="courier, courier new, monospace">ldapmodify</FONT>.</P></A>
<A NAME="Synchronizing Client Machines"></A><A NAME="1061767"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
Synchronizing Client Machines</B></FONT></A><P>
<A NAME="1061768">
For accurate test results it is important that the testmaster and all of the testclient machines show exactly the same time on their system clocks. If at all possible, the times should be identical to less than a second. </P></A>
<A NAME="1061769">
<B>Windows NT Note:</B> Since you only have one machine in a Windows NT environment, synchronization as described in this section is not necessary.</P></A>
<A NAME="1061770">
To check for time consistency run the <FONT FACE="courier, courier new, monospace">checktime</FONT> utility. The <FONT FACE="courier, courier new, monospace">checktime</FONT> utility uses the following syntax:</P></A>
<pre><A NAME="1061771"><FONT FACE="courier, courier new, monospace">checktime [-w <I><FONT FACE="courier, courier new, monospace">machine</FONT></I>.tbd]</FONT></A><P></pre><A NAME="1061772">
By default, the <FONT FACE="courier, courier new, monospace">checktime</FONT> utility uses testbed data contained in the machine configuration file (<FONT FACE="courier, courier new, monospace">all.tbd</FONT>). If you wish to use a different machine configuration file, you specify that file on the command line with the <FONT FACE="courier, courier new, monospace">-w</FONT> option. </P></A>
<A NAME="1061773">
The <FONT FACE="courier, courier new, monospace">checktime</FONT> utility reports the time for each system. If there are discrepancies of more than a second you need to adjust the system clocks. </P></A>
<ul><P><A NAME="1061774"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">The best way to synchronize system clocks is with a utility that uses the Network Time Protocol (NTP) or an equivalent protocol. Two such utilities are <FONT FACE="courier, courier new, monospace">rdate</FONT> or <FONT FACE="courier, courier new, monospace">timeslave</FONT>.</FONT></LI></A><P><A NAME="1061775"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">If you do not have an NTP utility, Mailstone provides the <FONT FACE="courier, courier new, monospace">timesync</FONT> utility. Note that the <FONT FACE="courier, courier new, monospace">timesync</FONT> utility will only work with operating systems that support setting seconds with the <FONT FACE="courier, courier new, monospace">date</FONT> command. </FONT></LI></A></ul><A NAME="1061776">
The <FONT FACE="courier, courier new, monospace">timesync</FONT> utility is stored in the <FONT FACE="courier, courier new, monospace">mailstone</FONT> directory. You must run <FONT FACE="courier, courier new, monospace">timesync</FONT> as <FONT FACE="courier, courier new, monospace">root</FONT>, and you must have <FONT FACE="courier, courier new, monospace">root rsh</FONT> permissions. The <FONT FACE="courier, courier new, monospace">timesync</FONT> utility uses the following syntax:</P></A>
<pre><A NAME="1061777"><FONT FACE="courier, courier new, monospace">timesync [-w <I><FONT FACE="courier, courier new, monospace">machine</FONT></I>.tbd]</FONT></A><P></pre><A NAME="1061778">
By default, the <FONT FACE="courier, courier new, monospace">timesync</FONT> utility uses testbed data contained in the machine configuration file named <FONT FACE="courier, courier new, monospace">all.tbd</FONT>. If you wish to use a different machine configuration file, you specify that file on the command line with the <FONT FACE="courier, courier new, monospace">-w</FONT> option. </P></A>
<BR></TD></TR><TR> <TD BGCOLOR="#9999CC"><A HREF="#top"><IMG SRC="up.gif" BORDER=0></A><A NAME="Running Mailstone"></A><A NAME="1049983"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="white"> <B>Running Mailstone</B></FONT></A></TD></TR><TR><TD><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" Size=-1><A NAME="1049984">
To run a Mailstone test:</P></A>
<ol>
<P><a name="1091576">
<B><FONT FACE="ARIAL"><LI></FONT></B>Go to the <FONT FACE="courier, courier new, monospace">mailstone</FONT> directory (e.g. <FONT FACE="courier, courier new, monospace">cd /usr/netscape/mailstone</FONT>).</LI>
</a>
<P><a name="1049988">
<B><FONT FACE="ARIAL"><LI></FONT></B>If you have additional testclient machines in a Unix environment, synchronize them as described in <a href="stone.htm#1061767">Synchronizing Client Machines</a>.</LI>
</a>
<P><a name="1049997">
<B><FONT FACE="ARIAL"><LI></FONT></B>Run the <FONT FACE="courier, courier new, monospace">mstone</FONT> command using the syntax:</LI>
</a>
<P><A NAME="1049998">
<FONT FACE="courier, courier new, monospace">mstone </FONT><I><FONT FACE="courier, courier new, monospace">testname</FONT></I><FONT FACE="courier, courier new, monospace"> [</FONT><I><FONT FACE="courier, courier new, monospace">options</FONT></I><FONT FACE="courier, courier new, monospace">]
</FONT>
</A></P><P><A NAME="1049999">
where <I><FONT FACE="courier, courier new, monospace">testname</FONT></I> is the test workload file. For example:
</A></P><P><A NAME="1050000">
<FONT FACE="courier, courier new, monospace">mstone popsmtp
</FONT>
</A></P><P><a name="1061686">
<B><FONT FACE="ARIAL"><LI></FONT></B>View the results by copying the display URL into a browser.</LI>
</a>
</ol>
<A NAME="1050002">
You can specify command line options as needed. Running <FONT FACE="courier, courier new, monospace">mstone</FONT> with no arguments will show the most common options.</P></A>
<A NAME="1050153">
Options specified on the command line override any corresponding configuration parameters in a configuration file. For example, if the configuration file sets the test run time to two hours, but you only want to make a brief trial run of 10 minutes to make sure that the configuration is correct, you would enter this:</P></A>
<pre><A NAME="1050003"><FONT FACE="courier, courier new, monospace">mstone popsmtp -t 10m</FONT></A><P></pre><A NAME="1050007">
<a href="stone.htm#1050011">Table 0.1</a> describes the command line options you can use with the <FONT FACE="courier, courier new, monospace">mstone</FONT> command. </P></A>
<A NAME="1050070">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="mstone command line options
"></A><A NAME="1050011"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.1 mstone command line options
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="Option"></A><A NAME="1050015"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Option</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1050017"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1050019"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">-a </FONT><I><FONT FACE="courier, courier new, monospace">addgraphs
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1050021"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify additional graph sections.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1050023"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">-b </FONT><I><FONT FACE="courier, courier new, monospace">banner
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1050025"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the banner (title) to be displayed as part of test results,
where <I><FONT FACE="courier, courier new, monospace">banner</FONT></I> is the actual text you want displayed enclosed
by quotation marks. For example:<br>
<FONT FACE="courier, courier new, monospace">-b 'POP reads (full store)'
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1050027"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">-c </FONT><I><FONT FACE="courier, courier new, monospace">configfile
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1050029"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Back compatibility with Mailstone 4.0/4.1.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1050031"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">-d
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1050033"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Debug mode. Large amounts of information is output to the
stderr log.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1050035"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">-l </FONT><I><FONT FACE="courier, courier new, monospace">load
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1050037"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the number of clients to use.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1050039"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">-m </FONT><I><FONT FACE="courier, courier new, monospace">machinefile
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1050041"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Back compatibility with Mailstone 4.0/4.1.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1050043"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">-n `</FONT><I><FONT FACE="courier, courier new, monospace">notes</FONT></I><FONT FACE="courier, courier new, monospace">'
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1050045"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify additional notes (`comments' in the CONFIG section).
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1050047"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">-r </FONT><I><FONT FACE="courier, courier new, monospace">ramptime
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1050049"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the ramp time, where <I><FONT FACE="courier, courier new, monospace">ramptime</FONT></I> is a number and
time unit designation. For example, to set a ramp time of 10
seconds: <FONT FACE="courier, courier new, monospace">-r 10s
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1050051"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">-s </FONT><I><FONT FACE="courier, courier new, monospace">sysconfig
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1050053"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the system data file.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1050055"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">-t </FONT><I><FONT FACE="courier, courier new, monospace">time
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1050057"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the length of time the test is to run, where <I><FONT FACE="courier, courier new, monospace">time</FONT></I> is a
number and time unit designation. For example, to set a test
run of 20 minutes: <FONT FACE="courier, courier new, monospace">-t 20m
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1050059"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">-v
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1050061"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Be more verbose during report processing.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1050063"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">-w </FONT><I><FONT FACE="courier, courier new, monospace">workfile
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1050065"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify additional workload files.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1050067"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><I><FONT FACE="courier, courier new, monospace">PARAM</FONT></I><FONT FACE="courier, courier new, monospace">=</FONT><I><FONT FACE="courier, courier new, monospace">value
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1050069"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Set attribute PARAM in the CONFIG section.
</FONT></A><BR></td>
</tr>
</TABLE></P></A>
<A NAME="Setting Up Test Mailboxes "></A><A NAME="1050211"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
Setting Up Test Mailboxes </B></FONT></A><P><A NAME="1050212">
Even though you have created test users, the Messaging Server does not create each mailbox until it is accessed. One way to create mailboxes for the test users in your LDAP directory is by simply running a Mailstone test. </P></A>
<A NAME="1050213">
To create mailboxes for your test users using the script, follow these steps:</P></A>
<ol>
<P><a name="1050217">
<B><FONT FACE="ARIAL"><LI></FONT></B>Run the <FONT FACE="courier, courier new, monospace">pop</FONT> test as follows:</LI>
</a>
<P><A NAME="1050219">
<FONT FACE="courier, courier new, monospace">./mstone pop -t 1m
</FONT>
</A></P><P><A NAME="1050220">
This will access each login and force the mailbox to be created.
</A></P><P><a name="1050221">
<B><FONT FACE="ARIAL"><LI></FONT></B>Look at how many logins were achieved in one minute and re-run with enough time to get to all mailboxes. </LI>
</a>
</ol>
<A NAME="Checking Results in Mid Test"></A><A NAME="1061810"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
Checking Results in Mid Test</B></FONT></A><P>
<A NAME="1061811">
During a long test run, you can display the current results by running the <FONT FACE="courier, courier new, monospace">process</FONT> command. For example:</P></A>
<pre><A NAME="1061812"><FONT FACE="courier, courier new, monospace">process</FONT></A><P></pre><A NAME="1061813">
The <FONT FACE="courier, courier new, monospace">process</FONT> command does not stop or abort a test run; it simply displays the results of the current test up to the point the command was run. In other words, if you run <FONT FACE="courier, courier new, monospace">process</FONT> after 45 minutes, you will see results based on the first 45 minutes of data. </P></A>
<A NAME="1061814">
The <FONT FACE="courier, courier new, monospace">process</FONT> command can be used early in a long test run to make sure that it is functioning properly with the correct configuration parameters.</P></A>
<A NAME="1061815">
<B>Note:</B> Do not run <FONT FACE="courier, courier new, monospace">process</FONT> when the test run has less than a few minutes to go before finishing. </P></A>
<A NAME="Redisplaying Old Test Results"></A><A NAME="1061816"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
Redisplaying Old Test Results</B></FONT></A><P>
<A NAME="1061817">
You can also use the <FONT FACE="courier, courier new, monospace">process</FONT> command to reprocess and display older test runs by specifying the data directory on the command line. For example, to reprocess the results of a test that was run on July 14, 1999 at 14:31 (24 hour clock) which are stored in the <FONT FACE="courier, courier new, monospace">results/19990714.1431</FONT> directory, you would enter this:</P></A>
<pre><A NAME="1061818"><FONT FACE="courier, courier new, monospace">process 19990714.1431</FONT></A><P></pre><A NAME="Aborting a Test Run"></A><A NAME="1061819"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
Aborting a Test Run</B></FONT></A><P>
<A NAME="1061820">
To stop a test run before it has completed, enter Control-C or use any other standard method of halting an ongoing process. Then run <FONT FACE="courier, courier new, monospace">process</FONT> to generate a report up to the point of termination.</P></A>
<BR></TD></TR><TR> <TD BGCOLOR="#9999CC"><A HREF="#top"><IMG SRC="up.gif" BORDER=0></A><A NAME="Reviewing Test Results"></A><A NAME="1061822"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="white"> <B>Reviewing Test Results</B></FONT></A></TD></TR><TR><TD><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" Size=-1><A NAME="1061823">
All of the results files from each Mailstone test run are placed in a time-stamped subdirectory of the <FONT FACE="courier, courier new, monospace">results</FONT> directory. For example, the results of a test run on July 14, 1999 at 14:31 (24 hour clock) are stored in a subdirectory named:<FONT FACE="courier, courier new, monospace"> results/19990714.1431</FONT>. </P></A>
<A NAME="The Results Page"></A><A NAME="1061824"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
The Results Page</B></FONT></A><P>
<A NAME="1061825">
Mailstone displays the results of a test run as an HTML page named <FONT FACE="courier, courier new, monospace">results.html</FONT>. There is one results file in each test run subdirectory.</P></A>
<A NAME="1061826">
An HTML-formatted index of all test runs is created and maintained in the <FONT FACE="courier, courier new, monospace">results/index.html</FONT> file. This file contains live links to the <FONT FACE="courier, courier new, monospace">results.html</FONT> files from every test run. </P></A>
<A NAME="1061830">
The top portion of a typical results file is shown in <a href="stone.htm#1061835">Figure 0.2</a>. (Your results will vary depending on how you configured your test run.)</P></A>
<A NAME="1061835">
<P><B>Figure 0.2 Example Mailstone test result page (top portion)<p><img src="stone02.gif">
</B></P>
</A><A NAME="1061836">
In this illustration:</P></A>
<ul><P><A NAME="1061837"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">The timestamp in the title "Netscape Mailstone Results 19991215.2009" gives the time of the test run. In this case, December 15, 1999, at 20:09 hours. </FONT></LI></A><P><A NAME="1061838"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">The headline "Wmap/Imap/Pop/Http/Smtp torture test" is the text that was specified for the <FONT FACE="courier, courier new, monospace">title</FONT> variable in the primary configuration file (<I><FONT FACE="courier, courier new, monospace">testname</FONT></I><FONT FACE="courier, courier new, monospace">.wld</FONT>).</FONT></LI></A><P><A NAME="1061839"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">The headline "Netscape Messaging Server 4.15" is the text that was specified for the <FONT FACE="courier, courier new, monospace">comments</FONT> variable in the primary configuration file (<I><FONT FACE="courier, courier new, monospace">testname</FONT></I><FONT FACE="courier, courier new, monospace">.wld</FONT>).</FONT></LI></A><P><A NAME="1061840"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">Under the line are general information about the test and links to additional supporting files. </FONT></LI></A><P><A NAME="1061842"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">Then a series of tables report the test results for each protocol. </FONT></LI></A></ul><A NAME="1061843">
Following the test result tables, the results file displays the tests results as a series of graphs. </P></A>
<A NAME="About the Report Columns"></A><A NAME="1070776"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
About the Report Columns</B></FONT></A><P><A NAME="1061853">
Mailstone breaks each client session into timers. Each timer tracks these variables: </P></A>
<ul><P><A NAME="1061864"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Tries</B>. A try is an attempt to perform an operation. The exact meaning of a try depends on the protocol and the timer. </FONT></LI></A><P><A NAME="1061865"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Errors</B>. An error indicates that a try did not succeed and the connection will be dropped. A line in the <FONT FACE="courier, courier new, monospace">stderr</FONT> log will indicate the cause of the error.</FONT></LI></A><P><A NAME="1061866"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Bytes</B> written. See explanation below.</FONT></LI></A><P><A NAME="1061867"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Bytes</B> read. See explanation below. </FONT></LI></A><P><A NAME="1062080"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Time</B>. This is the average transaction time for each try.</FONT></LI></A><P><A NAME="1062081"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>TMin</B>. This is the minimum time for a transaction. A TMin of exactly 0 means that no transactions were performed.</FONT></LI></A><P><A NAME="1062095"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>TMax</B>. This is the maximum time for a transaction. A TMax of exactly 0 means that no transactions were performed.</FONT></LI></A><P><A NAME="1062096"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>TStd</B>. This is the standard deviation of the transaction time.</FONT></LI></A></ul><A NAME="1062097">
The bytes written and read represent data bytes for the retrieve and submit timers, and protocol bytes for all others. For readability, values may be displayed in K bytes (1024), M bytes (1048576), and G bytes (1073741824) and rounded off.</P></A>
<A NAME="1061870">
The number of successful operations is <B>tries</B> minus <B>errors</B>.</P></A>
<A NAME="1061871">
Note that actual precision of the time values depends on the precision of the system clock and on statistical sampling. The times are displayed in seconds unless other units are shown.</P></A>
<A NAME="About the Report Rows"></A><A NAME="1070800"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
About the Report Rows</B></FONT></A><P><A NAME="1070760">
Each row in the report is a timer for a specific aspect of the protocol test. The one exception is "Total", which is a sum of the other timers. Details of how each timer is used in each protocol are found in <a href="stone.htm#1061888">Detailed Protocol Test Steps</a>. Here is the current list of possible timers: </P></A>
<ul><P><A NAME="1087448"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Total</B>. The total timer contains a sum of all the other timers.</FONT></LI></A><P><A NAME="1070761"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Connect</B>. The connect timer is the establishment of the TCP connection to the server. </FONT></LI></A><P><A NAME="1070762"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Banner</B>. The banner timer includes the message sent from the server when a connection is established.</FONT></LI></A><P><A NAME="1070763"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Login</B>. The login timer includes sending the user ID and password and having it verified.</FONT></LI></A><P><A NAME="1070764"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Command</B>. The command timer records all other protocol exchanges between the client and server.</FONT></LI></A><P><A NAME="1070765"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Submit</B>. The submit timer records message data sent to the server.</FONT></LI></A><P><A NAME="1070766"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Retrieve</B>. The retrieve timer records messages received from the server.</FONT></LI></A><P><A NAME="1070767"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Headers</B>. The headers timer records non-message HTML pages received from the server.</FONT></LI></A><P><A NAME="1070768"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Logout</B>. The logout timer records normally closed connections.</FONT></LI></A><P><A NAME="1070769"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Idle</B>. The idle timer records time that the client spent sleeping between requests to the server.</FONT></LI></A></ul><A NAME="1070771">
Some stages may be bypasses depending on the protocol and workload. For example, the SMTP protocol will only do a "Login" if <FONT FACE="courier, courier new, monospace">useEHLO</FONT> and <FONT FACE="courier, courier new, monospace">useAuthLogin</FONT> are enabled and the server supports AUTHLOGIN.</P></A>
<A NAME="1062123">
There are also some special timers. The <B>block</B> timer counts the number of workload command blocks that have been executed. This can help indicate problems with the workload files.</P></A>
<A NAME="1061872">
The mailstone results tables contain two sections: </P></A>
<ul><P><A NAME="1061873"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">The first section reports all the tries, errors, bytes read, bytes written, and the average time value per operation. </FONT></LI></A><P><A NAME="1061875"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">The second section lists all the operation rates. These are the values reported in the first table divided by the number of seconds that the test was run.</FONT></LI></A></ul><A NAME="Advanced Reports"></A><A NAME="1070822"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
Advanced Reports</B></FONT></A><P><A NAME="1070827">
You may want to extract additional information from the data that Mailstone collects. Summaries of all the information are available in two additional formats for further processing.</P></A>
<A NAME="1062142">
A text version of the results is also produced in <FONT FACE="courier, courier new, monospace">results/timestamp/results.txt</FONT>. This is the same information as the HTML report, but in a machine friendly format. All byte counts are in bytes. All time values are in seconds. The protocol name and timer are listed on each line of the result tables. The operation rate entries end in `<FONT FACE="courier, courier new, monospace">/s</FONT>'.</P></A>
<A NAME="1062145">
If advanced customization of test reporting is needed, import the <FONT FACE="courier, courier new, monospace">results/</FONT>timestamp<FONT FACE="courier, courier new, monospace">/clients-*.csv</FONT> files into a spreadsheet. The sum of all the <FONT FACE="courier, courier new, monospace">clients-*.csv</FONT> files should equal the results shown in Mailstone's report. </P></A>
<A NAME="1071816">
Further graphing can be done by importing the <FONT FACE="courier, courier new, monospace">results/</FONT>timestamp<FONT FACE="courier, courier new, monospace">/time-*.csv</FONT> files into a spreadsheet. Each file contains the sum of all client's timers over the duration of the test for one protocol.</P></A>
<A NAME="Additional Details"></A><A NAME="1070847"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
Additional Details</B></FONT></A><P><A NAME="1070779">
At the end of the <FONT FACE="courier, courier new, monospace">results.html</FONT> file under the heading "Details" is a description of the test environment. This is the text you specified in the system data file (<FONT FACE="courier, courier new, monospace">conf/general.html</FONT>). This allows you to capture all the configuration that is beyond the scope of Mailstone, but critical to what you are testing. Typical information to document includes: software version, operating system version, hardware capacities, network configuration, disk organization, caching configuration, and so on. A simple description is shown in <a href="stone.htm#1070787">Figure 0.3</a>.</P></A>
<A NAME="1070787">
<P><B>Figure 0.3 Example Mailstone test results page (test description)<p><img src="stone03.gif">
</B></P>
</A><A NAME="Test and Configuration Files"></A><A NAME="1049846"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
Test and Configuration Files</B></FONT></A><P>
<A NAME="1049847">
Mailstone files are stored in a directory named <FONT FACE="courier, courier new, monospace">mailstone</FONT> with several subdirectories. All programs must be run from the <FONT FACE="courier, courier new, monospace">mailstone</FONT> directory. These directories are created when the Mailstone files are extracted with <FONT FACE="courier, courier new, monospace">tar</FONT> (Unix) or are <FONT FACE="courier, courier new, monospace">unzip</FONT> (NT). File names are the same for both Unix and NT platforms, except that in some cases NT files have filename extensions such as <FONT FACE="courier, courier new, monospace">.exe</FONT> or <FONT FACE="courier, courier new, monospace">.bat</FONT>. </P></A>
<A NAME="1049851">
The main Mailstone files are listed in <a href="stone.htm#1091108">Table 0.2</a> (ancillary files are not listed). </P></A>
<A NAME="1090940">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="Important Mailstone Files
"></A><A NAME="1091108"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.2 Important Mailstone Files
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="File"></A><A NAME="1091112"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>File</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1091114"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1091116"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">mstone
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091118"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The command script that you run to perform a Mailstone test
as described in <a href="stone.htm#1061767">Synchronizing Client Machines</a>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1091123"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">cleanup
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091125"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>A script that removes Mailstone software and files from
testclient machines (Unix environments only).
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1091127"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">INSTALL
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091129"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>A text file giving additional information on installation
procedures.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1091131"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">process
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091133"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>A script to reprocess test results with different labels and
descriptions. This does not rerun the test.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1091135"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">README
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091137"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>A text file providing additional information about using
Mailstone.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1091139"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">setup
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091141"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>A script that prepares your systems for a test series by copying
the correct version of Mailstone software and the specified test
messages to the <FONT FACE="courier, courier new, monospace">/var/tmp</FONT> directories in Unix environments
or the <FONT FACE="courier, courier new, monospace">%TEMP%</FONT> directory in NT environments. See
<a href="stone.htm#1061767">Synchronizing Client Machines</a>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1091146"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">checktime
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091148"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>A utility that checks the current system time on all machines
that are part of the test. (Unix environments only). See
<a href="stone.htm#1061767">Synchronizing Client Machines</a>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1091153"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">timesync
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091155"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>A utility the synchronizes the system time on all machines that
are part of the test. (Unix environments only). See
<a href="stone.htm#1061767">Synchronizing Client Machines</a>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1091160"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">conf/general.html
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091162"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The system data file that describes the system configuration.
The contents of <FONT FACE="courier, courier new, monospace">general.html</FONT> are appended to the test
result output. See <a href="stone.htm#1026893">System Data File (general.html)</a>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1091167"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">conf/general.wld
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091169"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The general configuration file you use to specify configuration
parameters for the test as a whole. See <a href="stone.htm#1035278">General Configuration
File (general.wld)</a>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1091186"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">conf/*.wld
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091188"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The workload configuration files you use to specify tests. See
<a href="stone.htm#1025634">Workload Configuration File (testname.wld)</a>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1091193"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">conf/sample.wld
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091195"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>A workload file with examples of all sections and attributes.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1091197"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">data/*.msg
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1091199"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The "filler" message bodies that Mailstone uses when it sends
messages during testing. See <a href="stone.htm#1071397">Test Messages</a>.
</FONT></A><BR></td>
</tr>
</TABLE></P></A>
<A NAME=" Configuring Test Execution"></A><A NAME="1026185"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
Configuring Test Execution</B></FONT></A><P>
<A NAME="Configuration Files"></A><A NAME="1048843"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
Configuration Files</B></FONT></A><P><A NAME="1048855">
Configuration files describe both how the test will be run (e.g. what are the client machines and client counts) and the test itself. A number of test configurations are supplied and you can add more test configurations as needed. All configuration files are stored in the conf directory.</P></A>
<A NAME="1048856">
Each configuration files is structured into sections using common XML notation. A section begins with a type tag and ends with a matching closing tag. Each section can appear multiple times. </P></A>
<A NAME="1079309">
Within a section, each line specifies an attribute name and then its value. Some attributes can appear more than once. A `#' (pound sign) indicates a comment to the end of the line. Lines can be continued by ending in a `\' (back slash). Initial whitespace is ignored (except for line continuations). </P></A>
<A NAME="1079336">
Examples of all section types and all attributes are in <FONT FACE="courier, courier new, monospace">conf/sample.wld</FONT>. Here is an example CONFIG section demonstrating the line formatting:</P></A>
<pre><A NAME="1079310"><FONT FACE="courier, courier new, monospace">&lt;CONFIG&gt;<br> title \ # title of this test<br>POP reads<br><br># blank lines and comment lines don't matter<br> #telemetry 1 # uncomment this to enable telemetry logs<br>&lt;/CONFIG&gt;</FONT></A><P></pre><A NAME="1048858">
All the details of test execution are performed on the `testmaster' machine. The following section types control test execution: CONFIG, CLIENT, PRETEST, MONITOR, POSTTEST, and GRAPH. All other section types are protocol tests.</P></A>
<A NAME="1079306">
Configuration files can include other configuration files using <br><FONT FACE="courier, courier new, monospace">&lt;include conf/</FONT><I><FONT FACE="courier, courier new, monospace">filename</FONT></I><FONT FACE="courier, courier new, monospace">.wld&gt;</FONT>. This allows all the general configuration information to be kept in one file and not to have to be repeated in each test workload. A section must be completely contained in a single file.</P></A>
<A NAME="1030837">
There are different kinds of configuration files:</P></A>
<ul><P><A NAME="1030883"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>General</B>. The general configuration file specifies parameters that apply to all your Mailstone tests. Each test includes <FONT FACE="courier, courier new, monospace">conf/general.wld</FONT> to define common parameters. The mailstone utilities <FONT FACE="courier, courier new, monospace">setup</FONT>, <FONT FACE="courier, courier new, monospace">cleanup</FONT>, <FONT FACE="courier, courier new, monospace">checktime</FONT>, and <FONT FACE="courier, courier new, monospace">timesync</FONT> also read <FONT FACE="courier, courier new, monospace">conf/general.wld</FONT> for test client machines and test account information. See <a href="stone.htm#1035278">General Configuration File (general.wld)</a>. </FONT></LI></A><P><A NAME="1031229"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Workload</B>. The workload configuration file specifies the protocols to be tested, the attributes for each protocol, and the test messages to be used. By default, workload configuration files use the filename extension <FONT FACE="courier, courier new, monospace">.wld</FONT>. Mailstone provides sample workload files for different kinds of tests: <FONT FACE="courier, courier new, monospace">imap.wld</FONT>, <FONT FACE="courier, courier new, monospace">pop.wld</FONT>, <FONT FACE="courier, courier new, monospace">smtp.wld</FONT>, <FONT FACE="courier, courier new, monospace">popimapsmtp.wld</FONT>, and <FONT FACE="courier, courier new, monospace">popsmtp.wld</FONT>. See <a href="stone.htm#1025634">Workload Configuration File (testname.wld)</a>. </FONT></LI></A><P><A NAME="1048879"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>System Data</B>. The system data file specifies any information that you wish to have appended to test results. By default, this file is named <FONT FACE="courier, courier new, monospace">general.html</FONT>. See <a href="stone.htm#1026893">System Data File (general.html)</a>. </FONT></LI></A></ul><A NAME="Specifying Times in Configuration Files"></A><A NAME="1040549"><FONT FACE="Palatino, Serif" SIZE="-1" COLOR="black"> <B>
Specifying Times in Configuration Files</B></FONT></A><P>
<A NAME="1040550">
Times are specified in configuration commands (or on the command line) by a number followed by one of these time unit designations:</P></A>
<ul><P><A NAME="1040551"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><FONT FACE="courier, courier new, monospace">s</FONT> for seconds</FONT></LI></A><A NAME="1040552"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><FONT FACE="courier, courier new, monospace">m</FONT> for minutes</FONT></LI></A><BR><A NAME="1040553"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><FONT FACE="courier, courier new, monospace">h</FONT> for hours</FONT></LI></A><BR><A NAME="1040554"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><FONT FACE="courier, courier new, monospace">d</FONT> for days</FONT></LI></A><BR></ul><A NAME="1040555">
For example, <FONT FACE="courier, courier new, monospace">4m</FONT> specifies a time of four minutes. No spaces are permitted between the number and the time unit.</P></A>
<A NAME="General Configuration File (general.wld)"></A><A NAME="1035278"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
General Configuration File (general.wld)</B></FONT></A><P><A NAME="1035279">
The general configuration file specifies general configuration parameters that apply to all Mailstone tests across this testbed. The general configuration file is named <FONT FACE="courier, courier new, monospace">conf/general.wld</FONT>.</P></A>
<A NAME="1035280">
The initial <FONT FACE="courier, courier new, monospace">general.wld</FONT> file contains the following lines:</P></A>
<pre><A NAME="1035281"><FONT FACE="courier, courier new, monospace">&lt;Default&gt;<br> server <I><FONT FACE="courier, courier new, monospace">servername<br></FONT></I> smtpMailFrom <I><FONT FACE="courier, courier new, monospace">from-address<br></FONT></I> addressFormat <I><FONT FACE="courier, courier new, monospace">addressformat<br></FONT></I> loginFormat <I><FONT FACE="courier, courier new, monospace">loginformat<br></FONT></I> passwdFormat <I><FONT FACE="courier, courier new, monospace">password<br></FONT></I> numAddresses <I><FONT FACE="courier, courier new, monospace">N<br></FONT></I> numLogins <I><FONT FACE="courier, courier new, monospace">N<br> </FONT></I><FONT FACE="courier, courier new, monospace">firstAddress</FONT><I><FONT FACE="courier, courier new, monospace"> N<br> </FONT></I><FONT FACE="courier, courier new, monospace">firstLogin</FONT><I><FONT FACE="courier, courier new, monospace"> N<br></FONT></I>&lt;/Default&gt;</FONT></A><P></pre><pre><A NAME="1087151"><FONT FACE="courier, courier new, monospace">&lt;CLIENT HOSTS=localhost&gt;<br>&lt;/CLIENT&gt;</FONT></A><P></pre><A NAME="System Data File (general.html)"></A><A NAME="1026893"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
System Data File (general.html)</B></FONT></A><P><A NAME="1026900">
The system data file specifies additional data to be added to the test report. That is, at the end of each test run the information in the system data file is appended to the HTML-formatted test results report. By default, this file is named <FONT FACE="courier, courier new, monospace">general.html</FONT>. Typically, the system data file describes the Messaging Server being tested. However, you can use this file to add any information you wish to the test report. </P></A>
<A NAME="1027164">
The system data file is a block of HTML-formatted text that can be inserted into an HTML file. </P></A>
<A NAME="1027175">
A typical system data file looks like this:</P></A>
<pre><A NAME="1027773"><FONT FACE="courier, courier new, monospace">&lt;PRE&gt;<br>&lt;B&gt; Mailhost.domain.com &lt;/B&gt;<br> Netscape Messaging Server 4.1 (2/18/99)<br> E6000<br> 26x250MHz UltraSPARC-II<br> 6.5GB RAM<br> A3500 w/ 60x9GB 7200 RPM<br> store: 5 x (10x9 RAID-0)<br> queue: 1 x (10x9 RAID-0)<br>&lt;/PRE&gt;</FONT></A><P></pre><A NAME="Workload Configuration File (testname.wld)"></A><A NAME="1025634"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
Workload Configuration File (testname.wld)</B></FONT></A><P><A NAME="1031136">
The workload configuration file specifies the services and commands to be tested, their weights, and the test message files to be used. There are sample workload files for different kinds of tests: <FONT FACE="courier, courier new, monospace">imap.wld</FONT>, <FONT FACE="courier, courier new, monospace">pop.wld</FONT>, <FONT FACE="courier, courier new, monospace">smtp.wld</FONT>, <FONT FACE="courier, courier new, monospace">popimapsmtp.wld</FONT>, <FONT FACE="courier, courier new, monospace">popsmtp.wld</FONT>, and <FONT FACE="courier, courier new, monospace">wmap.wld</FONT>. You can create additional workload files as necessary.</P></A>
<A NAME="1038991">
For example, the operative portions of the sample <FONT FACE="courier, courier new, monospace">popimapsmtp.wld</FONT> file look like this:</P></A>
<pre><A NAME="1039006"><FONT FACE="courier, courier new, monospace">&lt;include conf/general.wld&gt; </FONT></A><P></pre><pre><A NAME="1079395"><FONT FACE="courier, courier new, monospace">&lt;CONFIG&gt; # test specific config<br> title POP, IMAP, SMTP combined load<br> clientCount 100 # set an appropriate client count<br>&lt;/CONFIG&gt;</FONT></A><P></pre><pre><A NAME="1039191"><FONT FACE="courier, courier new, monospace">&lt;SMTP HOSTS=client1&gt;<br> file en-1k.msg<br> weight 100<br> blockTime 1s<br>&lt;/SMTP&gt;</FONT></A><P></pre><pre><A NAME="1039024"><FONT FACE="courier, courier new, monospace">&lt;POP3 HOSTS=client1&gt;<br> weight 50<br> blockTime 1s<br> #leaveMailOnServer 1<br>&lt;/POP3&gt;</FONT></A><P></pre><pre><A NAME="1039035"><FONT FACE="courier, courier new, monospace"># Since IMAP connections are much longer lived than POP or SMTP,<br># run them on a separate host for clearer results.<br>&lt;IMAP4 HOSTS=client2,client3&gt;<br> weight 100<br> loopTime 60s<br> numLoops 10<br>&lt;/IMAP4&gt; </FONT></A><P></pre><A NAME="1041728">
This example illustrates most of the features of a test workload. The first line includes the general configuration file to get all the specifics of the system being tested. This allows the test to be independent of most of the system details. We'll see in a minute that we still have to put some specific machine names in for this unusual test.</P></A>
<A NAME="1079449">
Next there is a CONFIG section for the test. Since CONFIG is a special section, the attributes override the values in the general configuration file. This makes the general configuration act as test defaults. The command line can further override any value in CONFIG at test run time. Note that a final copy of the test with all attributes specified will be saved with the test report.</P></A>
<A NAME="1079450">
Now a note about the pop-imap-smtp test and why it is tricky. The SMTP portion brings new mail into the system. The SMTP connections are short lived. The POP section reads and deletes all the mail in a mailbox. Again, connections are short lived. The IMAP section logs in, and then spends 10 minutes watching for new mail. This large difference in execution times means that mixing IMAP with POP and SMTP will produce difficult to understand results. A short lived section like SMTP might be waiting 10 minutes to run again. This makes it hard to predict delivery rates.</P></A>
<A NAME="1079489">
To make things more predictable, the <FONT FACE="courier, courier new, monospace">HOSTS</FONT> attribute has been used to assign different sections to specific machines. The short-lived protocols (SMTP and POP) have been assigned to <I>client1</I> and the longer-lived IMAP section has been assigned to <I>client2</I> and <I>client3</I>. Note an alternate way to do this is to set <I>useGroups</I> in the CONFIG section and then group names would have been used instead of machine names. This would keep all machine names out of the test workload.</P></A>
<A NAME="1079492">
In addition to splitting sections by machine, the <I>weight</I> section has been used to control the balance between SMTP and POP. The SMTP section which is weighted 100 and will run twice as often as the POP section which is weighted 50. Note that weights only matter for sections running on the same machine.</P></A>
<A NAME="Description of the CONFIG section"></A><A NAME="1070888"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
Description of the CONFIG section</B></FONT></A><P><A NAME="1070889">
The CONFIG section is used to control the test startup and report generation. Nothing in CONFIG directly affects a particular protocol test. </P></A>
<A NAME="1070904">
There is a general CONFIG section in <FONT FACE="courier, courier new, monospace">conf/general.wld</FONT> and an additional CONFIG in each test. All CONFIG sections will be merged into one when the test is run. Later values will override earlier ones.</P></A>
<A NAME="1070898">
Every parameter in CONFIG can be overridden from the command line using either a predefined switch, or an <I><FONT FACE="courier, courier new, monospace">ATTRIBUTE=value</FONT></I> definition. For example: <FONT FACE="courier, courier new, monospace">mstone pop -b `Initialize store'</FONT> would run the pop test with a title (banner) of `Initialize store'.</P></A>
<A NAME="1070909">
<a href="stone.htm#1070913">Table 0.3</a> describes the various attributes you can use in the CONFIG section. </P></A>
<A NAME="1070964">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="CONFIG section attributes
"></A><A NAME="1070913"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.3 CONFIG section attributes
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="Attribute"></A><A NAME="1070917"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Attribute</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1070919"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1070921"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">title</FONT> <I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1070923"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the title of the test. This will appear on the second
line of the report. Same as command line switch `<FONT FACE="courier, courier new, monospace">-b
</FONT><I><FONT FACE="courier, courier new, monospace">title</FONT></I>'.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1070925"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">comments </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1070927"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the command for the test. This will appear on the
third line of the report. Same as command line switch `<FONT FACE="courier, courier new, monospace">-n
</FONT><I><FONT FACE="courier, courier new, monospace">notes</FONT></I>'.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1070929"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">time </FONT><I><FONT FACE="courier, courier new, monospace">duration
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1070931"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the test duration. Same as command line switch `<FONT FACE="courier, courier new, monospace">-t
</FONT><I><FONT FACE="courier, courier new, monospace">time</FONT></I>'.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1070933"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">rampTime </FONT><I><FONT FACE="courier, courier new, monospace">duration
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1070935"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the duration of the test load ramp up. This is part
of the test <I>time</I>. Defaults to 0. Same as command line switch
`<FONT FACE="courier, courier new, monospace">-r </FONT><I><FONT FACE="courier, courier new, monospace">time</FONT></I>'.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071150"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">clientCount </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071152"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies how many clients to use for the test. Same as
command line switch `<FONT FACE="courier, courier new, monospace">-l </FONT><I><FONT FACE="courier, courier new, monospace">clients</FONT></I>'.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1070937"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">maxErrors </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1070939"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the maximum number of total errors to allow
before terminating the test.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1070941"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">maxBlocks </FONT><I><FONT FACE="courier, courier new, monospace">N</FONT></I>
</FONT></A><BR></td>
<td valign=top><A NAME="1070943"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the maximum number of blocks to allow before
terminating the test. If there is only one client, then this
number of blocks will be run.<br>
If there is more than one client, then the test will stop some
time after this count is reached.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1070945"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">sysConfig </FONT><I><FONT FACE="courier, courier new, monospace">file</FONT></I>
</FONT></A><BR></td>
<td valign=top><A NAME="1070947"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the file to be used for the `Details' portion of the
report. Same as command line switch `<FONT FACE="courier, courier new, monospace">-s </FONT><I><FONT FACE="courier, courier new, monospace">filename</FONT></I>'.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1070949"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">useGroups </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1070951"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, use the <I>group</I> name set for each client, instead of its
hostname.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1070953"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">telemetry </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1070955"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, record a log of all transactions. This log is written into
the <FONT FACE="courier, courier new, monospace">/var/tmp</FONT> directory on each client machine. <br>
This is intended for protocol debugging and will probably
affect performance measurements.
</FONT></A><BR></td>
</tr>
</TABLE></P></A>
<A NAME="Description of the CLIENT section"></A><A NAME="1071069"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
Description of the CLIENT section</B></FONT></A><P><A NAME="1071070">
The CLIENT section defines one or more machines to be used to run the test. The machines are specified using the <FONT FACE="courier, courier new, monospace">HOSTS=</FONT><I><FONT FACE="courier, courier new, monospace">client1</FONT></I><FONT FACE="courier, courier new, monospace">,</FONT><I><FONT FACE="courier, courier new, monospace">client2</FONT></I> section attribute. There are often multiple CLIENT sections.</P></A>
<A NAME="1087243">
Note that the machine name specified in the <FONT FACE="courier, courier new, monospace">HOSTS=</FONT> section attribute must be consistent with any other <FONT FACE="courier, courier new, monospace">HOSTS=</FONT> sections. Just because <FONT FACE="courier, courier new, monospace">client1</FONT> and <FONT FACE="courier, courier new, monospace">client1.example.com</FONT> resolve to the same machine, does not mean that Mailstone understands that they are the same machine.</P></A>
<A NAME="1087188">
Mailstone is designed to simulate very large client counts. In order to do this, it can use multiple client machines, multiple processes on each machine, and multiple threads in each process. </P></A>
<A NAME="1087209">
Normally, you specify the number of clients using <FONT FACE="courier, courier new, monospace">clientCount</FONT> or the <FONT FACE="courier, courier new, monospace">-l count</FONT> command line parameter. Mailstone then figures out how to assign those clients across machines. If <FONT FACE="courier, courier new, monospace">clientCount</FONT> is lower than the number of CLIENT sections, then some sections will not be used. The machines used, the process counts, and the thread counts are all shown when the test is started.</P></A>
<A NAME="1087191">
Because machines may have differing capabilities, and you may need to define the limits of what each machine can handle, the maximum processes and thread counts will depend on operating system, CPU count, memory, and other system loads. The CLIENT section defines the capabilities of the machine, so that an appropriate client count can be assigned to it during test execution. If more than one machine is specified for a CLIENT section, then all machines will run the same client sub-count.</P></A>
<A NAME="1071228">
The example below shows two machines that should always run identical loads. The operating system is SunOS5.6 (i.e. Solaris 2.6). This tells Mailstone not to assign more than 500 threads per process or more that 2000 clients total.</P></A>
<pre><A NAME="1087175"><FONT FACE="courier, courier new, monospace">&lt;CLIENT HOSTS=client1,client2&gt;<br> arch SunOS5.6<br> maxThreads 500<br> maxClients 2000<br>&lt;/CLIENT&gt;</FONT></A><P></pre><A NAME="1071076">
Note that on NT, only one process is allowed. If the testmaster is running on NT, then only <FONT FACE="courier, courier new, monospace">localhost</FONT> is allowed as a CLIENT.</P></A>
<A NAME="1087204">
<a href="stone.htm#1071356">Table 0.4</a> describes the various attributes you can use in the CLIENT section. </P></A>
<A NAME="1071395">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="CLIENT section attributes
"></A><A NAME="1071356"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.4 CLIENT section attributes
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="Attribute"></A><A NAME="1071360"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Attribute</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1071362"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1071364"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">arch</FONT> <I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071366"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the operation system version for this client. By
default, this is the same as the testmaster machine. The
subdirectories under <FONT FACE="courier, courier new, monospace">bin</FONT> define the supported arch types.
For example: <FONT FACE="courier, courier new, monospace">Linux2.2_x86</FONT>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071368"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">group </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071370"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify a group to assign the client to if <FONT FACE="courier, courier new, monospace">useGroups</FONT> is
defined.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071372"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">command </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071374"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the Mailstone client command to run. Defaults to
<FONT FACE="courier, courier new, monospace">mailclient</FONT>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071376"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">tempDir </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071378"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the directory to run from on this machine.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071380"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">maxClients </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071382"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the maximum number of clients to assign to this
machine.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071384"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">maxThreads </FONT><I><FONT FACE="courier, courier new, monospace">N</FONT></I>
</FONT></A><BR></td>
<td valign=top><A NAME="1071386"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the maximum number of threads to run in a single
client process.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071388"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">processes </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071390"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of processes to run. If this is set, then
Mailstone will try to pick a thread count so that the right
<FONT FACE="courier, courier new, monospace">clientCount</FONT> is run.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071392"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">threads </FONT><I><FONT FACE="courier, courier new, monospace">N</FONT></I>
</FONT></A><BR></td>
<td valign=top><A NAME="1071394"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the threads to run. If processes and threads are
both set, then this machine will run
<I><FONT FACE="courier, courier new, monospace">processes*threads</FONT></I> clients regardless of what
<FONT FACE="courier, courier new, monospace">clientCount</FONT> is set to.
</FONT></A><BR></td>
</tr>
</TABLE></P></A>
<A NAME="Description of the PRETEST Section"></A><A NAME="1071432"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
Description of the PRETEST Section</B></FONT></A><P><A NAME="1071433">
The PRETEST section defines commands to be run before the test starts. This is often used to check system state before the test (e.g. disk usage, server configuration, etc). The machine(s) are specified using the <FONT FACE="courier, courier new, monospace">HOSTS=client1</FONT> section attribute.</P></A>
<A NAME="1071434">
The results of PRETEST will be linked to the final report.</P></A>
<A NAME="1071439">
<a href="stone.htm#1071442">Table 0.5</a> describes the various attributes you can use in the PRETEST section. </P></A>
<A NAME="1071481">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="PRETEST section attributes
"></A><A NAME="1071442"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.5 PRETEST section attributes
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="Attribute"></A><A NAME="1071446"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Attribute</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1071448"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1071458"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">command </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071460"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the command to run. For example: <FONT FACE="courier, courier new, monospace">df -k
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071462"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">rsh </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071464"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the remote shell command used to run <FONT FACE="courier, courier new, monospace">command</FONT>.
For example: <FONT FACE="courier, courier new, monospace">rsh -l mailuser</FONT> would cause the
command to run as <FONT FACE="courier, courier new, monospace">mailuser</FONT> on the remote machine (of
course permissions must be setup in <FONT FACE="courier, courier new, monospace">~</FONT><I><FONT FACE="courier, courier new, monospace">mailuser</FONT></I><FONT FACE="courier, courier new, monospace">/
.rhosts</FONT> to allow this).
</FONT></A><BR></td>
</tr>
</TABLE></P></A>
<A NAME="Description of the POSTTEST section"></A><A NAME="1071542"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
Description of the POSTTEST section</B></FONT></A><P><A NAME="1071543">
The POSTTEST section defines commands to be run after the test ends. This is often used to check system state after the test (e.g. disk usage, error logs, etc.). The machine(s) are specified using the <FONT FACE="courier, courier new, monospace">HOSTS=</FONT><I><FONT FACE="courier, courier new, monospace">client1</FONT></I> section attribute.</P></A>
<A NAME="1071544">
The results of POSTTEST will be linked to the final report.</P></A>
<A NAME="1071548">
<a href="stone.htm#1071551">Table 0.6</a> describes the various attributes you can use in the POSTTEST section. </P></A>
<A NAME="1071566">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="POSTTEST section attributes
"></A><A NAME="1071551"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.6 POSTTEST section attributes
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="Attribute"></A><A NAME="1071555"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Attribute</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1071557"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1071559"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">command </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071561"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the command to run. For example: <FONT FACE="courier, courier new, monospace">df -k
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071563"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">rsh </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071565"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the remote shell command used to run <FONT FACE="courier, courier new, monospace">command</FONT>.
For example: <FONT FACE="courier, courier new, monospace">rsh -l mailuser</FONT> would cause the
command to run as <FONT FACE="courier, courier new, monospace">mailuser</FONT> on the remote machine (of
course permissions must be setup in <FONT FACE="courier, courier new, monospace">~</FONT><I><FONT FACE="courier, courier new, monospace">mailuser</FONT></I><FONT FACE="courier, courier new, monospace">/
.rhosts</FONT> to allow this).
</FONT></A><BR></td>
</tr>
</TABLE></P></A>
<A NAME="Description of the MONITOR section"></A><A NAME="1071582"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
Description of the MONITOR section</B></FONT></A><P><A NAME="1071583">
The MONITOR section defines commands to be run during the test. This is often used to monitor system load. The machine(s) are specified using the <FONT FACE="courier, courier new, monospace">HOSTS=</FONT><I><FONT FACE="courier, courier new, monospace">client1</FONT></I> section attribute.</P></A>
<A NAME="1071584">
The results of MONITOR will be linked to the final report.</P></A>
<A NAME="1087152">
On NT, any MONITOR sections will be ignored.</P></A>
<A NAME="1071588">
<a href="stone.htm#1071591">Table 0.7</a> describes the various attributes you can use in the PRETEST section. </P></A>
<A NAME="1071606">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="PRETEST section attributes
"></A><A NAME="1071591"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.7 PRETEST section attributes
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="Attribute"></A><A NAME="1071595"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Attribute</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1071597"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1071599"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">command </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071601"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the command to run. If there is a <FONT FACE="courier, courier new, monospace">%f</FONT> in the string, it
will be replaced by the reporting frequency used my
Mailstone (in seconds). If there is a <FONT FACE="courier, courier new, monospace">%c</FONT> in the string, it will
be replaced by the number of reports needed for the test
duration. If the string does not contain <FONT FACE="courier, courier new, monospace">%c</FONT>, then it will be
shutdown when the first client exits. If the string does
contain <FONT FACE="courier, courier new, monospace">%c</FONT>, then it will be allowed to run to completion.
The default is <FONT FACE="courier, courier new, monospace">vmstat %f</FONT>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071603"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">rsh </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071605"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the remote shell command used to run <FONT FACE="courier, courier new, monospace">command</FONT>.
For example: <FONT FACE="courier, courier new, monospace">rsh -l mailuser</FONT> would cause the
command to run as <FONT FACE="courier, courier new, monospace">mailuser</FONT> on the remote machine (of
course permissions must be setup in <FONT FACE="courier, courier new, monospace">~</FONT><I><FONT FACE="courier, courier new, monospace">mailuser</FONT></I><FONT FACE="courier, courier new, monospace">/
.rhosts</FONT> to allow this).
</FONT></A><BR></td>
</tr>
</TABLE></P></A>
<A NAME="Description of the GRAPH section"></A><A NAME="1071643"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
Description of the GRAPH section</B></FONT></A><P><A NAME="1071644">
The GRAPH section defines each graph to be generated for the final report. If no GRAPH sections are defined, then Mailstone will use a pre-defined set of graphs. Additional graphs can be added after the test is complete, by running <FONT FACE="courier, courier new, monospace">process </FONT><I><FONT FACE="courier, courier new, monospace">timestamp</FONT></I><FONT FACE="courier, courier new, monospace"> -a moregraphs.wld</FONT>.</P></A>
<A NAME="1071767">
In addition to the protocol timers, there is an internally generated "timer" called "connections". This contains the current server connection count, taking into account connects, logouts, and errors. To graph this timer, specify a variable of "connection".</P></A>
<A NAME="1071649">
<a href="stone.htm#1071652">Table 0.8</a> describes the various attributes you can use in the GRAPH section. </P></A>
<A NAME="1071667">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="GRAPH section attributes
"></A><A NAME="1071652"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.8 GRAPH section attributes
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="Attribute"></A><A NAME="1071656"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Attribute</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1071658"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1071660"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">title </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071662"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the title to appear above the graph. For example:
"Time to get fully logged in".
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071664"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">label </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071666"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the label to be used on the left side of the graph (the
other axis is always time). For example: "Login time".
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071750"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">variables </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071752"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the timers to be added together to form the graph.
For example: "connect, banner, login".
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071746"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">field </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071748"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the field in each timer to be used for the graph. For
example: "Time".
</FONT></A><BR><A NAME="1071788"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If the timer does not contain fields (e.g. blocks or
connections), then <I><FONT FACE="courier, courier new, monospace">field</FONT></I> should not be set.
</FONT></A><BR></td>
</tr>
</TABLE></P></A>
<A NAME="Description of the DEFAULT section"></A><A NAME="1072000"><FONT FACE="Palatino, Serif" SIZE="+1" COLOR="black"> <B>
Description of the DEFAULT section</B></FONT></A><P><A NAME="1072001">
The DEFAULT section defines attributes that may be used by all the protocol sections. Note that attributes in DEFAULT that are never used are silently ignored. If there is more than one DEFAULT section, they will be merged into one when the test is run.</P></A>
<A NAME="1072033">
For example: the <FONT FACE="courier, courier new, monospace">conf/general.wld</FONT> file might contain the following default section:</P></A>
<pre><A NAME="1072034"><FONT FACE="courier, courier new, monospace">&lt;Default&gt;<br> <FONT FACE="courier, courier new, monospace">server mailserver.example.com<br> smtpMailFrom test0@mailserver.example.com<br> addressFormat test%ld@mailserver.example.com<br> loginFormat test%ld<br> passwdFormat mozilla<br> numAddresses 1000<br> numLogins 1000<br> firstLogin 0<br> firstAddress 0<br></FONT>&lt;/Default&gt;</FONT></A><P></pre><A NAME="Test Messages"></A><A NAME="1071397"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
Test Messages</B></FONT></A><P>
<A NAME="1071398">
The standard test messages used by Mailstone during a test run are stored in the <FONT FACE="courier, courier new, monospace">data</FONT> subdirectory. Five message files of varying sizes are provided for you: <FONT FACE="courier, courier new, monospace">en-1k.msg</FONT>, <FONT FACE="courier, courier new, monospace">en-5k.msg</FONT>, <FONT FACE="courier, courier new, monospace">en-17k.msg</FONT>, <FONT FACE="courier, courier new, monospace">en-20k.msg</FONT>, and <FONT FACE="courier, courier new, monospace">en-32k.msg</FONT>. The number indicates the size of the message in kilobytes. For example, the <FONT FACE="courier, courier new, monospace">en-17k.msg</FONT> file is about 17K long. </P></A>
<A NAME="1031500">
You can create additional message files as needed. Each file should be a properly formatted message. Mailstone does not use or alter anything in the message. Run <FONT FACE="courier, courier new, monospace">setup</FONT> to copy the new files to the testclients.</P></A>
<BR></TD></TR><TR> <TD BGCOLOR="#9999CC"><A HREF="#top"><IMG SRC="up.gif" BORDER=0></A><A NAME="Detailed Protocol Test Steps"></A><A NAME="1061888"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="white"> <B>Detailed Protocol Test Steps</B></FONT></A></TD></TR><TR><TD><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" Size=-1><A NAME="1087616">
Mailstone implements a series of protocol tests. The following sections detail what is done in each protocol test. Timers are shown in <FONT FACE="courier, courier new, monospace">ALL CAPS</FONT>. Attributes are shown in italics. </P></A>
<A NAME="1087685">
This top level loop is use to run the protocol tests:</P></A>
<pre><A NAME="1087687"><FONT FACE="courier, courier new, monospace">Select a section using a random number and the <I><FONT FACE="courier, courier new, monospace">weight</FONT></I> of each section.</FONT></A><P></pre><pre><A NAME="1087689"><FONT FACE="courier, courier new, monospace">Run the protocol initialization.</FONT></A><P></pre><pre><A NAME="1087690"><FONT FACE="courier, courier new, monospace">IDLE for <I><FONT FACE="courier, courier new, monospace">idleTime</FONT></I>.</FONT></A><P></pre><pre><A NAME="1087691"><FONT FACE="courier, courier new, monospace">Repeat this part <I><FONT FACE="courier, courier new, monospace">numLoops</FONT></I> times (or until test ends)<br>{</FONT></A><P></pre><pre><A NAME="1087692"><FONT FACE="courier, courier new, monospace"> Run the protocol loop body.</FONT></A><P></pre><pre><A NAME="1087700"><FONT FACE="courier, courier new, monospace"> IDLE for <I><FONT FACE="courier, courier new, monospace">loopDelay</FONT></I></FONT></A><P></pre><pre><A NAME="1087701"><FONT FACE="courier, courier new, monospace">}</FONT></A><P></pre><pre><A NAME="1087702"><FONT FACE="courier, courier new, monospace">Run the protocol conclusion.</FONT></A><P></pre><pre><A NAME="1087703"><FONT FACE="courier, courier new, monospace">IDLE for <I><FONT FACE="courier, courier new, monospace">blockTime</FONT></I></FONT></A><P></pre><A NAME="1087728">
Note that an error will cause the section to be aborted and the connection closed. However, the final IDLE for <I><FONT FACE="courier, courier new, monospace">blockTime</FONT></I> will still be performed. If the test time is up, then all IDLE calls will return immediately and no more loops will be performed.</P></A>
<A NAME="1079583">
<a href="stone.htm#1079587">Table 0.9</a> describes attributes that all protocol sections support.</P></A>
<A NAME="1079638">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="General protocol section attributes
"></A><A NAME="1079587"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.9 General protocol section attributes
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="Command"></A><A NAME="1079591"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Command</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1079593"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1079599"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">HOSTS=</FONT><I><FONT FACE="courier, courier new, monospace">name
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1079601"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Command section attribute specifying that the commands
are to be run only on specific testclient(s). For example,
<FONT FACE="courier, courier new, monospace">&lt;IMAP4 HOSTS=client1,client3&gt;</FONT> specifies that
this IMAP4 command is to be run on machines <FONT FACE="courier, courier new, monospace">client1</FONT>
and <FONT FACE="courier, courier new, monospace">client3</FONT>. Note that no spaces or tabs are allowed.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1079611"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">blockTime </FONT><I><FONT FACE="courier, courier new, monospace">time
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1079613"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of seconds to delay after completing
the current section. The delay is taken even if an error was
encountered. For example, <FONT FACE="courier, courier new, monospace">`1m'</FONT> means delay one minute.
Defaults to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1079615"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">idleTime </FONT><I><FONT FACE="courier, courier new, monospace">time
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1079617"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of seconds to delay after connecting
before starting the loop. For example, <FONT FACE="courier, courier new, monospace">`5s'</FONT> means delay
five seconds after connecting. Defaults to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1079619"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">loopDelay </FONT><I><FONT FACE="courier, courier new, monospace">time
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1079621"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies seconds between loops (e.g. download checks).
</FONT></A><BR><A NAME="1079622"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>For example: <FONT FACE="courier, courier new, monospace">`60s'</FONT> creates a delay of 60 seconds between
checks. Defaults to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1079624"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">numLoops </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1079626"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of loops to perform before closing the
connection. See <a href="stone.htm#1061888">Detailed Protocol Test Steps</a> for what is
done in each loop. Defaults to 1.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1079632"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">weight </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1079634"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the relative frequency of Mailstone running that
command. See <a href="stone.htm#1087645">Weights in Configuration Files</a> for details.
Defaults to 100.
</FONT></A><BR></td>
</tr>
</TABLE></P></A>
<A NAME="Weights in Configuration Files "></A><A NAME="1087645"><FONT FACE="Palatino, Serif" SIZE="-1" COLOR="black"> <B>
Weights in Configuration Files </B></FONT></A><P>
<A NAME="1087646">
Commands in workload files are assigned a weight factor that determines the relative frequency of the command's occurrence. For example, if the numeric weights you have assigned to all commands called by the test add up to 25, and a particular command has a weight of 15, then that command has a 60 percent chance of being chosen every time a command is executed, while a command with a weight of 5 has only a 20 percent chance of being chosen. By adjusting the weight factors for the different commands, you can balance them according to your needs. </P></A>
<A NAME="1087647">
Weight commands use the syntax:</P></A>
<pre><A NAME="1087648"><FONT FACE="courier, courier new, monospace">weight <I><FONT FACE="courier, courier new, monospace">nn</FONT></I></FONT></A><P></pre><A NAME="1087649">
where <I><FONT FACE="courier, courier new, monospace">nn</FONT></I> is a number representing the weight factor of that command, or command block. For example:</P></A>
<pre><A NAME="1087650"><FONT FACE="courier, courier new, monospace">weight 9</FONT></A><P></pre><A NAME="1087651">
assigns the numeric weight of nine to that command. </P></A>
<A NAME="1087652">
Note that weights only affect the ballance on one machine. If some sections are only run on specific machines, then only the sections on that machine matter.</P></A>
<A NAME="Common substitutions"></A><A NAME="1087670"><FONT FACE="Palatino, Serif" SIZE="-1" COLOR="black"> <B>
Common substitutions</B></FONT></A><P>
<A NAME="1088064">
Wherever <FONT FACE="courier, courier new, monospace">loginFormat</FONT> is used, the first <FONT FACE="courier, courier new, monospace">%ld </FONT>will be replaced by a user number and the second <FONT FACE="courier, courier new, monospace">%ld</FONT> will be replaced by a domain number. The user number is controlled by <FONT FACE="courier, courier new, monospace">firstLogin</FONT>, <FONT FACE="courier, courier new, monospace">numLogins</FONT>, and <FONT FACE="courier, courier new, monospace">sequentialLogins</FONT>. The domain number is controlled by <FONT FACE="courier, courier new, monospace">numDomains</FONT>, <FONT FACE="courier, courier new, monospace">firstDomain</FONT>, and <FONT FACE="courier, courier new, monospace">sequentialDomains</FONT>. Wherever <FONT FACE="courier, courier new, monospace">passwordFormat</FONT> is used, the first <FONT FACE="courier, courier new, monospace">%ld</FONT> will be replaced by the user number.</P></A>
<A NAME="1087672">
Wherever <FONT FACE="courier, courier new, monospace">addressFormat</FONT> is used, the first <FONT FACE="courier, courier new, monospace">%ld </FONT>will be replaced by a user number and the second <FONT FACE="courier, courier new, monospace">%ld</FONT> will be replaced by a domain number. The user number is controlled by <FONT FACE="courier, courier new, monospace">firstAddress</FONT>, <FONT FACE="courier, courier new, monospace">numAddresses</FONT>, and <FONT FACE="courier, courier new, monospace">sequentialAddresses</FONT>. The domain number is controlled by <FONT FACE="courier, courier new, monospace">numDomains</FONT>, <FONT FACE="courier, courier new, monospace">firstDomain</FONT>, and <FONT FACE="courier, courier new, monospace">sequentialDomains</FONT>.</P></A>
<A NAME="1087223">
The purpose <FONT FACE="courier, courier new, monospace">sequentialDomains</FONT>, <FONT FACE="courier, courier new, monospace">sequentialLogins</FONT>, and <FONT FACE="courier, courier new, monospace">sequentialAddresses</FONT> attributes allow a range of numbers to be covered in a uniform and predictable way. However, the exact interpretation of these attributes may not be obvious when multiple machines are used. </P></A>
<A NAME="1087257">
By default, domain, login, and user numbers are picked randomly from the range specified by the appropriate <I><FONT FACE="courier, courier new, monospace">first_</FONT></I> and <I><FONT FACE="courier, courier new, monospace">num_</FONT></I> attributes. The range is divided among all the threads within a process so that there is an efficient sharing of the total range.</P></A>
<A NAME="1087242">
When sequential mode is specified, then the numbers proceed in ascending sequence within the range assigned to each thread. If there is more than one process, then each process will cover the same total range. Multiple machines can be assigned non-overlapping total ranges to properly distribute a desired overall test range.</P></A>
<A NAME="1088119">
For example: if you specify one machine, two threads, and a range of 100; then one thread will start at 0 and go to 49, and the other thread will start at 50 and go to 99. </P></A>
<A NAME="IMAP4 Protocol Steps"></A><A NAME="1088120"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
IMAP4 Protocol Steps</B></FONT></A><P>
<A NAME="1088121">
The IMAP protocol stores mail on the mail server and allows message management without downloading the whole message. Clients are usually connected for long periods of time and periodically check for new messages.</P></A>
<A NAME="1066064">
<a href="stone.htm#1066068">Table 0.10</a> describes the various attributes you can use in the IMAP section. </P></A>
<A NAME="1066222">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="IMAP section attributes
"></A><A NAME="1066068"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.10 IMAP section attributes
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="Attribute"></A><A NAME="1066072"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Attribute</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1066074"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1066324"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">loopDelay </FONT><I><FONT FACE="courier, courier new, monospace">time
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066326"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies how often to check for new mail. The default is
every 10 minutes (<FONT FACE="courier, courier new, monospace">10m</FONT>). For example, <FONT FACE="courier, courier new, monospace">`5s'</FONT> means check
for mail every five seconds.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066328"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">firstDomain</FONT> <I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066330"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the first domain number to use. The domain
number will be inserted into the second <FONT FACE="courier, courier new, monospace">%ld</FONT> in the
<FONT FACE="courier, courier new, monospace">loginFormat</FONT>. Defaults to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066342"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">firstLogin </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066344"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The first (lowest) login number. The login number will be
inserted into the first <FONT FACE="courier, courier new, monospace">%ld</FONT> in the <FONT FACE="courier, courier new, monospace">loginFormat</FONT>. Defaults
to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066336"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">leaveMailOnServer </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066340"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, don't delete messages after reading them.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066332"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">loginFormat </FONT><I><FONT FACE="courier, courier new, monospace">format
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066334"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the login string. The first <FONT FACE="courier, courier new, monospace">%ld</FONT> is replaced by the
login number, the second <FONT FACE="courier, courier new, monospace">%ld</FONT> (if present) is replaced by
the domain number. For example:<FONT FACE="courier, courier new, monospace"> test%ld</FONT> or<I><FONT FACE="courier, courier new, monospace">
server</FONT></I><FONT FACE="courier, courier new, monospace">%ld@dom%ld.com.
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066351"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">numDomains </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066353"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of domains. Defaults to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066370"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">numlogins </FONT><I><FONT FACE="courier, courier new, monospace">N</FONT></I>
</FONT></A><BR></td>
<td valign=top><A NAME="1066372"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of logins.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066359"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">passwdFormat
</FONT><I><FONT FACE="courier, courier new, monospace">password</FONT></I><FONT FACE="courier, courier new, monospace">
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1066361"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the password string. If the string contains <FONT FACE="courier, courier new, monospace">%ld</FONT>, it
will be replaced by the login number. For example: <FONT FACE="courier, courier new, monospace">
test%ld.
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066355"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">portNum </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066357"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies a non-default port number for a service. Defaults
to the standard port for IMAP4.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066374"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">sequentialDomains </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066376"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, domain numbers should proceed in order. By default,
use random domain numbers.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066378"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">sequentialLogins </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066380"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, logins should proceed in order. By default, use random
login numbers.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066382"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">server </FONT><I><FONT FACE="courier, courier new, monospace">name
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066384"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The name of the mail server being tested. For example:
<FONT FACE="courier, courier new, monospace">mailhost.example.com.
</FONT></FONT></A><BR></td>
</tr>
</TABLE></P></A>
<pre><A NAME="1047579"><FONT FACE="courier, courier new, monospace">CONNECT by TCP to <I>portNum</I> on <I>server</I>.</FONT></A><P></pre><pre><A NAME="1047581"><FONT FACE="courier, courier new, monospace">Read the BANNER.</FONT></A><P></pre><pre><A NAME="1048093"><FONT FACE="courier, courier new, monospace">LOGIN with loginFormat and passwordFormat. Get response.</FONT></A><P></pre><pre><A NAME="1047585"><FONT FACE="courier, courier new, monospace">IDLE for <I><FONT FACE="courier, courier new, monospace">idleTime</FONT></I>.</FONT></A><P></pre><pre><A NAME="1048090"><FONT FACE="courier, courier new, monospace">Repeat this part <I><FONT FACE="courier, courier new, monospace">numLoops</FONT></I> times (or until test ends)<br>{</FONT></A><P></pre><pre><A NAME="1048098"><FONT FACE="courier, courier new, monospace"> COMMAND: select INBOX folder. Get response.</FONT></A><P></pre><pre><A NAME="1072057"><FONT FACE="courier, courier new, monospace"> For each new messages<br> {</FONT></A><P></pre><PRE><A NAME="1072059"><FONT FACE="courier, courier new, monospace"> COMMAND: Fetch the message size. Get response.
</FONT></A></PRE><pre><A NAME="1048104"><FONT FACE="courier, courier new, monospace"> RETRIEVE message. Get data.</FONT></A><P></pre><pre><A NAME="1048106"><FONT FACE="courier, courier new, monospace"> COMMAND: Send noop. Get response.</FONT></A><P></pre><pre><A NAME="1048108"><FONT FACE="courier, courier new, monospace"> COMMAND: Mark message as deleted and seen. Get response. </FONT></A><P></pre><pre><A NAME="1048133"><FONT FACE="courier, courier new, monospace"> }</FONT></A><P></pre><pre><A NAME="1048110"><FONT FACE="courier, courier new, monospace"> COMMAND: Expunge deleted messages. Get response. </FONT></A><P></pre><pre><A NAME="1048112"><FONT FACE="courier, courier new, monospace"> IDLE for <I><FONT FACE="courier, courier new, monospace">loopDelay</FONT></I></FONT></A><P></pre><pre><A NAME="1048137"><FONT FACE="courier, courier new, monospace">}</FONT></A><P></pre><pre><A NAME="1048113"><FONT FACE="courier, courier new, monospace">LOGOUT</FONT></A><P></pre><pre><A NAME="1047610"><FONT FACE="courier, courier new, monospace">IDLE for <I><FONT FACE="courier, courier new, monospace">blockTime</FONT></I></FONT></A><P></pre><A NAME="POP3 protocol steps:"></A><A NAME="1047615"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
POP3 protocol steps:</B></FONT></A><P>
<A NAME="1062228">
The POP protocol transfers messages to the client for viewing and storage. The client connects long enough to download (and usually delete) messages and then disconnects.</P></A>
<A NAME="1066455">
<a href="stone.htm#1066459">Table 0.11</a> describes the various attributes you can use in the POP3 section. </P></A>
<A NAME="1066514">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="POP3 section attributes
"></A><A NAME="1066459"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.11 POP3 section attributes
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="Attribute"></A><A NAME="1066463"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Attribute</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1066465"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1066471"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">firstDomain </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066473"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the first domain number to use. The domain
number will be inserted into the second <FONT FACE="courier, courier new, monospace">%ld</FONT> in the
<FONT FACE="courier, courier new, monospace">loginFormat</FONT>. Defaults to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066475"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">firstLogin </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066477"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The first (lowest) login number. The login number will be
inserted into the first <FONT FACE="courier, courier new, monospace">%ld</FONT> in the <FONT FACE="courier, courier new, monospace">loginFormat</FONT>. Defaults
to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066479"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">leaveMailOnServer </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066481"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, don't delete messages after reading them.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066483"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">loginFormat </FONT><I><FONT FACE="courier, courier new, monospace">format
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066485"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the login string. The first <FONT FACE="courier, courier new, monospace">%ld</FONT> is replaced by the
login number, the second <FONT FACE="courier, courier new, monospace">%ld</FONT> (if present) is replaced by
the domain number. For example:<FONT FACE="courier, courier new, monospace"> test%ld</FONT> or<I><FONT FACE="courier, courier new, monospace">
server</FONT></I><FONT FACE="courier, courier new, monospace">%ld@dom%ld.com.
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066487"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">numDomains </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066489"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of domains. Defaults to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066491"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">numlogins </FONT><I><FONT FACE="courier, courier new, monospace">N</FONT></I><FONT FACE="courier, courier new, monospace">
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1066493"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of logins.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066495"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">passwdFormat </FONT><I><FONT FACE="courier, courier new, monospace">password</FONT></I><FONT FACE="courier, courier new, monospace">
</FONT></FONT></A><BR></td>
<td valign=top><A NAME="1066497"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the password string. If the string contains <FONT FACE="courier, courier new, monospace">%ld</FONT>, it
will be replaced by the login number. For example: <FONT FACE="courier, courier new, monospace">
test%ld
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066499"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">portNum </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066501"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies a non-default port number for a service. Defaults
to the standard port for POP3.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066503"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">sequentialDomains </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066505"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, domain numbers should proceed in order. By default,
use random domain numbers.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066507"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">sequentialLogins </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066509"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, logins should proceed in order. By default, use random
login numbers.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066511"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">server </FONT><I><FONT FACE="courier, courier new, monospace">name
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066513"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The name of the mail server being tested. For example:
<FONT FACE="courier, courier new, monospace">mailhost.example.com.
</FONT></FONT></A><BR></td>
</tr>
</TABLE></P></A>
<pre><A NAME="1047617"><FONT FACE="courier, courier new, monospace">CONNECT by TCP to <I>portNum</I> on <I>server</I>.</FONT></A><P></pre><pre><A NAME="1047619"><FONT FACE="courier, courier new, monospace">Read the BANNER.</FONT></A><P></pre><pre><A NAME="1047621"><FONT FACE="courier, courier new, monospace">LOGIN with loginFormat and passwordFormat. Get response.</FONT></A><P></pre><pre><A NAME="1047623"><FONT FACE="courier, courier new, monospace">COMMAND: stat how many message are available. Get response.</FONT></A><P></pre><pre><A NAME="1047625"><FONT FACE="courier, courier new, monospace">IDLE for <I><FONT FACE="courier, courier new, monospace">idleTime</FONT></I></FONT></A><P></pre><pre><A NAME="1047627"><FONT FACE="courier, courier new, monospace">Repeat this part <I><FONT FACE="courier, courier new, monospace">numLoops</FONT></I> times (or until out of messages or test ends)<br>{</FONT></A><P></pre><pre><A NAME="1048144"><FONT FACE="courier, courier new, monospace"> RETRIEVE message. Get data.</FONT></A><P></pre><pre><A NAME="1047632"><FONT FACE="courier, courier new, monospace"> Unless <I><FONT FACE="courier, courier new, monospace">leaveMailOnServer</FONT></I> is set, COMMAND: delete message. <br> Get response.</FONT></A><P></pre><pre><A NAME="1047634"><FONT FACE="courier, courier new, monospace"> IDLE for <I><FONT FACE="courier, courier new, monospace">loopDelay</FONT></I></FONT></A><P></pre><pre><A NAME="1047637"><FONT FACE="courier, courier new, monospace">}</FONT></A><P></pre><pre><A NAME="1048150"><FONT FACE="courier, courier new, monospace">LOGOUT</FONT></A><P></pre><pre><A NAME="1047639"><FONT FACE="courier, courier new, monospace">IDLE for <I><FONT FACE="courier, courier new, monospace">blockTime</FONT></I></FONT></A><P></pre><A NAME="SMTP Protocol Steps"></A><A NAME="1047643"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
SMTP Protocol Steps</B></FONT></A><P>
<A NAME="1087293">
The SMTP protocol provides reliable message transfer. The mail server looks at the message addresses and either delivers the mail locally or sends it to another SMTP server. Each SMTP connection can deliver multiple messages, each of which can have multiple addresses.</P></A>
<A NAME="1087297">
<a href="stone.htm#1087301">Table 0.12</a> describes the various attributes you can use in the SMTP section. </P></A>
<A NAME="1087380">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="SMTP section attributes
"></A><A NAME="1087301"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.12 SMTP section attributes
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="Attribute"></A><A NAME="1087305"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Attribute</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1087307"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1087309"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">addressFormat </FONT><I><FONT FACE="courier, courier new, monospace">format
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087311"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the address string. The first <FONT FACE="courier, courier new, monospace">%ld</FONT> is replaced by the
address number, the second <FONT FACE="courier, courier new, monospace">%ld</FONT> (if present) is replaced by
the domain number. The domain number is independent
of the one used for login. For example: <FONT FACE="courier, courier new, monospace">
test%ld@server.com</FONT> or<FONT FACE="courier, courier new, monospace">
server%ld@dom%ld.com.
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087313"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">file </FONT><I><FONT FACE="courier, courier new, monospace">path
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087315"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>File to use as the message text. For example: <br>
<FONT FACE="courier, courier new, monospace">en-17k.msg</FONT>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087317"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">firstAddress </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087319"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The first (lowest) address number. The address number will
be inserted into the first <FONT FACE="courier, courier new, monospace">%ld</FONT> in the <FONT FACE="courier, courier new, monospace">adressFormat</FONT>.
Defaults to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087321"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">firstDomain</FONT> <I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087323"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the first domain number to use. The domain
number will be inserted into the second <FONT FACE="courier, courier new, monospace">%ld</FONT> in the
<FONT FACE="courier, courier new, monospace">loginFormat</FONT>. Defaults to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087325"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">firstLogin </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087327"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The first (lowest) login number. The login number will be
inserted into the first <FONT FACE="courier, courier new, monospace">%ld</FONT> in the <FONT FACE="courier, courier new, monospace">loginFormat</FONT>. Defaults
to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087329"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">loginFormat </FONT><I><FONT FACE="courier, courier new, monospace">format
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087331"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the login string. The first <FONT FACE="courier, courier new, monospace">%ld</FONT> is replaced by the
login number, the second <FONT FACE="courier, courier new, monospace">%ld</FONT> (if present) is replaced by
the domain number. For example:<FONT FACE="courier, courier new, monospace"> test%ld</FONT> or
<FONT FACE="courier, courier new, monospace">server%ld@dom%ld.com.
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087333"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">numAddresses </FONT><I><FONT FACE="courier, courier new, monospace">N</FONT></I>
</FONT></A><BR></td>
<td valign=top><A NAME="1087335"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of addresses.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087337"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">numDomains </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087339"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of domains. Defaults to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087341"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">numlogins </FONT><I><FONT FACE="courier, courier new, monospace">N</FONT></I>
</FONT></A><BR></td>
<td valign=top><A NAME="1087343"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of logins.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087345"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">numRecips </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087347"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of addresses used for each message.
Defaults to 1.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087349"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">passwdFormat </FONT><I><FONT FACE="courier, courier new, monospace">password</FONT></I>
</FONT></A><BR></td>
<td valign=top><A NAME="1087351"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the password string. If the string contains <FONT FACE="courier, courier new, monospace">%ld</FONT>, it
will be replaced by the login number. For example: <FONT FACE="courier, courier new, monospace">
passwdFormat test%ld
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087353"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">portNum </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087355"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies a non-default port number for a service. Defaults
to the standard port for SMTP.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087357"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">sequentialDomains </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087359"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, domain numbers should proceed in order. By default,
use random domain numbers.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087361"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">sequentialLogins </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087363"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, logins should proceed in order. By default, use random
login numbers.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087365"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">server </FONT><I><FONT FACE="courier, courier new, monospace">name
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087367"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The name of the mail server being tested. For example:
<FONT FACE="courier, courier new, monospace">mailhost.example.com.
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087369"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">smtpMailFrom </FONT><I><FONT FACE="courier, courier new, monospace">address
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087371"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the from address for each message. For example:
<FONT FACE="courier, courier new, monospace">test0@server.example.com</FONT>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087373"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">useAuthLogin </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087375"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, authenticate to the SMTP server using
<FONT FACE="courier, courier new, monospace">loginFormat</FONT> and <FONT FACE="courier, courier new, monospace">passwordFormat</FONT>. Requires that
<FONT FACE="courier, courier new, monospace">useEHLO</FONT> is set. Defaults to 0, which uses no
authentication.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1087377"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">useEHLO </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1087379"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, use the SMTP enhanced capabilities greeting. Must be
enabled to use <FONT FACE="courier, courier new, monospace">useAuthLogin</FONT>. Defaults to 0.
</FONT></A><BR></td>
</tr>
</TABLE></P></A>
<pre><A NAME="1047645"><FONT FACE="courier, courier new, monospace">CONNECT by TCP to <I>portNum</I> on <I>server</I>.</FONT></A><P></pre><pre><A NAME="1047647"><FONT FACE="courier, courier new, monospace">Read the BANNER.</FONT></A><P></pre><pre><A NAME="1047649"><FONT FACE="courier, courier new, monospace">If <I><FONT FACE="courier, courier new, monospace">useEHLO</FONT></I> is set <br>{</FONT></A><P></pre><pre><A NAME="1048160"><FONT FACE="courier, courier new, monospace"> COMMAND: send EHLO. Get response and capabilities.</FONT></A><P></pre><pre><A NAME="1048161"><FONT FACE="courier, courier new, monospace">}</FONT></A><P></pre><pre><A NAME="1047653"><FONT FACE="courier, courier new, monospace">Else <br>{</FONT></A><P></pre><pre><A NAME="1048166"><FONT FACE="courier, courier new, monospace"> COMMAND: send HELO. Get response.</FONT></A><P></pre><pre><A NAME="1048170"><FONT FACE="courier, courier new, monospace">}</FONT></A><P></pre><pre><A NAME="1047658"><FONT FACE="courier, courier new, monospace">If <FONT FACE="courier, courier new, monospace">useAUTHLOGIN</FONT> is set and AUTH=LOGIN capability is available on <br>the server <br>{</FONT></A><P></pre><pre><A NAME="1048175"><FONT FACE="courier, courier new, monospace"> LOGIN with loginFormat and passwordFormat. Get response.</FONT></A><P></pre><pre><A NAME="1048179"><FONT FACE="courier, courier new, monospace">}</FONT></A><P></pre><pre><A NAME="1047663"><FONT FACE="courier, courier new, monospace">IDLE for <I><FONT FACE="courier, courier new, monospace">idleTime</FONT></I></FONT></A><P></pre><pre><A NAME="1047665"><FONT FACE="courier, courier new, monospace">Repeat this part <I><FONT FACE="courier, courier new, monospace">numLoops</FONT></I> times (or until test ends)<br>{</FONT></A><P></pre><pre><A NAME="1048180"><FONT FACE="courier, courier new, monospace"> COMMAND: send mail from <I><FONT FACE="courier, courier new, monospace">smptMailFrom</FONT></I>. Get response.</FONT></A><P></pre><pre><A NAME="1047670"><FONT FACE="courier, courier new, monospace"> Repeat <I><FONT FACE="courier, courier new, monospace">numRecips</FONT></I> times.</FONT></A><P></pre><pre><A NAME="1047672"><FONT FACE="courier, courier new, monospace"> {</FONT></A><P></pre><pre><A NAME="1048184"><FONT FACE="courier, courier new, monospace"> COMMAND: send mail to addressFormat. Get response.</FONT></A><P></pre><pre><A NAME="1048188"><FONT FACE="courier, courier new, monospace"> }</FONT></A><P></pre><pre><A NAME="1047675"><FONT FACE="courier, courier new, monospace"> COMMAND: initiate message body. Get response.</FONT></A><P></pre><pre><A NAME="1047677"><FONT FACE="courier, courier new, monospace"> SUBMIT message. Get response.</FONT></A><P></pre><pre><A NAME="1047679"><FONT FACE="courier, courier new, monospace"> IDLE for <I><FONT FACE="courier, courier new, monospace">loopDelay</FONT></I></FONT></A><P></pre><pre><A NAME="1048195"><FONT FACE="courier, courier new, monospace">}</FONT></A><P></pre><pre><A NAME="1047682"><FONT FACE="courier, courier new, monospace">LOGOUT</FONT></A><P></pre><pre><A NAME="1047684"><FONT FACE="courier, courier new, monospace">IDLE for <I><FONT FACE="courier, courier new, monospace">blockTime</FONT></I></FONT></A><P></pre><A NAME="WMAP Protocol Steps"></A><A NAME="1062177"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
WMAP Protocol Steps</B></FONT></A><P>
<A NAME="1062252">
The WMAP protocol is the heart of Netscape Messenger Express web mail. It shares many similarities with IMAP but works on top of HTTP. Clients are usually connected for long periods of time and periodically check for new messages. </P></A>
<A NAME="1062266">
The underlying HTTP connection may be dropped and re-established as needed. The WMAP session is encoded in the URL used to access the data pages and is independent of the HTTP connection.</P></A>
<A NAME="1062269">
Many parameters for WMAP can occur multiple times. Each occurrence is added to a list of things to do. These parameters end in "cmds" to indicate that they can occur more than once.</P></A>
<A NAME="1087682">
The WMAP protocol requires special handling of connection termination. Since WMAP is based on HTTP, the connection may be dropped and re-established arbitrarily. This will show up as a connection error and then an additional connection. Repeat connection failures or any other kind of error will cause the block to abort.</P></A>
<A NAME="1066610">
<a href="stone.htm#1066614">Table 0.13</a> describes the various attributes you can use in the WMAP section. </P></A>
<A NAME="1066669">
<TABLE BORDER=1 cellpadding=4 cellspacing=3><CAPTION></caption><p><A NAME="WMAP section attributes
"></A><A NAME="1066614"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif"><B>Table 0.13 WMAP section attributes
</B></font><br></p></a></caption><tr><th valign=top align=left><b><A NAME="Attribute"></A><A NAME="1066618"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Attribute</FONT></B></A><BR><B></th><th valign=top align=left><b><A NAME="Description"></A><A NAME="1066620"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><B>Description</FONT></B></A><BR><B></th></tr>
<tr><td valign=top><A NAME="1066622"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">checkMailInterval<br>
</FONT><I><FONT FACE="courier, courier new, monospace">time
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066624"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies how often to check for new mail. The default is
every 10 minutes (<FONT FACE="courier, courier new, monospace">10m</FONT>). For example, <FONT FACE="courier, courier new, monospace">`5s'</FONT> means check
for mail every five seconds.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066626"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">firstDomain </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066628"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specify the first domain number to use. The domain
number will be inserted into the second <FONT FACE="courier, courier new, monospace">%ld</FONT> in the
<FONT FACE="courier, courier new, monospace">loginFormat</FONT>. Defaults to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066630"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">firstLogin </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066632"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The first (lowest) login number. The login number will be
inserted into the first <FONT FACE="courier, courier new, monospace">%ld</FONT> in the <FONT FACE="courier, courier new, monospace">loginFormat</FONT>. Defaults
to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066634"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">leaveMailOnServer </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066636"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, don't delete messages after reading them.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066638"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">loginFormat </FONT><I><FONT FACE="courier, courier new, monospace">format
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066640"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the login string. The first <FONT FACE="courier, courier new, monospace">%ld</FONT> is replaced by the
login number, the second <FONT FACE="courier, courier new, monospace">%ld</FONT> (if present) is replaced by
the domain number. For example:<br>
<FONT FACE="courier, courier new, monospace"> test%ld</FONT> or<I><FONT FACE="courier, courier new, monospace"> server</FONT></I><FONT FACE="courier, courier new, monospace">%ld@dom%ld.com.
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066642"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">numDomains </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066644"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of domains. Defaults to 0.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066646"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">numlogins </FONT><I><FONT FACE="courier, courier new, monospace">N</FONT></I>
</FONT></A><BR></td>
<td valign=top><A NAME="1066648"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the number of logins.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066650"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">passwdFormat </FONT><I><FONT FACE="courier, courier new, monospace">password</FONT></I>
</FONT></A><BR></td>
<td valign=top><A NAME="1066652"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies the password string. If the string contains <FONT FACE="courier, courier new, monospace">%ld</FONT>, it
will be replaced by the login number. For example:<br>
<FONT FACE="courier, courier new, monospace"> passwdFormat test%ld.
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066654"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">portNum </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066656"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Specifies a non-default port number for a service. Defaults
to the standard port for HTTP.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066658"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">sequentialDomains </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066660"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, domain numbers should proceed in order. By default,
use random domain numbers.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066662"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">sequentialLogins </FONT><I><FONT FACE="courier, courier new, monospace">N
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066664"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>If 1, logins should proceed in order. By default, use random
login numbers.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1066666"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">server </FONT><I><FONT FACE="courier, courier new, monospace">name
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1066668"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>The name of the mail server being tested. For example:<br>
<FONT FACE="courier, courier new, monospace">mailhost.example.com.
</FONT></FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071855"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">wmapClientHeader<br>
</FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071857"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>This string is attached to all information set to the server.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071851"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">wmapBannerCmds<br>
</FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071853"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Each URL to get for the banner (login) screen. Can be used
more than once.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071847"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">wmapLoginData </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071849"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Data to post to login. The first <FONT FACE="courier, courier new, monospace">%s</FONT> is replaced with the
<FONT FACE="courier, courier new, monospace">loginFormat</FONT>. The second %s is replaced with the
<FONT FACE="courier, courier new, monospace">passwordFormat</FONT>.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071843"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">wmapInboxCmds </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071931"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Each URL to get for the main screen. Can be used more
than once.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071839"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">wmapCheckCmds </FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071955"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Each URL to get to update the message list. Can be used
more than once.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071835"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">wmapMsgReadCmds<br>
</FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071980"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Each URL to get to read a message. Can be used more than
once.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071831"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">wmapMsgWriteCmds|<br>
</FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071833"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Each URL to get to write a message. Can be used more
than once.
</FONT></A><BR></td>
</tr>
<tr><td valign=top><A NAME="1071827"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1><FONT FACE="courier, courier new, monospace">wmapLogoutCmds<br>
</FONT><I><FONT FACE="courier, courier new, monospace">string
</FONT></I></FONT></A><BR></td>
<td valign=top><A NAME="1071829"><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-1>Each URL to get to terminate the session. Can be used
more than once.
</FONT></A><BR></td>
</tr>
</TABLE></P></A>
<pre><A NAME="1062178"><FONT FACE="courier, courier new, monospace">CONNECT by TCP to <I>portNum</I> on <I>server</I>.</FONT></A><P></pre><pre><A NAME="1062179"><FONT FACE="courier, courier new, monospace">Get the BANNER screen URLs using <I>wmapBannerCmds</I>.</FONT></A><P></pre><pre><A NAME="1062298"><FONT FACE="courier, courier new, monospace">LOGIN with <I>loginFormat</I> and <I>passwordFormat</I> using <I>wmapLoginCmd</I> and<br><I>wmapLoginData</I>. Get redirect URL response.</FONT></A><P></pre><pre><A NAME="1062304"><FONT FACE="courier, courier new, monospace">CMD: get the redirect URL.</FONT></A><P></pre><pre><A NAME="1062299"><FONT FACE="courier, courier new, monospace">CMD: get the INBOX screens URLs using <I>wmapInboxCmds</I></FONT></A><P></pre><pre><A NAME="1062300"><FONT FACE="courier, courier new, monospace">IDLE for <I><FONT FACE="courier, courier new, monospace">idleTime</FONT></I>.</FONT></A><P></pre><pre><A NAME="1062182"><FONT FACE="courier, courier new, monospace">Repeat this part <I><FONT FACE="courier, courier new, monospace">numLoops</FONT></I> times (or until test ends)<br>{</FONT></A><P></pre><pre><A NAME="1062276"><FONT FACE="courier, courier new, monospace"> HEADERS: get the message list using <I>wmapCheckCmd</I>.</FONT></A><P></pre><pre><A NAME="1062185"><FONT FACE="courier, courier new, monospace"> For each new message<br> {</FONT></A><P></pre><pre><A NAME="1062188"><FONT FACE="courier, courier new, monospace"> RETRIEVE message using <I>wmapMsgReadCmds</I>.</FONT></A><P></pre><pre><A NAME="1062191"><FONT FACE="courier, courier new, monospace"> }</FONT></A><P></pre><pre><A NAME="1062193"><FONT FACE="courier, courier new, monospace"> IDLE for <I><FONT FACE="courier, courier new, monospace">loopDelay</FONT></I></FONT></A><P></pre><pre><A NAME="1062194"><FONT FACE="courier, courier new, monospace">}</FONT></A><P></pre><pre><A NAME="1062195"><FONT FACE="courier, courier new, monospace">LOGOUT using <I>wmapLogoutCmds</I>.</FONT></A><P></pre><pre><A NAME="1062196"><FONT FACE="courier, courier new, monospace">IDLE for <I><FONT FACE="courier, courier new, monospace">blockTime</FONT></I></FONT></A><P></pre><A NAME="Interpreting Test Results"></A><A NAME="1047217"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="black"> <B>
Interpreting Test Results</B></FONT></A><P>
<A NAME="1034169">
Consider these points when reviewing the results of a Mailstone test: </P></A>
<ul><P><A NAME="1091707"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">Was the system properly configured?</FONT></LI></A><P><A NAME="1091774"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">Are the results repeatable?</FONT></LI></A><P><A NAME="1091721"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">Did the test measure what you wanted? </FONT></LI></A><P><A NAME="1091749"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">Was there a performance bottleneck? </FONT></LI></A><P><A NAME="1012587"><LI><FONT FACE="PrimaSans BT, Verdana, Sans-Serif">Was the mail server message store in the proper state for the test?</FONT></LI></A></ul><A NAME="1091786">
Testing is often an iterative process where server configuration parameters are adjusted to get the best performance for your requirements. You can record much of this configuration using PRETEST sections to list configuration state in the results report. For example, both Netscape Messaging Server and Directory Server are shipped with access logging enabled. This may reduce performance, but may be required for other reasons.</P></A>
<A NAME="1091735">
Modern servers use many caching techniques to improve performance. You should repeat any tests until you get repeatable results.</P></A>
<A NAME="1091765">
Mailstone reports everything that it measures, but not all measurements will be meaningful. For maximum rate tests, the server is under extreme stress and only the throughput or transaction rate have real meaning. For specific workload rate tests, then the throughput and transaction rate are fixed and parameters like response time and CPU usage are meaningful.</P></A>
<A NAME="1012589">
Every mail server has a series of components that can limit either the maximum throughput or the maximum transactions rate. These are the typical critical components: client network, mail server CPU/memory, mail server disk, and directory server. For example, a message download test with very large messages will most likely be limited by the client network throughput whereas the same test with very small messages will most likely be limited by the disk seek latency. It is often useful to determine these maximums for the system and then compare them to your performance requirements. </P></A>
<A NAME="1091634">
You can see from the above example that you get two very different tests depending on what was in the mail server message store when the test was run. This kind of information will not show up in the results report unless you explicitly specify it using the <FONT FACE="courier, courier new, monospace">-b </FONT><I><FONT FACE="courier, courier new, monospace">banner</FONT></I> and/or the <FONT FACE="courier, courier new, monospace">-n </FONT><I><FONT FACE="courier, courier new, monospace">notes</FONT></I> arguments. You will often have to perform multiple Mailstone runs to get the message store in the right state for your tests. For example, you might run this sequence to test the maximum throughput.</P></A>
<pre><A NAME="1091644"><FONT FACE="courier, courier new, monospace">mstone pop-every -b 'Drain messages from store'</FONT></A><P></pre><pre><A NAME="1091645"><FONT FACE="courier, courier new, monospace">mstone smtp32k-every -b '32K messages for each mailbox'</FONT></A><P></pre><pre><A NAME="1091654"><FONT FACE="courier, courier new, monospace">mstone pop -t 5m -b 'POP download rate of 32K messages'</FONT></A><P></pre><A NAME="1091659">
The first two tests would be custom to your installation. They would access every mailbox so that each is in the same state. You would configure this using <FONT FACE="courier, courier new, monospace">sequentialLogins</FONT>, <FONT FACE="courier, courier new, monospace">sequentialAccounts</FONT>, and <FONT FACE="courier, courier new, monospace">maxBlocks</FONT>. Then you have a known state for the download throughput test.</P></A>
<BR></TD></TR><TR> <TD BGCOLOR="#9999CC"><A HREF="#top"><IMG SRC="up.gif" BORDER=0></A><A NAME="Removing Mailstone"></A><A NAME="1043075"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="white"> <B>Removing Mailstone</B></FONT></A></TD></TR><TR><TD><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" Size=-1><A NAME="1043301">
To remove Mailstone files from testclient machines, run the <FONT FACE="courier, courier new, monospace">cleanup</FONT> utility. The <FONT FACE="courier, courier new, monospace">cleanup</FONT> utility uses the following syntax:</P></A>
<pre><A NAME="1043302"><FONT FACE="courier, courier new, monospace">cleanup</FONT></A><P></pre><A NAME="1034339">
Save your test configuration and results by moving the <FONT FACE="courier, courier new, monospace">conf</FONT> and <FONT FACE="courier, courier new, monospace">results</FONT> directories to a safe place.</P></A>
<A NAME="1061901">
To uninstall Mailstone, remove the<FONT FACE="courier, courier new, monospace"> mailstone</FONT> directory and all of its subdirectories.</P></A>
<BR></TD></TR><TR> <TD BGCOLOR="#9999CC"><A HREF="#top"><IMG SRC="up.gif" BORDER=0></A><A NAME="Appendix"></A><A NAME="1048564"><FONT FACE="Palatino, Serif" SIZE="+2" COLOR="white"> <B>Appendix</B></FONT></A></TD></TR><TR><TD><FONT FACE="PrimaSans BT, Verdana, Sans-Serif" Size=-1><A NAME="Adding Test Users to Directory Server 3.x"></A><A NAME="1070747"><FONT FACE="Palatino, Serif" SIZE="-1" COLOR="black"> <B>
Adding Test Users to Directory Server 3.x</B></FONT></A><P>
<A NAME="1070748">
You can use the Database Manager feature to add the test user account information in the <FONT FACE="courier, courier new, monospace">conf/mailhost.ldif</FONT> file to the LDAP Directory on your instance of Directory Server. </P></A>
<A NAME="1070749">
<B>Note:</B> This process will go faster if you first disable access logging on Directory Server. </P></A>
<A NAME="1070699">
<B>Directory Server 3.x</B>. To add test users with Directory Server version 3.x, follow these steps:</P></A>
<ol>
<P><a name="1070700">
<B><FONT FACE="ARIAL"><LI></FONT></B>Log in to the Directory Server. </LI>
</a>
<P><A NAME="1070701">
You must have read and execute permission to use Database Manager and read and
write permissions for the targeted entries in the LDAP directory. (You can run this
remotely using <FONT FACE="courier, courier new, monospace">-h </FONT><I><FONT FACE="courier, courier new, monospace">host</FONT></I>.)
</A></P><P><a name="1070702">
<B><FONT FACE="ARIAL"><LI></FONT></B>Go to the Database Manager screen as described in your Directory Server documentation. </LI>
</a>
<P><a name="1070703">
<B><FONT FACE="ARIAL"><LI></FONT></B>Select the `Add Entries' form. </LI>
</a>
<P><a name="1070704">
<B><FONT FACE="ARIAL"><LI></FONT></B>In the <FONT FACE="courier, courier new, monospace">Full Path to LDIF File</FONT> field, enter the full absolute path name to the <FONT FACE="courier, courier new, monospace">accounts.ldif</FONT> file that contains the test user entries you want to add. </LI>
</a>
<P><A NAME="1070705">
For example: <FONT FACE="courier, courier new, monospace">/usr/netscape/mailstone/conf/mailhost.ldif</FONT>
</A></P><P><a name="1070706">
<B><FONT FACE="ARIAL"><LI></FONT></B>Change the `Bind to Server' field if needed.</LI>
</a>
<P><a name="1070707">
<B><FONT FACE="ARIAL"><LI></FONT></B>Enter the Password.</LI>
</a>
<P><a name="1070708">
<B><FONT FACE="ARIAL"><LI></FONT></B>Click Okay. The entries are added to your Directory Server manager.</LI>
</a>
</ol>
<A NAME="1070709">
<B>Caution: </B>If you are using the Database Manager to update a Netscape Directory Server, be sure to use the Directory Server's <B>Add Entries </B>user interface so as not to overwrite any other entries. </P></A>
<A NAME="1070710">
See the <I>Directory Server Administrator's Guide</I> and online help for more information on adding entries to Netscape Directory Servers. </P></A>
<A NAME="Adding Test Users with ldapmodify"></A><A NAME="1070712"><FONT FACE="Palatino, Serif" SIZE="-1" COLOR="black"> <B>
Adding Test Users with ldapmodify</B></FONT></A><P>
<A NAME="1070713">
You can use the <FONT FACE="courier, courier new, monospace">ldapmodify</FONT> command line utility to add the test user account information in the <FONT FACE="courier, courier new, monospace">conf/mailhost.ldif</FONT> file to the LDAP Directory instance on your Directory Server. </P></A>
<A NAME="1070714">
<B>Note:</B> This process will go faster if you first disable access logging on the Directory Server. </P></A>
<A NAME="1070715">
The <FONT FACE="courier, courier new, monospace">ldapmodify</FONT> utility is provided with Messaging Server in <I><FONT FACE="courier, courier new, monospace">server-root</FONT></I><FONT FACE="courier, courier new, monospace">/shared/bin</FONT>.</P></A>
<A NAME="1070716">
To update the LDAP Directory with <FONT FACE="courier, courier new, monospace">ldapmodify</FONT>, follow these steps:</P></A>
<ol>
<P><a name="1070717">
<B><FONT FACE="ARIAL"><LI></FONT></B>In Unix environments, make sure your <FONT FACE="courier, courier new, monospace">LD_LIBRARY_PATH</FONT> environment variable is correctly set. </LI>
</a>
<P><A NAME="1070718">
For example:
</A></P><P><A NAME="1070719">
<FONT FACE="courier, courier new, monospace">setenv LD_LIBRARY_PATH </FONT><I><FONT FACE="courier, courier new, monospace">server-root</FONT></I><FONT FACE="courier, courier new, monospace">/lib
</FONT>
</A></P><P><a name="1070720">
<B><FONT FACE="ARIAL"><LI></FONT></B>Go to the directory containing the LDIF files. </LI>
</a>
<P><A NAME="1070721">
For example: <FONT FACE="courier, courier new, monospace">cd ../mailstone/conf/mailhost.ldif</FONT>
</A></P><P><a name="1070722">
<B><FONT FACE="ARIAL"><LI></FONT></B>Run <FONT FACE="courier, courier new, monospace">ldapmodify</FONT> to update the LDAP Directory. </LI>
</a>
<P><A NAME="1070723">
For example:
</A></P><P><A NAME="1070724">
<I><FONT FACE="courier, courier new, monospace">server-root/</FONT></I><FONT FACE="courier, courier new, monospace">shared/bin/ldapmodify -h mailhost -a \<br>
-D 'cn=directory manager' -w </FONT><I><FONT FACE="courier, courier new, monospace">d_m_password</FONT></I><FONT FACE="courier, courier new, monospace"> \<br>
&lt; accounts.ldif
</FONT>
</A></P></ol>
<A NAME="1070725">
<B>Caution:</B> If you are using <FONT FACE="courier, courier new, monospace">ldapmodify</FONT> to update a Netscape Directory Server be sure to use the <FONT FACE="courier, courier new, monospace">-a</FONT> option so as not to overwrite any existing entries. </P></A>
<A NAME="1070726">
See the <I>Directory Server Administrator's Guide</I>, and online Help for more information on adding entries to Netscape Directory Servers and the <FONT FACE="courier, courier new, monospace">ldapmodify</FONT> utility. </P></A>
<A NAME="1070641">
</P></A>
</FONT>
</TD>
</TR>
<TR>
<TD>&nbsp;
</TD>
</TR>
<TR>
<TD BGCOLOR="#9999CC"><A HREF="#top"><IMG SRC="up.gif" BORDER=0></A>
</TD>
</TR>
</TABLE>
<BR>
<FONT FACE="PrimaSans BT, Verdana, Sans-Serif" SIZE=-2 COLOR="#999999">
&copy; Copyright 1999 Netscape Communications Corp., a subsidiary of America Online, Inc. All rights reserved.
</FONT> </CENTER>
<BR>
</BODY>
</HTML>