2012-09-30 4 views
1

ODP.NET을 사용하여 SQL Server에서 Oracle로 데이터를 이동하는 야간 작업을 작성 중입니다.연결 풀링은 ODP.NET에 있어야합니까?

약 100 개의 연결 개체 (데이터와 무관 함)를 사용하며 한 번의 실행에서 총 1500 개의 행을 전송할 것으로 예상하지 않습니다. 내가 읽은 ODP.NET 노트와 자료는 연결 풀링을 유지하는 것에 대해 결코 이야기하지 않습니다.

dev에 연결 풀링을 유지하고 정상적으로 작동합니다.

  1. 그것은 야간 작업과에 많은 부하가있을 실 거예요 :

    은, 이후 (주어진 모든 연결이 사용 후 적절하게 배치되어있다)는 주어진 시나리오에서 바람직 오프 풀링 연결을 유지하는 것입니다 오라클 서버.

  2. 연결 풀링은 유효성 검사 설정/예외 처리를 수행해야하는 부실 연결을 반환 할 수 있습니다. 당신의 야간 작업이 그것의 창 내에서 실행 그래서 만약 풀링에 대한

답변

5

유일한 이유는 당신이 죽은 연결에 대해 걱정할 필요하지 않음으로써 간단한 구현을 유지 특히 이후, 무엇을하고 있는지 아무 문제가 없습니다, 성능이다.

즉, 나는이 표준 관행을하지 않을 것이라고 말했다. 부실 연결을 처리하는 코드는 거의 작성하지 않으며 간단한 팩토리입니다. 질문은 왜 당신이 부실 연결을 가지고있는 것부터 시작합니까? 일반적으로 이는 유휴 연결을 종료하는 방화벽 또는 DBA 작업과 관련이 있습니다. 둘 다 응용 프로그램 계정에 대해 변경되거나 완화되어야합니다. 이 경우에도 다음을 수행 할 수 있습니다.

  • 연결 문자열에 최소 풀 크기 = 0을 지정하십시오. 이렇게하면 ODP.net이 앱의 마지막 연결까지도 정리할 수 있으므로 앱이 오랫동안 유휴 상태 일 때 앱이 완전히 연결 해제됩니다.
  • 연결 문자열에서 더 높은 Decr 풀 크기를 지정하십시오. 이렇게하면 ODP.net이 3 분마다 더 많은 유휴 연결을 종료 할 수 있습니다.
  • Validate Connection = true를 설정해보십시오. 내 생각에 연결을 확인하는 데 걸리는 오버 헤드가 줄어들 것입니다.

더 많은 정보는 여기에서 찾을 수 있습니다 : http://docs.oracle.com/cd/E15296_01/doc.111/e15167/featConnecting.htm#i1006228

+0

우리는 방화벽이 우리의 유휴 연결을 닫는 것이이 문제를 가지고 있었다. 수영장 크기 = 0 우리를 위해 일한 것 같았다. –

관련 문제