JavaTM Platform
Standard Ed. 6

javax.sql
인터페이스 PooledConnection

기존의 서브 인터페이스의 일람:
XAConnection


public interface PooledConnection

접속 풀 관리의 훅을 제공하는 객체입니다. PooledConnection 객체는, 데이터 소스에의 물리 접속을 나타냅니다. 어플리케이션이 있는 접속으로 종료했을 때, 그 접속은 닫혀지지 않고 리사이클됩니다. 그 때문에, 생성할 필요가 있는 접속수를 줄일 수가 있습니다.  

어플리케이션 프로그래머가 PooledConnection 인터페이스를 직접 사용할 것은 없습니다. 오히려,PooledConnection 인터페이스는, 접속의 풀링을 관리하는 중간층 인프라스트럭쳐(infrastructure)가 사용합니다.  

어플리케이션은,DataSource.getConnection 메소드를 호출하면(자),Connection 객체를 되돌립니다. 접속 풀의 실행중,Connection 객체는, 물리 접속인 PooledConnection 객체의 핸들이 됩니다.  

접속 풀 관리 프로그램 (일반적으로 어플리케이션 서버)은,PooledConnection 객체의 풀을 관리합니다. 풀내에 이용 가능한 PooledConnection 객체가 존재하는 경우, 그 물리 접속의 핸들인 Connection 객체를 돌려줍니다. 이용 가능한 PooledConnection 객체가 존재하지 않는 경우, 접속 풀 관리 프로그램은,PooledConnection 메소드의 getConnection 를 호출해, 새로운 물리 접속을 작성합니다. ConnectionPoolDataSource 를 구현하는 JDBC 드라이버는, 새로운 PooledConnection 객체를 작성해, 그 핸들을 돌려줍니다.  

접속을 닫을 때, 어플리케이션은 Connection 메소드 close 를 호출합니다. 접속 풀의 실행중, 접속 풀 관리 프로그램에 통지가 보내집니다. 이것은, 접속 풀 관리 프로그램이 ConnectionPool 메소드 addConnectionEventListener 를 사용해,ConnectionEventListener 객체로서 등록되어 있기 때문입니다. 접속 풀 관리 프로그램은 PooledConnection 객체의 핸들을 종료해, 접속 풀에 PooledConnection 객체를 돌려줍니다. 반환된 객체는 재사용 가능합니다. 이와 같이, 어플리케이션이 접속을 닫을 때, 배후의 물리 접속은 닫혀지지 않고, 리사이클됩니다.  

물리 접속은, 접속 풀 관리 프로그램이 PooledConnection 메소드 close 를 호출할 때까지 닫혀지지 않습니다. 일반적으로, 이 메소드는, 일반적으로 대로의 순서로 서버를 종료하는 경우, 또는 치명적인 에러에 의해 접속을 사용할 수 없는 상태가 되었을 경우에 불려 갑니다.

접속 풀 관리 프로그램은, 일반적으로,PreparedStatement 객체의 풀을 관리하는 것으로써, 문장의 풀의 관리 프로그램이라고 해도 기능합니다. 준비된 문장을 덮을 때, 어플리케이션은 PreparedStatement 메소드의 close 를 호출합니다. 풀 관리 프로그램은 ConnectionPool 메소드의 addStatementEventListener 를 사용해 자신을 StatementEventListener 객체로서 등록하고 있기 (위해)때문에,Statement 의 풀의 실행중에 통지를 받습니다. 이와 같이, 어플리케이션이 PreparedStatement 를 닫을 때, 부하의 준비된 문장은 닫혀지지 않고, 리사이클됩니다.  

도입된 버젼:
1.4

메소드의 개요
 void addConnectionEventListener (ConnectionEventListener  listener)
          지정한 이벤트 청취자를 등록해, 이 PooledConnection 객체로 이벤트가 발생했을 때에 통지되도록(듯이) 합니다.
 void addStatementEventListener (StatementEventListener  listener)
          이 PooledConnection 객체에 StatementEventListener 를 등록합니다.
 void close ()
          이 PooledConnection 객체가 나타내는 물리 접속을 닫습니다.
 Connection getConnection ()
          Connection 객체 (이 PooledConnection 객체가 나타내는 물리 접속의 핸들)를 작성해, 돌려줍니다.
 void removeConnectionEventListener (ConnectionEventListener  listener)
          지정한 이벤트 청취자를, 이 PooledConnection 객체로 이벤트가 발생했을 때에 통지되는 컴퍼넌트의 리스트로부터 삭제합니다.
 void removeStatementEventListener (StatementEventListener  listener)
          PreparedStatement 가 닫혀졌는지 무효라는 점을 드라이버가 검출했을 때에 통지를 받는 컴퍼넌트의 리스트로부터, 지정된 StatementEventListener 를 삭제합니다.
 

메소드의 상세

getConnection

Connection  getConnection()
                         throws SQLException 
Connection 객체 (이 PooledConnection 객체가 나타내는 물리 접속의 핸들)를 작성해, 돌려줍니다. 접속 풀 관리 프로그램은, 어플리케이션에 의해 DataSource.getConnection 메소드가 불려 갔지만, 이용 가능한 PooledConnection 객체가 존재하지 않는 경우에, 이 메소드를 호출합니다. 상세한 것에 대하여는,인터페이스의 설명 을 참조해 주세요.

반환값:
PooledConnection 객체의 핸들인 Connection 객체
예외:
SQLException - 데이타베이스 액세스 에러가 발생했을 경우
SQLFeatureNotSupportedException - JDBC 드라이버가 이 메소드를 지원하지 않는 경우
도입된 버젼:
1.4

close

void close()
           throws SQLException 
PooledConnection 객체가 나타내는 물리 접속을 닫습니다. 어플리케이션이 이 메소드를 직접 호출할 것은 없습니다. 이 메소드는, 접속 풀 모듈, 또는 접속 풀 관리 프로그램에 의해 불려 갑니다.  

상세한 것에 대하여는,인터페이스의 설명 을 참조해 주세요.

예외:
SQLException - 데이타베이스 액세스 에러가 발생했을 경우
SQLFeatureNotSupportedException - JDBC 드라이버가 이 메소드를 지원하지 않는 경우
도입된 버젼:
1.4

addConnectionEventListener

void addConnectionEventListener(ConnectionEventListener  listener)
지정한 이벤트 청취자를 등록해, 이 PooledConnection 객체로 이벤트가 발생했을 때에 통지되도록(듯이) 합니다.

파라미터:
listener - ConnectionEventListener 인터페이스를 구현해, 접속의 종료시 또는 에러의 발생시에 통지를 받는 컴퍼넌트. 일반적으로은 접속 풀 관리 프로그램
관련 항목:
removeConnectionEventListener(javax.sql.ConnectionEventListener)

removeConnectionEventListener

void removeConnectionEventListener(ConnectionEventListener  listener)
지정한 이벤트 청취자를, 이 PooledConnection 객체로 이벤트가 발생했을 때에 통지되는 컴퍼넌트의 리스트로부터 삭제합니다.

파라미터:
listener - ConnectionEventListener 인터페이스를 구현해, 이 PooledConnection 객체에 청취자로서 등록된 컴퍼넌트. 일반적으로은 접속 풀 관리 프로그램
관련 항목:
addConnectionEventListener(javax.sql.ConnectionEventListener)

addStatementEventListener

void addStatementEventListener(StatementEventListener  listener)
PooledConnection 객체에 StatementEventListener 를 등록합니다. 접속에 의해 작성된 PreparedStatement 가 닫혀졌을 때, 또는 무효이다고 판단되었을 경우에 통지를 받는 컴퍼넌트는, 이 메소드를 사용해, 이 PooledConnection 객체에 StatementEventListener 를 등록할 수 있습니다.  

파라미터:
listener - 이 PooledConnection 객체에 등록하는 StatementEventListener 인터페이스를 구현하는 컴퍼넌트

도입된 버젼:
1.6

removeStatementEventListener

void removeStatementEventListener(StatementEventListener  listener)
PreparedStatement 가 닫혀졌는지 무효라는 점을 드라이버가 검출했을 때에 통지를 받는 컴퍼넌트의 리스트로부터, 지정된 StatementEventListener 를 삭제합니다.  

파라미터:
listener - 이 PooledConnection 객체에 이전에 등록된 StatementEventListener 인터페이스를 구현하는 컴퍼넌트

도입된 버젼:
1.6

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.