/// <summary> /// MySql Connection을 연결합니다. /// </summary> /// <param name="db">DAAB MySqlProvider 인스턴스</param> /// <param name="tryCount">연결 실패 시, 재 시도 횟수</param> /// <returns>새로 연결된 <see cref="MySqlConnection"/>의 인스턴스, 만약 연결에 실패했다면 null을 반환합니다.</returns> internal static MySqlConnection OpenConnection(this MySqlDatabase db, int tryCount) { if (IsDebugEnabled) { log.Debug("MySql Database를 연결하려고 합니다..."); } MySqlConnection connection = null; var count = 0; for (var i = 0; i < tryCount; i++) { try { if (IsDebugEnabled) { log.Debug("MySqlConnection을 생성하고, 비동기 방식으로 Open합니다. 시도 횟수=[{0}]", ++count); } connection = (MySqlConnection)db.CreateConnection(); connection.Open(); if (connection.State == ConnectionState.Open) { if (IsDebugEnabled) { log.Debug("MySqlConnection을 연결했습니다!!!"); } return(connection); } } catch (Exception ex) { HandleConnectionError(db, ex, count); } } Guard.Assert(connection != null && connection.State != ConnectionState.Closed, "MySql Connection을 열지 못했습니다!!!"); return(connection); }