DBWEB: dbWeb Service Stops Responding During Concurrent Requests

ID: Q152793


The information in this article applies to:


SYMPTOMS

Moderate: Requires basic macro, coding, and interoperability skills.

When the dbWeb Service receives two or more hits at the same time, the service may stop responding (hang) and display one of the following error messages:

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
Catch -- dbWebClient

   -or- 
Request failed
The network connection encountered an error.
Please try again later.
Catch -- dbWebClient

This can occur occasionally when you use the Microsoft Access ODBC driver (Odbcjt32.dll) to connect to Microsoft Access databases for publishing on a World Wide Web site using dbWeb 1.0.


CAUSE

When a site has two or more concurrent requests, the dbWeb service spawns a separate execution thread for each request. When a thread is no longer used, it must be terminated. When the dbWeb service enters a routine to clean up unused threads generated by the concurrent requests, and encounters a deadlock, it will not return from a wait state. This causes the dbWeb CGI client stub program to time out. This behavior can occur with the Microsoft Access ODBC driver (Odbcjt32.dll).


RESOLUTION

There are two workarounds for this problem:


STATUS

Microsoft has confirmed this to be a problem in Microsoft dbWeb 1.0. This problem no longer occurs in Microsoft dbWeb version 1.1.


MORE INFORMATION

Each command loaded by the Dbwstop.bat file is entered into the Windows NT Registry. Because each command is a Registry entry, the Dbwstop.bat file is used only to load AT commands. The Registry values entered are static and will remain until removed even after the server has been restarted. Setting the "Schedule Service Startup Type" to Automatic ensures that the Schedule Service will also restart.

The examples demonstrated in this article establish a schedule of stopping and restarting the dbWeb service on a periodic basis. An analysis of the dbWeb site should be performed to determine the best interval for the stop and restart to occur. The Stop and Restart action only needs about 4 seconds or so on a 66mhz 486 computer with 32mb RAM. Faster hardware should perform at least as well.

Altering the schedule will require you to make additional entries to the Dbwstop.bat file for shorter intervals between actions or fewer entries for longer intervals. You can control the interval by altering the time value immediately following the AT in the command line. Once you make changes to the Dbwstop.bat file, you must remove any previous schedule (if any) from the Registry by typing the following command in an MS-DOS window:

AT /delete

NOTE: The "at /delete" command removes all schedule service entries. If any scheduled events--unrelated to dbWeb--are set, you need to re-enter them into the schedule. Once you remove the previous entries, you can run the Dbwstop.bat file again.

The actions controlled by the Schedule service are performed as background tasks; they run transparently without any feedback.


REFERENCES

For more information about AT commands, search for "NT Commands," and then "AT" using the Microsoft Windows NT Server Help Index.

Additional query words: CGI error failed locked up


Keywords          : kberrmsg NpdOthr 
Version           : 1.0
Platform          : WINDOWS 
Issue type        : kbprb 

Last Reviewed: April 22, 1999