Page 93 - Mercury Manual.book
P. 93
MercuryX, dialling and scheduled access 88
Dialling considerations
area network. This mode is particularly suited to environments where dial-on-demand
routing or ISDN is used.
• Clients/servers When this option is selected, MercuryX will wait until all clients indi-
cate that they are idle before shutting them down. It will also wait until all server mod-
ules are idle before terminating the connection, but will not actually instruct the server
modules to go offline. This mode is intended to handle cases where the server modules
may be able to accept connections from both the outside world while the connection is
established, and from your local area network at other times.
Dialling considerations
The process of dialling and hanging up intermittent Internet connections can be one of the
most frustrating and complex issues in the Windows environment.
Properly speaking, dialling and hanging up are functions of the Windows networking com-
ponent that provides TCP/IP protocol support. This module, called WSOCK32.DLL, is a Mi-
crosoft-supplied component that is a built-in part of Windows. Unfortunately, it does not
work correctly, and is unlikely ever to do so - Microsoft have shown no inclination to address
its quite significant shortcomings. To explain why dialling and hanging up are system func-
tions and not application functions, consider the situation where Mercury/32 is running at the
same time as the user on the workstation is accessing the Internet using a web browser. If
Mercury hangs up the connection, then the web browser will also be disconnected; similarly,
if the user closes down the web browser and it hangs up the connection, Mercury will be cut
off in mid-stream. Clearly, the system-level Network module, WSOCK32.DLL (which is used
by both Mercury and the browser), is the only component in the system that knows how many
tasks are active and hence when it is appropriate to close the connection.
At the time of writing, the Microsoft WSOCK32.DLL supplied with Windows 95, 98, NT, 2000
and XP can initiate a dialup connection correctly, but will not correctly hang it up when it is
idle.
Microsoft's failure to make WSOCK32.DLL handle dialling and hanging up correctly has
meant that application developers have had to come up with their own solutions to the prob-
lem. In general, these solutions take two forms: writing calls to the Windows RAS subsystem
to force dialling and hanging up, and using functions in a special Microsoft Internet Explorer
4.x module called WININET.DLL to force dialling and hanging up. Mercury/32 supports both
these approaches.
1: Making RAS calls Under Windows NT, you can use the MercuryX scheduler module's
command options to use the Windows NT RASDIAL utility to establish and disestablish con-
nections. Alternatively, you can use a free version of RASDIAL written by Claudio Fahey,
called RASDIAL95. This utility, which works under all versions of Windows from Windows
95 onwards, is included with Mercury in the EXTRAS subdirectory of the directory where you
installed Mercury/32. The utility is easy to use and has a comprehensive readme file describ-
ing its operation. We wish to offer our appreciation and thanks to Claudio for allowing us to
include RASDIAL95 with Mercury/32.
2: Using WININET calls If you have Internet Explorer 4.0 or later installed on your system,
or you are using Windows 98 or later, then MercuryX can take advantage of special functions
provided on these systems to establish and disestablish Internet connections. To enable this
option, check one or both of the controls associated with it in the MercuryX configuration
dialog.