Hi Joris,

I spent a great deal of time trying to find a solution for this problem.
Oracle Client is not the issue, but your class that is used to access the
database. I was not able to write a good enough class that would manage the
connection and would be able to recover from all sorts of network or server
problems.
In the end I turned to the Enterprise Library and used the Data Access
Application Block. The paradigm of this API is to close the connection as
soon as you have finished doing your db business. Database connections are
very important resources and they should be managed carefully.
Read the EntLib documentation, the walktroughs for the DAAB and everything
will become clear.
After I refactored my application to use EntLib's DAAB I was able to recover
in every thread of my multithreaded application for any of these failures:
- client side network cable disconnection;
- server side network cable disconnection (yes, the behavior is different);
- server machine reboot;
I have been bothered by this issue since Visual Studio 5 and Oracle 8i.
If you need additional information, I would be glad to help you out.
I know it may seem like a dramatic change, but believe me, it is worth it.

Regards,
Eddie





-----Original Message-----
From: Discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] Behalf Of Joris
Zwaenepoel
Sent: Wednesday, February 01, 2006 11:51 AM
To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
Subject: [ADVANCED-DOTNET] Oracle client hangs after network error


Hi all,



I have a problem with a VB.NET application that sometimes hangs when a
network error occurs.  I ave been able to reproduce this behaviour by
creating a small application that does a lot of database access, then
starting multiple instance of this application and then disconnecting
the network.  Most of the time, the application gets an exception, but
now and then an instance does not get an exception and hangs < forever >
(that's what it looks like).



I have seen this behaviour also a few years ago with clients written in
VB6, and I have seen multiple posts in newsgroups about similar
problems.



Is this known behaviour for Oracle Client applications ?  If have read
some posts in newsgroups where this is described as < by design >, but
never with an official reference (something I can use to convince the
end-user that this caused by an Oracle problem, not by bas
VB-development).



Does anyone know how to solvr this issue ?  I tried to keep the app
running by doing all the database access on an other thread and
implementing a timeout in VB.NET, and that worked.  But when the
application (Windows Forms) is ended, the process is still running
(because of the hanging threads that keep the process alive forever).



I have no idea how this is handled by others?



Joris Zwaenepoel

MCSD


This e-mail and any attached files are confidential and is legally
privileged. If you are not the intended recipient and/or if you have
received this transmission in error, please do not read, copy, use or
disclose this communication to others. Also please notify the sender by
replying to this message and then delete it from your system. PROMATIC does
not accept liability for the correct and complete transmission of the
information, nor for any delay or interruption of the transmission, nor for
damages arising from the use of or reliance on the information. Any views
expressed in this email are those of the individual sender and may not
necessarily reflect the views of PROMATIC. If any doubt, please contact
management for confirmation.



===================================
This list is hosted by DevelopMentor.  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to