private static void DoProcessSqlSyncQueue(string workingKey, byte[][] bufferBytes) { try { bool hasClear = false; foreach (var buffer in bufferBytes) { DbBaseProvider dbProvider = null; SqlStatement statement = null; int result = 0; try { statement = ProtoBufUtils.Deserialize <SqlStatement>(buffer); dbProvider = DbConnectionProvider.CreateDbProvider("", statement.ProviderType, statement.ConnectionString); var paramList = ToSqlParameter(dbProvider, statement.Params); result = dbProvider.ExecuteQuery(statement.CommandType, statement.CommandText, paramList); } catch (DbConnectionException connError) { TraceLog.WriteSqlError("SqlSync Error:{0}\r\nSql>>\r\n{1}", connError, statement != null ? statement.ToString() : ""); if (dbProvider != null) { //modify error: 40 - Could not open a connection to SQL Server dbProvider.ClearAllPools(); //resend var paramList = ToSqlParameter(dbProvider, statement.Params); result = dbProvider.ExecuteQuery(statement.CommandType, statement.CommandText, paramList); } else { PutError(buffer, SqlSyncConnErrorQueueKey); } } catch (Exception e) { TraceLog.WriteSqlError("SqlSync Error:{0}\r\nSql>>\r\n{1}", e, statement != null ? statement.ToString() : ""); PutError(buffer); if (!hasClear && dbProvider != null) { //modify error: 40 - Could not open a connection to SQL Server hasClear = true; dbProvider.ClearAllPools(); } } finally { if (result > 0) { ProfileManager.ProcessSqlOfMessageQueueTimes(statement != null ? statement.Table : null); } else { ProfileManager.ProcessFailSqlOfMessageQueueTimes(statement != null ? statement.Table : null, 1); } } } } catch (Exception ex) { TraceLog.WriteError("DoProcessSqlSyncQueue error:{0}\r\n", ex.Message, ex.StackTrace); } }