연결 풀 - 모바일 애플리케이션 개발, 웹 서비스, SOA 아키텍처 - 기술
콘텐츠로 건너뛰기

연결 풀링 – 모바일 애플리케이션 개발, 웹 서비스, SOA 아키텍처

광고

연결 풀링이란 무엇입니까?

연결 풀링을 사용하면 기존 연결을 재사용하여 동일한 구성을 가진 연결을 계속 생성하고 삭제하는 오버헤드를 줄일 수 있습니다. 즉, 동일한 연결 문자열과 자격 증명을 사용하는 연결을 열고 닫으면 풀에서 사용 가능한 연결을 재사용할 수 있습니다. 일반적인 응용 프로그램은 동일한 연결 개체를 사용하여 데이터베이스에서 데이터를 지속적으로 가져오고 업데이트합니다. 연결 풀링은 데이터베이스가 지속적으로 연결을 생성하고 삭제할 필요가 없으므로 훨씬 더 높은 수준의 성능을 제공합니다. 연결 풀은 프로세스, 응용 프로그램 도메인 및 연결 문자열로 구분됩니다. 통합 보안을 사용하는 연결 문자열의 경우 각 고유 ID에 대해 별도의 풀이 생성됩니다.

연결 풀링 옵션 제어

ADO.NET 연결 개체를 생성할 때 연결 풀링은 기본적으로 활성화됩니다. 연결 풀링에 대한 특정 연결 문자열 키워드를 설정하여 연결 풀링 동작을 제어하거나 연결 풀링을 완전히 비활성화할 수 있습니다. 예를 들어 연결 풀링을 구체적으로 비활성화하려면 연결 문자열에서 Pooling=False를 설정합니다. 표 5-7에서는 특정 연결이 연결 풀과 상호 작용하는 방식을 제어하는 데 사용할 수 있는 연결 문자열 키워드 목록을 제공합니다. 모든 공급자가 모든 키워드를 사용할 수 있는 것은 아닙니다. 예를 들어, OLE DB 공급자는 연결 문자열의 OLE DB 서비스 키워드에 대해 설정된 값을 기반으로 연결 풀(리소스 또는 세션 풀이라고도 함)을 제어합니다.

테이블 연결 풀 연결 문자열연결 풀링 동작을 제어하는 ​​연결 문자열 속성 외에도 연결 풀링에 영향을 미칠 수 있는 연결 개체에 사용할 수 있는 메서드도 있습니다. 사용 가능한 메서드는 일반적으로 애플리케이션에서 연결을 닫고 다시 사용되지 않을 것임을 알고 있을 때 사용됩니다. 이렇게 하면 연결이 닫힐 때 연결을 풀로 반환하는 대신 연결을 삭제하여 연결 풀을 정리합니다. 이미 풀에 있고 열려 있는 모든 연결은 다음에 닫힐 때 삭제됩니다. 표 5-8에는 연결 풀과 상호 작용하는 데 사용할 수 있는 방법이 나열되어 있습니다.

연결 풀링을 사용하도록 연결 구성

기본적으로 ADO.NET에서 사용할 수 있는 모든 .NET Framework 데이터 공급자에는 연결 풀링이 활성화되어 있지만 연결 풀링 작업에 사용할 수 있는 제어 수준은 사용 중인 공급자에 따라 다릅니다.

SQL Server 연결로 연결 풀링 구성

기본적으로 SqlConnection 개체는 자동으로 연결 풀링을 사용합니다. 고유한 연결 문자열을 사용하여 Sqlconnection.Open을 호출할 때마다 새 풀이 생성됩니다. 표 5-7에서 앞서 설명한 대로 연결 문자열에 연결 풀 키워드를 설정하여 연결 풀 동작을 제어합니다. 예를 들어, 최소 풀 크기를 설정하려는 연결을 고려해 보십시오. Mîn Pool Size 키워드에 0보다 큰 값을 할당하면 응용 프로그램이 종료될 때까지 풀이 삭제되지 않습니다. 최소 풀 크기를 5로 설정하려면 다음과 유사한 연결 문자열을 사용합니다.

데이터 원본=SqlServerName;초기 카탈로그=DatabaseName; 통합 보안=True;최소 풀 크기=5

최소 풀 크기는 기본적으로 0입니다. 즉, 요청에 따라 각 연결을 생성하고 초기화해야 하며, 연결 문자열에서 최소 풀 크기를 늘려 표시된 수의 연결이 생성되고 사용할 수 있게 되므로 이러한 초기 연결에서 연결을 설정하는 데 걸리는 시간입니다.

Oracle 연결을 사용하여 연결 풀링 구성

.NET Framework Data Provider for Oracle을 사용하는 연결은 기본적으로 자동으로 연결 풀링을 사용합니다. 연결 문자열 키워드를 설정하여 연결에서 풀을 사용하는 방법을 제어할 수 있습니다. 표 5-10에서는 연결 풀 활동을 변경하는 데 사용할 수 있는 연결 문자열 키워드를 자세히 설명합니다.

연결 오류 처리

SQL Server가 경고 또는 오류를 반환하면 .NET Framework Data Provider for SQL Server는 문제를 처리하기 위해 응용 프로그램에서 포착할 수 있는 SqlException을 만들고 발생시킵니다. SqlException이 발생하면 SqlException.Errors 속성을 검사하여 SQL 서버에서 반환된 오류 컬렉션에 액세스합니다. SqlException.Errors 속성은 항상 하나 이상의 SqlError 개체를 포함하는 SqlErrorCollection 클래스(SqlError 클래스 컬렉션)입니다.

추가 정보 SQL Server 오류

SqlConnection은 심각도 수준이 19 이하인 메시지에 대해 열려 있지만 일반적으로 심각도가 20 이상이면 자동으로 닫힙니다.

요약

  • 연결 풀링은 기본적으로 활성화되어 있습니다.
  • 연결 풀링 옵션은 Windows에서 ODBC 데이터 원본 관리자 대화 상자를 사용하는 ODBC 공급자를 제외하고 연결 문자열에 정의됩니다.
  • SQL Server에서 오류가 감지되면 SqlException 개체가 생성됩니다.
  • SqlException 예외의 각 인스턴스에는 실제 서버 오류 정보가 포함된 SqlError 경고가 하나 이상 포함되어 있습니다.
  • Windows 인증(통합 보안이라고도 함)은 데이터에 안전하게 연결하기 위해 권장되는 방법입니다.
  • 중요한 정보가 포함된 연결 문자열을 애플리케이션 구성 파일에 저장하고 중요한 정보가 포함된 모든 구성을 암호화합니다.