Microsoft MVP성태의 닷넷 이야기
비동기 DB 쿼리관련 질문 [링크 복사], [링크+제목 복사],
조회: 15246
글쓴 사람
채동민 (dm72.chae at samsung.com)
홈페이지
첨부 파일
 

늘 빠른 답변에 감사드립니다.

현재 사이트 사정상 클라이언트측 inactivity timeout을 10초로 변경해 두었는데 그런 상태에서 수백만건의 데이터를 쿼리할 경우에
(Quotas 상의 제약을 지켜도) 실제DB에서 데이터를 가져오는 동안 블러킹 되어서 인지 WCF채널이 faulted(inactivty timeout때문) 상태가
되는 듯(?) 합니다.

그래서 서비스 쪽에서 아래와 같이 비동기적으로 처리하도록 해보았는데 여전히 채널에서 문제를 발생시키더군요.
아시다시피 하나의 서비스 함수내 에서 결과를 리턴 해주고자 이벤트 방식보다는 폴링방식으로 시도해 보았는데 여전히 채널이 망가집니다.

sleep(0)를 주는 대신에 WCF 채널이 비활성되지 않도록 서비스쪽에서 취할수 있는 다른 방법이 없을까요?
제어권만 놓아주면 WCF 채널이 유지될 것으로 추측해 보았는데 그건 아닌듯하군요.

DAC
{
   List<AlarmMessageHistoryT> logs = new List<AlarmMessageHistoryT>();
   SqlDataReader reader = agent.asyncExecuteReader(query);
   while (reader.Read())
   {
      AlarmMessageHistoryT item = new AlarmMessageHistoryT();
      fromReader(item, reader);
      logs.Add(item);
   }
   return logs;
}


public SqlDataReader asyncExecuteReader(string strQuery)
{
  CreateConnection();
  SqlDataReader reader = null;
  try
  {
    SqlCommand cmd = new SqlCommand(strQuery, _connection);
    ...    
    _connection.Open();
    IAsyncResult ar = cmd.BeginExecuteReader(CommandBehavior.CloseConnection);
    while (!ar.IsCompleted)
    {
      System.Threading.Thread.Sleep(0);
      //System.Windows.Forms.Application.DoEvents();
    }
    reader = cmd.EndExecuteReader(ar);
    ...
  }
  catch (Exception ex)
  {
  }
  finally
  {
    CloseConnection();
  }
  return reader;
}








[최초 등록일: ]
[최종 수정일: 6/10/2010]


비밀번호

댓글 작성자
 




... 31  32  33  34  35  36  [37]  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
4963이대희3/29/201815704UWP 스터디를 위해 찰스페졸드 저자의 Programming Windows 6판은 어떠한지요? [1]
4962포플러3/26/201816222C# 응용프로그램 (Winform)에서 unhandledexception 발생시 프로그램이 죽는 현상 이외에 재부팅될 수도 있을까요? [2]
4966포플러3/30/201816167    답변글 [답변]: C# 응용프로그램 (Winform)에서 unhandledexception 발생시 프로그램이 죽는 현상 이외에 재부팅될 수도 있을까요? [1]
4961김민욱3/26/201817489레이더 뷰어의 구현 방법(이미지 확대 축소 관련) [2]
4960hurd...3/18/201816301OCX 관련한 질문을 드리고자 합니다. [1]
4959익명3/10/201816421교재 199page 델리게이트와 object를 이용한 범용 정렬 코드 [1]
4957멍멍이2/13/201816567System.Console - WriteLine함수의 제너릭 사용 [1]
4956김성대2/12/201816091asp.net 질문입니다. [1]
4955웅이2/12/201816643[삭제] WPF에서 list 속도 향상하는 방법이 있을까요?
4954초보자2/8/201818535FFT Library 사용 [1]
4950ASP열공2/5/201816098asp.net 과 C# 을 이용해서 홈페이지 만드는 질문입니다. [1]
4951ASP열공2/6/201816906    답변글 [답변]: asp.net 과 C# 을 이용해서 홈페이지 만드는 질문입니다. [1]
4952ASP열공2/7/201816478        답변글 [답변]: [답변]: asp.net 과 C# 을 이용해서 홈페이지 만드는 질문입니다. [1]
4953ASP열공2/7/201815904            답변글 [답변]: [답변]: [답변]: asp.net 과 C# 을 이용해서 홈페이지 만드는 질문입니다.
4949김성대1/31/201817458비동기 질문입니다. [3]파일 다운로드1
494880511/31/201817126C# 7.1책 보다가 질문드립니다 [1]
4947김성대1/30/201816792[삭제] 비동기 질문입니다. [2]파일 다운로드2
4946윤현수1/29/201816657비동기 TCP통신 데이터 문제 [4]파일 다운로드1
4945김성대1/26/201815079비동기 질문입니다. [1]파일 다운로드1
4944popo1/25/201814253[삭제] 스레드 안에서 Window Visibility 변경시 DialogResult 오류 질문
4943김성대1/22/201815664FromAsync 질문입니다. [1]
4942박현일1/19/201816867WPF 공부중 모르는 문법이 있어서요~^^; [2]
4941김성대1/18/201815335비동기예약어 실행오류관련입니다. [1]
4940plzh...1/10/201816351webbrowser2 를 이용한 sns 로그인 구현 관련 문의 [2]
4939이성일1/4/201818037ClickOnce 배포 후 업데이트 시 발생하는 오류에 대해 질문 드립니다. [2]
4938김성대1/3/201815726채팅 프로그램관련 질문입니다. [9]파일 다운로드1
... 31  32  33  34  35  36  [37]  38  39  40  41  42  43  44  45  ...