Hi Tim,
Have you had a chance to look at the suggestions in my last reply or have
you got any further ideas on this issue? If there're any further things we
can help, please feel free to post here.
Thanks,
Regards,
Steven Cheng
Microsoft Online Support
Get Secure!
www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
| X-Tomcat-ID: 158848602
| References: <
[email protected]>
<O#
[email protected]>
| MIME-Version: 1.0
| Content-Type: text/plain
| Content-Transfer-Encoding: 7bit
| From: (e-mail address removed) (Steven Cheng[MSFT])
| Organization: Microsoft
| Date: Thu, 01 Sep 2005 09:13:15 GMT
| Subject: Re: ASP.NET SQL Processes
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
| Message-ID: <
[email protected]>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| Lines: 95
| Path: TK2MSFTNGXA01.phx.gbl
| Xref: TK2MSFTNGXA01.phx.gbl
microsoft.public.dotnet.framework.aspnet:121662
| NNTP-Posting-Host: tomcatimport2.phx.gbl 10.201.218.182
|
| 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-us/csref/html/vclrfusingstatement.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-us/dnsqlmag03/html/The_NETConnectionPoo
| 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" <
[email protected]>
| | References: <
[email protected]>
| | 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#
[email protected]>
| | Newsgroups: microsoft.public.dotnet.framework.aspnet
| | NNTP-Posting-Host: 212.143.94.2
| | Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.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
| |
| | | | > 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
| |
| |
| |
|
|