Microsoft MVP성태의 닷넷 이야기
비동기 DB 쿼리관련 질문 [링크 복사], [링크+제목 복사],
조회: 10873
글쓴 사람
채동민 (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]


비밀번호

댓글 작성자
 




... 76  77  78  79  80  81  82  [83]  84  85  86  87  88  89  90  ...
NoWriterDateCnt.TitleFile(s)
382윤용한5/29/20068263        답변글 [답변]: [답변]: ATL Event에서 스크립트가 값을 다시 돌려주는 방법은?
383정성태5/30/20068548            답변글 [답변]: [답변]: [답변]: ATL Event에서 스크립트가 값을 다시 돌려주는 방법은?
378guest5/26/20068120managed 와 unmanaged 의 차이가 뭐져?
379정성태5/26/20068424    답변글 [답변]: managed 와 unmanaged 의 차이가 뭐져? [1]
384guest5/30/20067904        답변글 감사합니다.
376노기도5/16/20068227vb6의 GetObjectContext 를 2005에서는 어떻게 사용해야 하나요? [3]
375이덕희5/15/200610134SmartClient 강좌를 보고... 엑박이 나옵니다... [2]파일 다운로드1
3745/12/20069097데이타셋을 레코드셋으로 변경하는 방법...... [2]파일 다운로드1
373아폴론5/12/20068041스마트 클라이언트.. 강좌대로 했는데.. 이런 에러가 나네요. [1]파일 다운로드1
372정보문5/11/20068646DHCP를 쓰는 이유 [1]
366임경훈5/8/20068468지정된 웹서버에서 ASP.NET 버전 1.1이 실행되고 있지 않아 ASP.NET 웹 응용 프로그램 또는 웹서비스를 실행할수 없습니다 [2]
365꿈의공장5/8/20068318스마트 클라이언트 사용시 안보이는 현상 [1]
364조준현5/3/200677952.0 스마트클라이언트에서.. public 메소드등을 스크립트에서 접근하는 방법이..? [2]
363혁이5/2/200610412스마트 클라이언트에 farpoint 컨트롤 올리기 2번째 질문입니다 [1]파일 다운로드1
361혁이4/28/20068729스마트 클라이언트에 FarPointSpread를 올렸는데요. 보이지가 않습니다..음.. [1]
360꿈의공장4/28/20068951스마트클라이언트와 오라클에 연결 [1]
359박호성4/28/20068127ASP.NET에서 COM Object를 사용하려면? [1]
358임동오4/27/20068658ASP -> COM+ Proxy 연결문제입니다. 151초동안 아무응답없습니다. ㅠㅠ
362정성태4/30/20069924    답변글 [답변]: ASP -> COM+ Proxy 연결문제입니다. 151초동안 아무응답없습니다. ㅠㅠ
354노기도4/24/20068013시스템 구성에 대해 의견을 듣고 십습니다.
355정성태4/25/20068079    답변글 [답변]: 시스템 구성에 대해 의견을 듣고 십습니다.
356노기도4/25/20067427        답변글 [답변]: 귀찮게 해드려 죄송스럽지만.
357정성태4/25/20067646            답변글 [답변]: [답변]: 귀찮게 해드려 죄송스럽지만. [1]
352산들바람4/19/20067454이번겨울방학때세도나를 여행하려구하는데요,,,
353정성태4/20/200612868    답변글 [답변]: 이번겨울방학때세도나를 여행하려구하는데요,,,
351오기4/18/20067289aspx [2]
... 76  77  78  79  80  81  82  [83]  84  85  86  87  88  89  90  ...