When two workstations connect, the response time from one workstation to the other can vary, partly due to CPU loading, but mostly due to link throughput limitations. To address this issue, a set of link "tolerances" can be specified in the Setup.ini file. The tolerances are only applied to the RPCResendDelay and RPCReconnectTime settings.
A "tolerance factor" is specified as a percentage value, so a tolerance factor of 100 is unity, 300 is 3 times the value, and 50 is half of the value. This allows the specification of a set of base and system default values and tolerances for each peer-to-peer connection that requires them.
It is desirable to be able to specify the settings for an entire system in one file (Setup.ini – see Setup.ini), which can then be installed on all workstations in the system. This is achieved by establishing a section heading in Setup.ini that identifies a particular workstation or IP interface in the system and contains all the tolerance settings (specified as entries within the section) for other workstations with which this workstation can communicate. There are, however, a number of variations in how the tolerance settings are specified.
On a system consisting entirely of single homed workstations, "LinkTolerance-Name" (where name is a workstation name, as returned by WkStaInfo()) is sufficient to uniquely identify the network pathway from that workstation to other workstations. For multi-homed systems, it may be necessary to use "LinkTolerance-IP" (where IP is the IP of a network interface) to identify tolerances for different network pathways between two workstations.
To resolve ambiguity and provide flexibility, each workstation uses the following methods and rules to extract the tolerance setting from the Setup.ini file when a connection is established. The rules are performed in the order listed:
1. A search is made for a section called [LinkTolerance-LocalIP], where LocalIP is the IP of the local workstation. If found, that section is searched for the IP of the remote workstation. If the IP of the remote workstation is not found, the section is searched for the name of the remote workstation.
2. If step 1 (above) did not produce a tolerance, a search is made for a section called [LinkTolerance-LocalName], where LocalName is the name of the local workstation. If found, that section is searched for the IP of the remote workstation. If the IP of the remote workstation is not found, the section is searched for the name of the remote workstation.
3. If step 2 (above) did not produce a tolerance, a search is made for a section called [LinkTolerance-RemoteIP], where RemoteIP is the IP of the remote workstation. If found, that section is searched for the IP of the local workstation. If the IP of the local workstation is not found, the section is searched for the name of the local workstation.
4. If step 3 (above) did not produce a tolerance, a search is made for a section called [LinkTolerance-RemoteName], where RemoteName is the name of the remote workstation. If found, that section is searched for the IP of the local workstation. If the IP of the local workstation is not found, the section is searched for the name of the local workstation.
5. If step 4 (above) did not produce a tolerance, a search is made for a section called [LinkTolerance-LocalIP], where LocalIP is the IP of the local workstation. If found, that section is searched for an entry called "Default".
6. If step 5 (above) did not produce a tolerance, a search is made for a section called [LinkTolerance-LocalName], where LocalName is the name of the local workstation. If found, that section is searched for an entry called "Default".
7. If step 6 (above) did not produce a tolerance, a search is made for a section called [LinkTolerance-RemoteIP], where RemoteIP is the IP of the remote workstation. If found, that section is searched for an entry called "Default".
8. If step 7 (above) did not produce a tolerance, a search is made for a section called [LinkTolerance-RemoteName], where RemoteName is the name of the remote workstation. If found, that section is searched for an entry called "Default".
9. If step 8 (above) did not produce a tolerance, default to 100% of the tolerances.
Note that this procedure is only carried out the first time that a connection is established between two workstations.
The "Default" setting within the sections allow you to specify a default tolerance for all connections from the workstation or interface identified in the section header. This can significantly reduce the maintenance overhead of these tolerance sections.
For example:
[LinkTolerance-FREDSPC]
Default = 200
[LinkToleance-GONZOSPC]
BOBSPC = 300
Default = 150
JOESPC = 100
This will cause workstation FREDSPC to have a 200% tolerance of all workstations connected to it. GONZOSPC will have a 300% tolerance of workstation BOBSPC, a 100% tolerance of JOESPC and a 150% tolerance of all other workstations.
It should be noted that these settings must be specified in Setup.ini and not in service configuration files.
Note: It is strongly recommended that you use workstation names other than IP addresses whenever possible, especially in networks where the workstations may be dual-homed, or where dynamic IPs are assigned. Since workstation names are unique, it is good practice to condition yourself to use workstation names, rather than IP addresses, even if yours system configuration does not currently require the use of workstation names.