JDBC2 도입 표준 애드온의 메이저 토토 사이트 풀링 기능APIJDBC2.0 선택적 패키지 (라고도합니다.JDBC2.0 표준 확장). 이러한 기능은 그 이후로 핵심에 포함되었습니다JDBC 3 API. 그만큼PostgreSQL JDBC드라이버는 이러한 기능이있는 경우 이러한 기능을 지원합니다 로 편집되었습니다.jdk1.3.x 와 함께JDBC2.0 선택적 패키지 (JDBC2), 또는JDK1.4 이상 (JDBC3). 대부분의 응용 프로그램 서버는 포함됩니다.JDBC2.0 옵션 패키지이지만에서도 별도로 사용할 수 있습니다. 해JDBC다운로드 대지.
theJDBC API클라이언트와 서버를 제공합니다 연결 풀링을위한 인터페이스. 클라이언트 인터페이스는입니다.javax.sql.datasource응용 프로그램 코드는 일반적으로 풀링 된 것을 획득하는 데 사용됩니다 데이터베이스 연결. 서버 인터페이스는javax.sql.connectionpooldatasource대부분의 응용 프로그램 서버는와 인터페이스합니다.postgresql JDBC드라이버
응용 프로그램 서버 환경에서 응용 프로그램 서버 구성은 일반적으로를 참조합니다.PostgreSQL ConnectionPooldatasource구현 응용 프로그램 구성 요소 코드는 일반적으로 a를 획득합니다.DataSource구현 제공 응용 프로그램 서버 (PostgreSQL).
응용 프로그램 서버가없는 환경postgresql두 가지를 제공합니다 구현DataSource응용 프로그램은 직접 사용할 수 있습니다. 하나의 구현이 수행됩니다 연결 풀링, 다른 하나는 단순히 액세스를 제공합니다 를 통한 메이저 토토 사이트베이스 연결DataSource풀링없이 인터페이스. 다시, 이러한 구현은 응용 프로그램에서 사용해서는 안됩니다 애플리케이션 서버가 없다면 서버 환경 지원ConnectionPooldatasource인터페이스.
ConnectionPooldatasource
postgresql하나를 포함합니다
구현ConnectionPooldatasource
forJDBC2 및 1JDBC3, 참조테이블
31-1.
표 31-1.ConnectionPooldatasource
구현
JDBC | 구현 클래스 |
---|---|
2 | org.postgresql.jdbc2.optional.connectionpool |
3 | org.postgresql.jdbc3.jdbc3connectionpool |
두 구현 모두 동일한 구성 체계를 사용합니다.JDBCa 요구ConnectionPooldatasource
be
javabean 속성을 통해 구성,표 31-2이러한 각 속성에 대한 GET 및 SET 메소드가 있습니다.
표 31-2.ConnectionPooldatasource
구성
속성
속성 | type | 설명 |
---|---|---|
ServerName | String | PostgreSQL메이저 토토 사이트베이스 서버 호스트 이름 |
DatabaseName | String | PostgreSQL메이저 토토 사이트베이스 이름 |
PortNumber | int | TCP 포트PostgreSQL메이저 토토 사이트베이스 서버입니다 청취 (또는 기본 포트를 사용하려면 0) |
사용자 | String | 데이터베이스 연결을 만드는 데 사용되는 사용자 |
비밀번호 | String | 데이터베이스 연결을 만드는 데 사용되는 비밀번호 |
DefaultAutoCommit | 부울 | 연결에 자동 커밋이 활성화되어야하는지 여부 또는 발신자에게 공급 될 때 장애인. 그만큼 기본값은거짓, 비활성화 Autocommit. |
많은 응용 프로그램 서버는 속성 스타일 구문을 사용합니다 이러한 속성을 구성하므로 입력하는 것은 드문 일이 아닙니다. 텍스트 블록으로서의 속성. 응용 프로그램 서버 인 경우 모든 속성을 입력 할 수있는 단일 영역을 제공하면 다음과 같이 나열됩니다 :
ServerName = localhost DatabasEname = 테스트 user = testuser 암호 = testpassword
또는 세미콜론이 대신 분리기로 사용되는 경우 Newlines, 그것은 다음과 같이 보일 수 있습니다 :
ServerName = LocalHost; DatabasEname = test; user = testuser; password = testpassword
DataSource
PostgreSQL두 개 포함 구현DataSourceforJDBC2와 2 forJDBC3,표 31-3. 그만큼 풀링 구현은 실제로 연결을 닫지 않습니다 클라이언트는를 호출합니다.닫기메소드 대신 연결을 사용 가능한 풀로 되돌립니다 다른 고객이 사용할 연결. 이것은 오버 헤드를 피합니다 반복적으로 열고 닫는 연결을 허용합니다 소수의 메이저 토토 사이트베이스를 공유하기 위해 많은 수의 클라이언트 사이.
여기에 제공된 풀링 데이터 소스 구현은 그렇지 않습니다 세계에서 가장 기능이 풍부합니다. 무엇보다도, 수영장 자체가 닫히기 전까지는 연결이 닫히지 않습니다. 수영장을 축소 할 방법이 없습니다. 또한 연결 기본 구성 사용자가 아닌 다른 사용자에게 요청 된 풀링되지 않았습니다. 많은 애플리케이션 서버가보다 고급을 제공합니다 풀링 기능 및 사용ConnectionPooldatasource구현 대신에.
표 31-3.DataSource
구현
JDBC | 풀링 | 구현 클래스 |
---|---|---|
2 | 아니오 | org.postgresql.jdbc2.optional.simpledatasource |
2 | 예 | org.postgresql.jdbc2.optional.poolingdatasource |
3 | 아니오 | org.postgresql.jdbc3.jdbc3simpledatasource |
3 | 예 | org.postgresql.jdbc3.jdbc3poolingdatasource |
모든 구현은 동일한 구성 체계를 사용합니다.JDBCa 요구DataSourceJavabean을 통해 구성하십시오 속성,표 31-4이러한 각 속성에 대한 GET 및 SET 메소드가 있습니다.
표 31-4.DataSource
구성 속성
속성 | 타입 | 설명 |
---|---|---|
ServerName | String | PostgreSQL메이저 토토 사이트베이스 서버 호스트 이름 |
DatabaseName | String | postgresql메이저 토토 사이트베이스 이름 |
PortNumber | int | TCP 포트PostgreSQLDatabase Server입니다 청취 (또는 기본 포트를 사용하려면 0) |
사용자 | String | 데이터베이스 연결을 만드는 데 사용되는 사용자 |
비밀번호 | String | 데이터베이스 연결을 만드는 데 사용되는 비밀번호 |
풀링 구현에는 몇 가지 추가가 필요합니다 에 표시된 구성 속성,표 31-5.
표 31-5. 추가 풀링DataSource
구성 속성
속성 | 타입 | 설명 |
---|---|---|
DataSourcename | String | 모든 풀링DataSource고유 한 이름이 있어야합니다. |
초기 구성 | int | 생성 할 메이저 토토 사이트베이스 연결 수 수영장이 초기화되면. |
MaxConnections | int | 열린 메이저 토토 사이트베이스 연결의 최대 수 허용하다. 더 많은 연결이 요청되면 발신자 연결이 회복 될 때까지 매달려 있습니다 수영장. |
예제 31-9a를 사용하여 일반적인 응용 프로그램 코드의 예를 보여줍니다 풀링DataSource.
예 31-9.DataSource코드 예제
풀링 초기화 코드DataSource
다음과 같이 보일 수 있습니다 :
jdbc3poolingdatasource source = 새로운 jdbc3poolingdatasource (); source.setdatasourcename ( "데이터 소스"); source.setservername ( "localhost"); source.setDatabaseName ( "테스트"); source.setUser ( "테스트 거스"); source.setpassword ( "testpassword"); source.setMaxConnections (10);
그러면 수영장에서 메이저 토토 사이트을 사용하려면 코드가 보일 수 있습니다. 이와 같이. 메이저 토토 사이트이 중요합니다 결국 닫혔습니다. 그렇지 않으면 수영장이"누출"메이저 토토 사이트 및 결국 잠금 모든 클라이언트 출력.
메이저 토토 사이트 con = null; 노력하다 con = source.getConnection (); // 메이저 토토 사이트을 사용합니다 catch (sqlexception e) // 로그 오류 마지막으로 if (con! = null) try con.close (); catch (sqlexception e)
모든ConnectionPooldatasourceandDataSource구현이 가능합니다 저장jndi. 경우 비 풀링 구현 중 새로운 인스턴스가있을 것입니다 객체가 검색 될 때마다 생성jndi, 저장된 인스턴스. 풀링 구현의 경우 사용 가능한 한 동일한 인스턴스가 검색됩니다. (예 : 다르지 않음JVM수영장 검색jndi) 또는 동일한 새 인스턴스 그렇지 않으면 생성 된 설정.
응용 프로그램 서버 환경에서 일반적으로 응용 프로그램 서버DataSource인스턴스가 저장됩니다jndi대신PostgreSQL ConnectionPooldatasource구현.
응용 프로그램 환경에서 응용 프로그램은를 저장할 수 있습니다.DataSourceinjndi따라서 만들 필요가 없습니다 에 대한 참조DataSource사용 가능 사용해야 할 모든 애플리케이션 구성 요소에 an 이것의 예는에 표시됩니다.예 31-10.
예 31-10.DataSource
jndi코드 예제
풀링 초기화 응용 프로그램 코드DataSource
그리고 그것을 추가jndi다음과 같이 보일 수 있습니다 :
jdbc3poolingdatasource source = 새로운 jdbc3poolingdatasource (); source.setdatasourcename ( "데이터 소스"); source.setservername ( "localhost"); source.setDatabaseName ( "테스트"); source.setUser ( "테스트 거스"); source.setpassword ( "testpassword"); source.setMaxConnections (10); New InitialContext (). Rebind ( "DataSource", Source);
그러면 수영장에서 메이저 토토 사이트을 사용하려면 코드가 보일 수 있습니다. 이와 같이:
연결 con = null; 노력하다 DataSource Source = (DataSource) New InitialContext (). Xookup ( "DataSource"); con = source.getConnection (); // 연결을 사용합니다 catch (sqlexception e) // 로그 오류 catch (namingException e) // DataSource는 JNDI에서 발견되지 않았습니다 마지막으로 if (con! = null) try con.close (); catch (sqlexception e)