We have a legacy database system called Universe, which is owned by Ardent Software. Ardent offers a product called uvObjects which is a single-threaded DLL that can be loaded on a PC and allows a connection to the database to read and write files and run commands and subroutines written in the Universe Basic language.
We want to create a Web server application using WebClasses or Active Server Pages (ASP) that will hold a reference to this DLL and be able to access the database anytime the user makes a request. We feel that with many users, the browser would time out and the users would never get their data.
Do you have any ideas on how we can work around this issue? We have given thought to using some type of message queue, but question the response time. Also, a DHTML application may be a possibility although we'd like to leave everything at the server level. Microsoft has said that using single-threaded components with ASP can cause Internet Information Server (IIS) 5.0 to crash.
One interesting approach, and one that is used on some of the most popular e-commerce sites out there, is to use Dictionary objects. You would load as much data as makes sense into the Dictionary objects when the Web application starts, then access the data from the Dictionary objects rather than from the database.
This approach simplifies some things, such as database connection issues and, in some ways, threading issues. The Dictionary is part of the Microsoft Scripting Runtime library (scrrun.dll). Alternatively, you can use the dictionary object that is part of Microsoft Commerce Server; they are very similar. I am currently building e-commerce systems for one of the biggest online sports equipment retailers on the net. We routinely use this approach and it works very well.