이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

5.9. 연결 풀 및 토토 커뮤니티 소스

5.9.1. JDBC, JDK 버전 지원

JDBC 2는 표준 연결 풀링 기능을 도입했습니다. 애드온 API로 알려져 있음JDBC2.0 선택적 패키지(또는JDBC2.0 표준 확장). 이것들 이후 핵심 JDBC 3 API에 기능이 포함되었습니다.포스트그레SQL JDBC드라이버는 다음을 통해 이러한 기능을 지원합니다JDK1.3.x 조합 와 함께JDBC2.0 선택사항 패키지(JDBC2) 또는JDK 1.4+ (JDBC3). 대부분의 애플리케이션 서버에는 다음이 포함됩니다.JDBC2.0 선택사항 패키지이지만 태양과 별도로 사용할 수도 있습니다JDBC다운로드 사이트.

5.9.2. JDBC 연결 풀링 API

JDBCAPI는 다음을 제공합니다. 연결 풀링을 위한 클라이언트 및 서버 인터페이스. 는 클라이언트 인터페이스는javax.sql.DataSource, 이는 어떤 애플리케이션인가요? 코드는 일반적으로 풀링된 데이터베이스를 획득하는 데 사용됩니다. 연결. 서버 인터페이스는 다음과 같습니다.javax.sql.ConnectionPoolDataSource, 이것이 바로 대부분의 애플리케이션 서버는포스트그레SQL JDBC운전사.

응용 프로그램 서버 환경에서 응용 프로그램 서버는 구성은 일반적으로 다음을 참조합니다.포스트그레SQL ConnectionPoolDataSource구현하는 동안 애플리케이션 구성 요소 코드는 일반적으로 다음을 획득합니다.토토 커뮤니티소스구현 제공자: 애플리케이션 서버(다음이 아님)포스트그레SQL).

애플리케이션 서버가 없는 환경에서는,포스트그레SQL2개 제공 구현토토 커뮤니티소스이것은 응용 프로그램은 직접 사용할 수 있습니다. 하나의 구현이 수행됩니다. 다른 하나는 단순히 연결 풀링에 대한 액세스를 제공합니다. 다음을 통한 데이터베이스 연결토토 커뮤니티소스풀링이 없는 인터페이스. 다시, 이러한 구현은 애플리케이션에서 사용되어서는 안 됩니다. 애플리케이션 서버가 그렇지 않은 경우를 제외하고는 서버 환경 지원하다ConnectionPoolDataSource인터페이스.

5.9.3. 애플리케이션 서버: ConnectionPoolDataSource

포스트그레SQL하나 포함 구현ConnectionPoolDataSourceforJDBC2, 그리고 하나는JDBC 3:

표 5-1. 연결풀토토 커뮤니티소스 구현

JDBC 구현 클래스
2 org.postgresql.jdbc2.ional.ConnectionPool
3 org.postgresql.jdbc3.Jdbc3ConnectionPool

두 구현 모두 동일한 구성 체계를 사용합니다.JDBC다음이 필요합니다.ConnectionPoolDataSource구성됨 JavaBean 속성을 통해 get 및 set 메소드가 있습니다. 다음 각 속성:

표 5-2. 연결풀토토 커뮤니티소스 구성 속성

속성 유형 설명
서버이름 문자열 PostgreSQL토토 커뮤니티베이스 서버 호스트 이름
토토 커뮤니티베이스 이름 문자열 포스트그레SQL토토 커뮤니티베이스 이름
포트번호 int TCP/IP포트 어느포스트그레SQL토토 커뮤니티베이스 서버가 수신 중입니다. (또는 0을 사용하려면 기본 포트)
사용자 문자열 데이터베이스 연결에 사용되는 사용자
비밀번호 문자열 데이터베이스 연결에 사용되는 비밀번호
defaultAutoCommit 부울 연결에서 자동 커밋을 활성화해야 하는지 여부 또는 호출자에게 제공되면 비활성화됩니다. 는 기본값은거짓, 비활성화하려면 자동 커밋.

많은 응용 프로그램 서버는 속성 스타일 구문을 사용하여 다음을 수행합니다. 이러한 속성을 구성하면 입력하는 것이 이상하지 않습니다. 속성을 텍스트 블록으로 사용합니다.

예 5-5.ConnectionPoolDataSource구성 예시

애플리케이션 서버가 단일 입력 영역을 제공하는 경우 모든 속성은 다음과 같이 나열될 수 있습니다.

서버이름=로컬호스트
토토 커뮤니티베이스 이름=테스트
사용자=테스트사용자
비밀번호=테스트비밀번호

또는 개행 문자 대신 세미콜론으로 구분합니다. 이:

서버 이름=localhost;databaseName=test;user=testuser;password=testpassword

5.9.4. 애플리케이션: 토토 커뮤니티소스

PostgreSQL2개 포함 구현토토 커뮤니티소스forJDBC2, 그리고 두 개는JDBC3. 풀링 구현은 실제로 연결을 닫지 않습니다. 클라이언트가 다음을 호출합니다.닫기방법이지만 대신 연결을 사용 가능한 풀로 반환합니다. 다른 클라이언트가 사용할 수 있는 연결입니다. 이렇게 하면 오버헤드가 방지됩니다. 연결을 반복적으로 열고 닫는 것이 가능하며 다수의 클라이언트가 소수의 토토 커뮤니티베이스를 공유 연결.

여기에 제공된 풀링 데이터 소스 구현은 다음이 아닙니다. 세계에서 가장 기능이 풍부한 것. 무엇보다도, 풀 자체가 닫힐 때까지 연결은 닫히지 않습니다. 풀을 축소할 방법이 없습니다. 또한, 연결 기본 구성된 사용자 이외의 사용자에 대해 요청된 사항은 다음과 같습니다. 풀링되지 않았습니다. 많은 애플리케이션 서버는 보다 향상된 기능을 제공합니다. 풀링 기능을 사용하고ConnectionPoolDataSource구현 대신.

표 5-3. 토토 커뮤니티 소스 구현

JDBC 풀링 구현 클래스
2 아니요 org.postgresql.jdbc2.ional.SimpleDataSource
2 org.postgresql.jdbc2.ional.PoolingDataSource
3 아니요 org.postgresql.jdbc3.Jdbc3SimpleDataSource
3 org.postgresql.jdbc3.Jdbc3PoolingDataSource

모든 구현은 동일한 구성 체계를 사용합니다.JDBC다음이 필요합니다.토토 커뮤니티소스JavaBean을 통해 구성됨 속성이므로 각 속성에 대해 get 및 set 메서드가 있습니다. 속성.

표 5-4. 데이터 소스 구성 속성

재산 유형 설명
서버이름 문자열 PostgreSQL토토 커뮤니티베이스 서버 호스트 이름
토토 커뮤니티베이스 이름 문자열 PostgreSQL토토 커뮤니티베이스 이름
포트번호 int TCP/IP포트 어느PostgreSQL토토 커뮤니티베이스 서버가 수신 중입니다. (또는 0을 사용하려면 기본 포트)
사용자 문자열 데이터베이스 연결에 사용되는 사용자
비밀번호 문자열 데이터베이스 연결에 사용되는 비밀번호

풀링 구현에는 몇 가지 추가 사항이 필요합니다. 구성 속성:

표 5-5. 추가 풀링 데이터 소스 구성 속성

속성 유형 설명
토토 커뮤니티소스이름 문자열 모든 풀링토토 커뮤니티소스고유한 이름이 있어야 합니다
initialConnections int 생성될 토토 커뮤니티베이스 연결 수 풀이 초기화될 때.
maxConnections int 다음에 열려 있는 데이터베이스 연결의 최대 수 허용합니다. 더 많은 연결이 요청되면 호출자는 연결이 반환될 때까지 정지됩니다. 수영장.

다음은 풀링토토 커뮤니티소스:

예 5-6.토토 커뮤니티소스코드 예

풀링 DataSource를 초기화하는 코드는 다음과 같습니다. 이:

Jdbc3PoolingDataSource 소스 = 새 Jdbc3PoolingDataSource();
source.setDataSourceName("데이터 소스");
source.setServerName("localhost");
source.setDatabaseName("테스트");
source.setUser("테스트사용자");
source.setPassword("테스트비밀번호");
source.setMaxConnections(10);

그러면 풀에서 연결을 사용하는 코드는 다음과 같습니다. 이렇게. 연결이 중요하다는 점에 유의하세요. 그렇지 않으면 풀에서 연결이 "누출"됩니다. 결국 모든 클라이언트를 잠급니다.

연결 con = null;
를 시도해보세요
    con = source.getConnection();
    // 연결 사용
 catch(SQLException e) 
    // 오류 로그
 마지막으로 
    if(con != null) 
        con.close();catch(SQLException e) 를 시도해 보세요.

5.9.5. 토토 커뮤니티 소스 및JNDI

모두ConnectionPoolDataSource그리고토토 커뮤니티소스구현은 다음과 같습니다. 에 저장됨JNDI. 이 경우 비풀링 구현 중 새 인스턴스는 다음과 같습니다. 객체가 검색될 때마다 생성됨JNDI, 동일한 설정으로 저장된 인스턴스입니다. 풀링 구현의 경우 사용 가능한 한 동일한 인스턴스가 검색됩니다. (예: 다르지 않음JVM풀 검색 중JNDI) 또는 동일한 새 인스턴스 다르게 생성된 설정입니다.

응용 프로그램 서버 환경에서는 일반적으로 애플리케이션 서버의토토 커뮤니티소스인스턴스는 다음 위치에 저장됩니다.JNDI, 대신PostgreSQL ConnectionPoolDataSource구현.

애플리케이션 환경에서 애플리케이션은 다음을 저장할 수 있습니다.토토 커뮤니티소스inJNDI그래서 그것은 만들 필요가 없습니다 에 대한 참조토토 커뮤니티소스사용 가능 이를 사용해야 할 수 있는 모든 애플리케이션 구성 요소에:

예 5-7.토토 커뮤니티소스 JNDI코드 예

풀링 DataSource를 초기화하는 애플리케이션 코드 및 에 추가하세요JNDI보일 수도 있습니다 이렇게:

Jdbc3PoolingDataSource 소스 = 새로운 Jdbc3PoolingDataSource();
source.setDataSourceName("데이터 소스");
source.setServerName("localhost");
source.setDatabaseName("테스트");
source.setUser("테스트사용자");
source.setPassword("테스트비밀번호");
소스.setMaxConnections(10);
new InitialContext().rebind("DataSource", 소스);

그러면 풀에서 연결을 사용하는 코드는 다음과 같습니다. 이렇게:

연결 con = null;
를 시도해보세요
    DataSource 소스 = (DataSource)new InitialContext().lookup("DataSource");
    con = source.getConnection();
    // 연결 사용
 catch(SQLException e) 
    // 오류 로그
 catch(NamingException e) 
    // JNDI에서 DataSource를 찾을 수 없습니다.
 마지막으로 
    if(con != null) 
        con.close();catch(SQLException e) 를 시도해 보세요.

5.9.6. 특정 애플리케이션 서버 구성

특정 응용 프로그램 서버에 대한 구성 예는 여기에 포함됩니다.