subgenius used Ask the Experts™
We have a vendor developed, customized application that, among other things, builds an aspx web page using a link that looks like this:

http://(ip address here)/aFolder/CPED.aspx?I=BM{4BG76747-5A7A-45A2-BCDF-5DE105E75B2D}

The part in the curly braces is an identifier used to retrieve a database record, so there is a database lookup involved.

Here's the problem:
When the URL is accessed the first time, the page opens just fine.  If the browser is closed and re-opened and the URL (or a similar URL calling a different database record)is accessed a second time, the is an aspx error page that indicates a failure at
Occasionally, we successfully open the page on the 2nd attempt but usually we have to restart IIS before successfully opening the aspx page again.  More often, the second attempt results in a long delay and an error page that indicates a "Server Application Error".  
Having eliminated network timeout issues, the vendor now wants me to re-install MDAC_TYP.exe and the Oracle ODBC drivers in a different order from the first install.  The vendor claims that a similar setup, as described, works perfectly in their lab but their setup is not an exact duplicate of ours. This project is in pre-production and has not yet had a successful end-to-end test.

My questions:
1. Is it safe to install the same Oracle ODBC drivers and the same MDAC on top of the existing ones?
2. Does anyone have any suggestions on possible causes for this error?  Could connection pooling be involved?

The system is as follows(in order of installation):
- Windows 2000 Server SP2
- IIS installed (Web services only)
- .NET Framework Redistributable installed (runtime components)
- .NET Framework Service Pack 2
- MDAC_TYP installed (not sure which version but will find out if necessary)
- Oracle ODBC installed (the app makes calls to an Oracle DB on another server)
- The clients used to access the URL have .NET Runtime components installed.

I am a system admin, not a developer so I'm not intimately familiar with .NET.  If more info is needed, I will be happy to provide it.
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

1) yes
2) What is the exact error-message you get? A failure may indicate that a connection is already open (and thus not closed the last time). I suggest to look into that.

fist sugestion is to dump oracle.

seriously, unless you have a awesome DBA with 10+ yrs with it, it is nothing but a pain.  You will spend more time tweeking it than anything else.

second make sure the code is closing the connections and look at your connection count.
If you are using classes to open and connect to you either put a method in the finalize to close the database connection, or explicitally call a close from the aspx code.

I would create a connected_flag in the class, and method to close/open the connection, call this from finalize or thorugh an interface.

dot net seems to be lazy over database connections, this seems to be over the use of the garbage collector imnplementation.  Most of the code examples given rely on the garbage collector to close the connection.

I hope this is clear



Thanks. I'll take a look at it again today with your suggestions.  I was too busy yesterday to re-visit this problem.  What is the best, easiest way to get a connection count?  From the IIS log or is there another way?


forcing a call to Garbage collector got us past the problem.  sorry it took so long to get back with the points.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial