A thread-safe dictionary component for use in the Session and Application instead of the built-in scripting.dictionary component, which is not thread-safe. I did not write this component. The original author has evaporated, so I have archived it for the betterment of mankind.
The Dictionary Object is a COM component designed to work with any scripting environment (it also supports native interfaces within Visual Basic and Visual C++). Whether you are using IIS/ASP or you are using the Windows Script Hosting environment, you can use this object to store items with an associated key. The key and the item can be any automation compatible data type such as strings, numbers and other automation objects.
This object is designed to be a replacement for the Scripting.Dictionary object. Special consideration has been made for the Dictionary object to work with IIS/ASP’s intrinsic Application and Session objects. You can store a reference to a Dictionary object in one or both of these objects without affecting the performance of your web application. This is accomplished by marking the Dictionary COM component as both apartment and free-threaded, aggregating the Free-Threaded Marshaler. Refer to Don Box’s excellent article, “House of COM”, Microsoft Systems Journal (now MSDN Magazine), September 1998. In the article he explains the impact each apartment model has on the performance of IIS and ASP. This component was developed with VC++ 6.0 and ATL 3.0 for the best performance possible.
Download the 78k zip file containing the DLL, source code, samples and documentation.