Bug #37501 | Connection not closing when CommandBehavior.CloseConnection is used | ||
---|---|---|---|
Submitted: | 18 Jun 2008 20:48 | Modified: | 21 Jul 2008 20:59 |
Reporter: | Nathan Preston | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | Connector / NET | Severity: | S2 (Serious) |
Version: | 5.2.1.0 | OS: | Windows (XP and Server 2003, IIS 6) |
Assigned to: | CPU Architecture: | Any | |
Tags: | CommandBehavior |
[18 Jun 2008 20:48]
Nathan Preston
[19 Jun 2008 8:22]
Tonci Grgin
Hi Nathan and thanks for your report. I am puzzled as to what the real problem is: > *Connection is not being closed* ... even when CommandBehavior.CloseConnection is used to create the reader. > Looking at open connections verifies on the server that the connection remains open until reader.Close() is called. Just yesterday I reviewed entire MS specs on this matter and this behavior is correct. You *should* close the reader to signal the framework to close the associated connection as CommandBehavior.CloseConnection is used. Sync read test case (works on all .NET FW): MySqlConnection conn = new MySqlConnection(); MySqlDataReader dr; conn.ConnectionString = "DataSource=localhost;Database=test;UserID=root;Password=*****;PORT=****;Allow Zero Datetime=True;logging=True;Connect Timeout=3;Allow Batch=true;Persist Security Info=false;Max Pool Size=100;Pooling=true;Connection Reset=false;"; conn.Open(); MySqlCommand command = new MySqlCommand(); command.Connection = conn; command.CommandTimeout = 0; command.CommandType = CommandType.Text; command.CommandText = "SELECT * FROM boot LIMIT 500"; try { int count = 0; dr = command.ExecuteReader(CommandBehavior.CloseConnection); while (dr.Read()) { for (int i = 0; i < dr.FieldCount; i++) { Console.Write("{0}\t", dr.GetValue(i)); } Console.WriteLine(); } dr.Close(); Console.WriteLine("DONE"); if (conn.State == ConnectionState.Closed) { Console.WriteLine("Conn closed"); } } catch (Exception ex) { Assert.Fail(ex.Message); } } Result: [18.06.08 10:13:09] - Executing command QUERY with text ='SHOW VARIABLES' [18.06.08 10:13:09] - Executing command QUERY with text ='SHOW COLLATION' [18.06.08 10:13:09] - Executing command QUERY with text ='SET NAMES utf8;SET character_set_results=NULL' --<cut>-- 499 1999 IZV 05.10.99 some more data... 500 1999 IZV 05.10.99 some more data... DONE Conn closed Async sample (.NET FW 2+) is equally simple and works as expected. Can you point me to MS specs that clearly state that connection should be closed (with these settings) before associated reader is closed?
[19 Jul 2008 23:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
[21 Jul 2008 20:59]
Reggie Burnett
Thank you for your bug report. This issue has already been fixed in the latest released version of that product, which you can download at http://www.mysql.com/downloads/