Getting Web App to run reliably

Q: How can I get my dBASE Web app to run reliably?

A: please review the following list and check your web server to ensure that you are doing all of these things:

1. Build your dBASE web applications using the WEB keyword in the BUILD command.


2. Rename your web apps to use the .dbw file extension.

3. Configure your web server to use Web Application Mapping to find and execute your .dbw files.
By using Web Application Mapping, your web server, such as IIS or Apache will execute your web applications by using the file extension of your web app (.dbw) to indicate that it should be run using a predefined command line (eg. plusrun "yourAppPathAndName.dbw" ).


Detailed Steps to Configure IIS 6:

Detailed Steps to Configure Apache:

4. Create an environment setting for DBASE_SUPPRESS_STARTUP_DIALOGS=1 on your web server to notify the dBASE runtime that it should NOT attempt to display any error dialogs during its startup sequence.


5. Create an .ini file for each of your .dbw's that sets errorAction to one of the options that are appropriate for a web application: 0, 1, 2, or 3.
I recommend using errorAction 3 - Send HTML Error, Log Error, & Quit.
Make sure that these .ini files are installed on your web server in the same folder as your .dbw's and that they are set to be ReadOnly (unless you are doing some custom updates to the .ini file from your .dbw).


6. Ensure that your web pages invoke your .dbw's by specifying the .dbw name rather than the .exe name.

For example:
In the HTML code created by your web app, make sure that HREF's specify a .Dbw to execute rather than an .exe for any dBASE Web Applications.
<A HREF="/YourWebApp/YourLookup.Dbw"> Execute Search </A>
Also, After doing some tests we found that multiple instances of the BDE or dBASE Runtime can produce these issues ...

if getting 'Database cannot be opened' or 'Engine configuration file cannot be found' error or if your app is just hanging.....

we recommend examining the web app code to
1. Look for ways to speed up any slow parts

2. Consider calling a non-BDE based routine where possible to handle any lengthy processing

3. Prevent any web apps that do NOT open any tables from connecting to the BDE by adding the following lines to their .ini files: [DataEngine] DefaultEngine=NONE

4. Examine the most used web apps and, where possible, pass user id and security info as info values in the web pages rather than looking them up again within each web app. (which may allow you to not connect to the BDE from the MainMenu web app.

5. Change the error message that your user's see to say "Server is Busy - please try again in a few minutes"
(instead of saying: "CGI Gateway failed... Please Press -F5- Re-Try.......")