protected virtual ResponseItem DoProcessRequestItem(RequestItem requestItem) { if (log.IsDebugEnabled) { log.Debug("요청 Id=[{0}], Method=[{1}], Query=[{2}]에 대한 작업 처리를 시작합니다.", requestItem.Id, requestItem.Method, requestItem.Query); } var stopwatch = new Stopwatch(); stopwatch.Start(); var responseItem = new ResponseItem(requestItem); if (requestItem.Query.IsWhiteSpace()) { return(responseItem); } try { ExecuteQueries(requestItem.PreQueries); var adoParams = requestItem.BuildAdoParameters().ToArray(); if (requestItem.ResponseFormat == ResponseFormatKind.ResultSet) { OpenQuery(requestItem, responseItem, adoParams); } else { ExecuteQuery(requestItem, responseItem, adoParams); } ExecuteQueries(requestItem.PostQueries); } catch (Exception ex) { if (log.IsErrorEnabled) { log.ErrorException("쿼리문 수행에 실패했습니다. Query=" + requestItem.Query, ex); } responseItem.Errors.Add(new ErrorMessage(ex)); } stopwatch.Stop(); responseItem.ExecutionTime = stopwatch.Elapsed; if (log.IsDebugEnabled) { log.Debug("요청 Id=[{0}], Method=[{1}], Query=[{2}]에 대한 작업 처리를 완료했습니다!!! 수행시간=[{3}]", requestItem.Id, requestItem.Method, requestItem.Query, responseItem.ExecutionTime); } return(responseItem); }