diff --git a/OpenSim/Data/MySQL/MySQLAuthenticationData.cs b/OpenSim/Data/MySQL/MySQLAuthenticationData.cs index e96a123348..a41f9f8f40 100644 --- a/OpenSim/Data/MySQL/MySQLAuthenticationData.cs +++ b/OpenSim/Data/MySQL/MySQLAuthenticationData.cs @@ -82,12 +82,16 @@ namespace OpenSim.Data.MySQL ret.Data[s] = result[s].ToString(); } + CloseDBConnection(cmd); return ret; } + else + { + CloseDBConnection(cmd); + return null; + } } } - - return null; } public bool Store(AuthenticationData data) diff --git a/OpenSim/Data/MySQL/MySQLFramework.cs b/OpenSim/Data/MySQL/MySQLFramework.cs index c756c9cf45..f37e9bcb6c 100644 --- a/OpenSim/Data/MySQL/MySQLFramework.cs +++ b/OpenSim/Data/MySQL/MySQLFramework.cs @@ -47,7 +47,6 @@ namespace OpenSim.Data.MySQL protected MySqlFramework(string connectionString) { m_Connection = new MySqlConnection(connectionString); - m_Connection.Open(); } @@ -82,8 +81,7 @@ namespace OpenSim.Data.MySQL errorSeen = true; m_Connection.Close(); - MySqlConnection newConnection = (MySqlConnection) - ((ICloneable)m_Connection).Clone(); + MySqlConnection newConnection = (MySqlConnection)((ICloneable)m_Connection).Clone(); m_Connection.Dispose(); m_Connection = newConnection; m_Connection.Open(); @@ -104,14 +102,16 @@ namespace OpenSim.Data.MySQL protected IDataReader ExecuteReader(MySqlCommand cmd) { - MySqlConnection newConnection = (MySqlConnection) - ((ICloneable)m_Connection).Clone(); - + MySqlConnection newConnection = (MySqlConnection)((ICloneable)m_Connection).Clone(); newConnection.Open(); cmd.Connection = newConnection; - return cmd.ExecuteReader(); } + + protected void CloseDBConnection(MySqlCommand cmd) + { + cmd.Connection.Dispose(); + } } } diff --git a/OpenSim/Data/MySQL/MySQLRegionData.cs b/OpenSim/Data/MySQL/MySQLRegionData.cs index 04b24b6362..3fe27d5702 100644 --- a/OpenSim/Data/MySQL/MySQLRegionData.cs +++ b/OpenSim/Data/MySQL/MySQLRegionData.cs @@ -172,6 +172,8 @@ namespace OpenSim.Data.MySQL retList.Add(ret); } + + CloseDBConnection(cmd); } return retList; diff --git a/OpenSim/Data/MySQL/MySQLUserAccountData.cs b/OpenSim/Data/MySQL/MySQLUserAccountData.cs index c713a119d3..38a6f55ed3 100644 --- a/OpenSim/Data/MySQL/MySQLUserAccountData.cs +++ b/OpenSim/Data/MySQL/MySQLUserAccountData.cs @@ -97,12 +97,16 @@ namespace OpenSim.Data.MySQL ret.Data[s] = result[s].ToString(); } + CloseDBConnection(cmd); return ret; } + else + { + CloseDBConnection(cmd); + return null; + } } } - - return null; } public bool Store(UserAccountData data)