Hi Tim,
I think the "process" you mentioned maybe means the "connection" from the
client application which made between the client and server. Yes, there may
occur such connection leak when we didn't protect the code well in our data
accessing application. In .NET, when we use the ADO.NET's connection
objects to connect SQLServer or other DB, the .NET will internally manage a
connection pool, when we create SqlConnections, the ADO.NET will retrieve
connection from the pool if there is existing connection available,
otherwise, creating new connection and pool it into the pool. So in our
applicaiton which performing data access through ADO.NET, we just need to
make sure, we call connection.Close to release the connection (release it
back to the .net's internal conneciton pool's management) after we
finishing used it. In your scenario, you'd like to make sure database
connection get relesed when there occurs unexpected exceptions, I think you
can consider wrapper your data accessing code into the classic
try .... catch...finally code block, for example:
[c#]
SqlConnection conn;
SqlCommand comm;
try
{
conn = new SqlConnection (....);
} catch( xxxException ex)
{
......
}finally
{
//DataReader.close if exist
conn.close();
}
all the code in finally block will be guranteed to get executed. Also, in
C# , there exist the
Using(SqlConnection conn = new .....)
{
....
}
Using statement will ensure that the object create in the (..) will be
guranteed to release after the execution section.
#using Statement
http://msdn.microsoft.com/library/en...tatement.asp?f
rame=true
Here is another msdn reference describing the .NET's connection pool
regarding on SQLServer:
#The .NET Connection Pool Lifeguard
http://msdn.microsoft.com/library/en...TConnectionPoo
lLifeguard.asp?frame=true
Hope also helps. Thanks,
Steven Cheng
Microsoft Online Support
Get Secure!
www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
| From: "Eliyahu Goldin" <re*************@monarchmed.com>
| References: <BF**********************************@microsoft.co m>
| Subject: Re: ASP.NET SQL Processes
| Date: Thu, 1 Sep 2005 11:47:27 +0200
| Lines: 22
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1506
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506
| Message-ID: <O#**************@TK2MSFTNGP10.phx.gbl>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: 212.143.94.2
| Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFT NGP10.phx.gbl
| Xref: TK2MSFTNGXA01.phx.gbl
microsoft.public.dotnet.framework.aspnet:121657
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| SQL server doesn't keep any processes attached to the application. It just
| serves data access requests select/update/insert/delete. It doesn't care
of
| the application errors.
|
| Eliyahu
|
| "Tim::.." <Ti*@newsgroups.nospam> wrote in message
| news:BF**********************************@microsof t.com...
| > Can someone please tell me how I get around this???
| >
| > I have an ASP.NET web application that uses an SQL 2000 database for the
| > majority of the web sites content... If the application comes up with
an
| > error the process on the SQL server remains alive. How do I make sure
that
| > the process is killed on the SQL server even if there is an error???
| >
| > I guess you use "TRY" but am new to asp.net programming and would
| appritiate
| > any examples or suggestions...
| >
| > Thanks
|
|
|