Microsoft MVP성태의 닷넷 이야기
웹서비스 커넥션 풀 오류입니다. [링크 복사], [링크+제목 복사]
조회: 12193
글쓴 사람
이상식
홈페이지
첨부 파일
 

웹서비스를 구현했는데 잘 작동하다가 한번씩 커넥션 풀이 초과되었다는 오류로
서비스가 되지 않을때가 있습니다. 커넥션은 분명히 하나이고 웹서비스 코드에서는
finally 구문에 커넥션을 닫는 코드가 있는데도 이런 오류가 납니다.
무엇이 문제일까요?

<웹서비스 설명 요약>
1. 서버환경 : .net framework 2.0
2. DB : MS-SQL2000
3. 용도 : SAP ERP모듈에서 .NET 웹서비스를 호출. MS-SQL2000의 테이블을 조회, 입력, 수정용
4. 오류내용:
System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connnection
from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owingConnection)
at System.Data.ProviederBase.DbConnectionClosed. OpenConnection(DbConnection outerConnection, DbConnectionFactory connection Factory)
at System.Data.SqlClient.SalConnection.Open()
at WebService.GetData(SelectInputParams input)
5. GetData()
{
   try
   {
   ...
   connection.Open()
   SqlDataAdapter adapter = new SqlDataAdapter("select * from table", connection);
   ...
   }
   finally
   {
   connection.close();
   connection.Dispose();
   }
}
6. 참고사항
웹서비스가 빈번이 호출되고, 어떤 경우는 쿼리시간이 꽤나 오래 걸리기도 합니다.








[최초 등록일: ]
[최종 수정일: 7/12/2013]


비밀번호

댓글 작성자
 



2013-07-12 05시23분
잦은 호출과, 쿼리 시간이 오래 걸린다는 것으로 봐서는 분명히 풀이 모자란 것은 맞는 것 같습니다. 연결 문자열에 기반한 .NET DB 연결 풀의 기본 최대 치는 100 개입니다. 즉, 해당 서비스에서 동시에 100개가 실행되는 상황이 발생하는 것으로 보입니다.
정성태
2013-07-12 07시26분
[ryujh] 안녕하세요.

웹서비스가 빈번히 호출되는 것은 SAP ERP 에 달려있으니 이것은 수정이 어렵다고 보면

웹서비스에서 쿼리 호출은 어떻게든 수정할 수 있을 겁니다.

웹서비스에서 GetData() 를 단 한번만 호출하고 결과 리턴하는 것인지요?
GetData() 에서 쿼리를 한번만 호출하는지요?
혹시나 for 문 등의 반복문 내에 쿼리를 실행하고 있지 않는가요?

내용으로는 쿼리 호출방법을 알 수 없어서 이렇게 가정하고 질문합니다.
일단 횟수부터 줄여야 할 것입니다.

이상입니다.

[guest]
2013-07-12 08시54분
[이상식] 우선 두 분 답변 감사드립니다.

* 정성태님 : 제가 이해하는 커넥션 풀의 수는 서로다른 연결문자열의 수로 알고 있는데요.
예를 들면 현재 웹서비스의 접근하는 연결 문자열이 아래와 같다면
A : "Data Source=xxxx.xxxx.xxxx.xxxx;Initial Catalog=DB_A;User ID=userA;..."
A' : "Data Source=xxxx.xxxx.xxxx.xxxx;Initial Catalog=DB_A;User ID=userA;..."
B : "Data Source=xxxx.xxxx.xxxx.xxxx;Initial Catalog=DB_B;User ID=userB;..."
커넥션 풀은 2이지 않은가요?(A, A'은 같은 연결 풀. 연결문자열이 동일함.)
현재 웹서비스에서 사용되는 연결 문자열은 단 하나이거든요. 그래서 어떻게 100개가
초과되는지 이해가 되지 않네요. 커넥션 풀의 개념을 제가 잘 못 이해하고 있나요?

* 손님 : GetData()에서 반복문으로 쿼리를 호출하지는 않고있습니다. 단일 쿼리문을 그냥 실행시킬뿐입니다.
다만 GetData()를 연속해서 여러번 호출할 수는 있습니다. 그리고 반복문이 GetData() 내부에 있긴한데, 이것은 반환된 결과값(DataSet)을 이용해 특정한 형태의 xml로 만드는 작업에 사용됩니다.
[guest]
2013-07-15 12시05분
[ryujh] 안녕하세요.

커넥션이 늦게 열리고 빨리 닫혀야 풀에 있는 커넥션 수가 적어질 것인데
쿼리가 오래걸려서 커넥션이 늦게 닫히지 않는지 생각됩니다.


이상입니다.

[guest]
2013-07-15 01시10분
커넥션 풀은 "고유 연결 문자열 당" 기본적으로 최대 100개로 잡혀 있습니다. 웹 서비스에서 사용하는 연결 문자열이 하나라면 DB를 동시에 100개까지만 연결할 수 있는 것입니다. 100개가 초과되는지 이해가 안간다는 것은... 어떤 이유에서 그런 건지 혹시 물어봐도 될까요? ^^ 모니터링을 해보신 것인지?
정성태
2013-07-15 11시04분
[이상식] [ryujh] : 그럴 수 있겠군요. 확인해보겠습니다. 감사합니다.
[정성태님] : 아... 풀의 개념이 그런거였군요. 동일 문자열이 '종류' 하나라서 백개가 될 수 없다고 생각했습니다. 감사합니다.
[guest]

... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
4959익명3/10/20189077교재 199page 델리게이트와 object를 이용한 범용 정렬 코드 [1]
4957멍멍이2/13/20189664System.Console - WriteLine함수의 제너릭 사용 [1]
4956김성대2/12/20188988asp.net 질문입니다. [1]
4955웅이2/12/20189536[삭제] WPF에서 list 속도 향상하는 방법이 있을까요?
4954초보자2/8/201811285FFT Library 사용 [1]
4950ASP열공2/5/20189038asp.net 과 C# 을 이용해서 홈페이지 만드는 질문입니다. [1]
4951ASP열공2/6/201810012    답변글 [답변]: asp.net 과 C# 을 이용해서 홈페이지 만드는 질문입니다. [1]
4952ASP열공2/7/20189166        답변글 [답변]: [답변]: asp.net 과 C# 을 이용해서 홈페이지 만드는 질문입니다. [1]
4953ASP열공2/7/20188671            답변글 [답변]: [답변]: [답변]: asp.net 과 C# 을 이용해서 홈페이지 만드는 질문입니다.
4949김성대1/31/201810397비동기 질문입니다. [3]파일 다운로드1
494880511/31/20189169C# 7.1책 보다가 질문드립니다 [1]
4947김성대1/30/201810379[삭제] 비동기 질문입니다. [2]파일 다운로드2
4946윤현수1/29/20189942비동기 TCP통신 데이터 문제 [4]파일 다운로드1
4945김성대1/26/20188471비동기 질문입니다. [1]파일 다운로드1
4944popo1/25/20187894[삭제] 스레드 안에서 Window Visibility 변경시 DialogResult 오류 질문
4943김성대1/22/20188876FromAsync 질문입니다. [1]
4942박현일1/19/201810475WPF 공부중 모르는 문법이 있어서요~^^; [2]
4941김성대1/18/20188741비동기예약어 실행오류관련입니다. [1]
4940plzh...1/10/20189666webbrowser2 를 이용한 sns 로그인 구현 관련 문의 [2]
4939이성일1/4/201811154ClickOnce 배포 후 업데이트 시 발생하는 오류에 대해 질문 드립니다. [2]
4938김성대1/3/20189217채팅 프로그램관련 질문입니다. [9]파일 다운로드1
4937Ques...1/3/201811570C# CPU 사용량 한계치 늘리는 방법 [2]
4936무개1/3/20188718책 내용 인용하는 것에 관한 질문이있습니다. [1]파일 다운로드1
4935몬난아12/28/201711462IIS 및 ASP.NET 이 서버에서의 동작방식? [2]
4934Ques...12/26/201721768C# 해상도에 따른 자동 사이즈 조절방법이 궁금합니다. [3]
4933Kay12/15/20179139C# VS 버전 에러 질문 드립니다. [1]파일 다운로드1
... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...