DB 接続をテストする次のコードがあります。DB の可用性をテストするために定期的に実行されます。
private bool CheckDbConn()
{
   SqlConnection conn = null;
   bool result = true;
   try
   {
       conn = DBConnection.getNewCon();
       ConnectionState conState = conn.State;
       if (conState == ConnectionState.Closed || conState == ConnectionState.Broken)
       {
          logger.Warn(LogTopicEnum.Agent, "Connection failed in DB connection test on CheckDBConnection");
          return false;
       }             
   }
   catch (Exception ex)
   {
      logger.Warn(LogTopicEnum.Agent, "Error in DB connection test on CheckDBConnection", ex);
      return false; // any error is considered as db connection error for now
   }
   finally
   {
      try
      {
         if (conn != null)
         {
            conn.Close();
         }
      }
      catch (Exception ex)
      {
         logger.Warn(LogTopicEnum.Agent, "Error closing connection on CheckDBConnection", ex);
         result = false;
      }
   }
   return result;
}
と:
static public SqlConnection getNewCon()
{
    SqlConnection newCon = new SqlConnection();
    newCon.ConnectionString = DBConnection.ConnectionString; // m_con.ConnectionString;
    newCon.Open();
    return newCon;
}
私の質問は次のとおりです。これは期待どおりに機能しますか?
具体的には、のテストが気になりConnectionStateます。状態が次のようになる可能性はありますか: 接続中 (Open()同期しているため)?
その場合はどうすればいいですか?