I am using the following function to check if a MySQL connection is in an invalid state or if it has reached a predefined maximum operation count:
/// <summary>
/// Holds the amount of operations for the currently mysql-connection open
/// </summary>
private int connectionUsageCount = 0;
/// <summary>
/// The maximum usage count of the connection until it has to be refreshed
/// </summary>
private const int MAX_CONNECTION_USAGE_COUNT = 100;
/// <summary>
/// Holds the cached MySql Connection to the databse server.
/// </summary>
private MySqlConnection mySqlConnection;
/// <summary>
/// Checks the status of the sql connection and refreshes it when necessary.
/// </summary>
private void CheckSqlConnection()
{
// Check if the connection is in an invalid state or
// the connection has to be refreshed and refresh it
// when necessary
if (mySqlConnection == null
|| mySqlConnection.State == System.Data.ConnectionState.Broken
|| mySqlConnection.State == System.Data.ConnectionState.Closed
|| connectionUsageCount >= MAX_CONNECTION_USAGE_COUNT)
{
// If the connection was already initialized, close and dispose it
if (mySqlConnection != null)
{
// If connection is open, close it
if (mySqlConnection.State != System.Data.ConnectionState.Broken
&& mySqlConnection.State != System.Data.ConnectionState.Closed)
{
mySqlConnection.Close();
}
mySqlConnection.Dispose();
mySqlConnection = null;
}
// Create new connection
mySqlConnection = new MySqlConnection(this.ConnectionString.ToString());
}
}
Can anyone review this piece of code and tell provide me with some feedback? I am not sure if I have covered all possibilities that would cause an error when using the mySqlConnection
.