Connection Pool
Connection Pool#
다음의 방법으로 연결 풀 (Connection Pool)을 설정하고 관리할 수 있다.
- AltibaseConnectionPoolDataSource 사용 WAS에서 연결 풀을 사용할 때, 이 클래스를 WAS의 JDBC연결 풀 설정에서 지정한다. 6.3.1 버전 이하의 Altibase JDBC 드라이버에서 이 클래스의 이름은 ABConnectionPoolDataSource였다.
AltibaseConnectionPoolDataSource에서 설정하는 속성 정보는 아래와 같다.
프로퍼티 이름 | 설명 |
---|---|
databaseName | 데이터베이스 이름 |
dataSourceName | dataSource 이름 |
loginTimeout | 데이터베이스 로그인을 위한 최대 대기 시간 |
logWriter | dataSource를 위한 Log writer |
password | 데이터베이스 패스워드 |
portNumber | 데이터베이스 포트 넘버 |
serverName | 데이터베이스 서버명 |
URL | Altibase 연결을 위한 Connection string 정보 (대문자 주의) |
user | 데이터베이스 사용자 ID |
WAS (Web Application Server) 설정#
Altibase는 아래의 웹 애플리케이션 서버와 함께 사용할 수 있다.
-
Tomcat 8.x
-
Code example
Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/altihdb"); Connection conn = ds.getConnection(); // ...
-
-
WebLogic 12.x
-
Jeus 6.x
웹 애플리케이션 서버에서 JDBC 드라이버와 연결 풀을 설정하고 사용하는 방법에 대해서는 각각의 제품별 매뉴얼을 참조하기 바란다.
Tomcat 8.x#
Apache Tomcat의 설치 및 설정 방법에 대한 자세한 내용은 http://tomcat.apache.org/tomcat-8.0-doc/index.html를 참조하기 바란다.
Context configuration#
아래와 같이 Context에 JNDI DataSource를 추가한다.
<Context>
<Resource name="jdbc/altihdb" auth="Container" type="javax.sql.DataSource"
driverClassName="Altibase.jdbc.driver.AltibaseDriver"
url="jdbc:Altibase://localhost:20300/mydb"
username="SYS" password="MANAGER"
maxTotal="100" maxIdle="30" maxWaitMillis="10000" />
</Context>
web.xml configuration#
<!----- web.xml ----->
<resource-ref>
<description>Altibase Datasource example</description>
<res-ref-name>jdbc/altihdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Code example#
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/altihdb");
Connection conn = ds.getConnection();
// ...
WebLogic 12.x#
WebLogic Server의 설치 및 설정 방법에 대한 자세한 내용은 Oracle WebLogic Server 페이지를 참조하기 바란다.
아래의 링크를 참조하여 JDBC datasource와 Connection Pool을 설정할 수 있다.
Altibase를 위한 설정 옵션은 아래와 같다.
- 데이터베이스 유형(Database Type): 기타(Other)
- 드라이버 클래스 이름(Driver Class Name): Altibase.jdbc.driver.AltibaseDriver
- URL: jdbc:Altibase://localhost:20300/mydb
Jeus 6.x#
$JEUS_HOME/config/JeusMain.xml
파일의 <data-source> 요소를 편집하여 연결 풀을 설정한다.
<!------ JeusMain.xml ----->
<resource>
<data-source>
<database>
<vendor>others</vendor>
<export-name>jdbc/altihdb</export-name>
<data-source-class-name>
Altibase.jdbc.driver.AltibaseConnectionPoolDataSource
</data-source-class-name>
<data-source-type>ConnectionPoolDataSource</data-source-type>
<auto-commit>true</auto-commit>
<property>
<name>PortNumber</name>
<type>java.lang.Integer</type>
<value>20300</value>
</property>
<property>
<name>Password</name>
<type>java.lang.String</type>
<value>MANAGER</value>
</property>
<property>
<name>ServerName</name>
<type>java.lang.String</type>
<value>localhost</value>
</property>
<property>
<name>ConnectionAttributes</name>
<type>java.lang.String</type>
<value>;create=true</value>
</property>
<property>
<name>DatabaseName</name>
<type>java.lang.String</type>
<value>mydb</value>
</property>
<property>
<name>User</name>
<type>java.lang.String</type>
<value>SYS</value>
</property>
</database>
</data-source>
</resource>
연결 확인#
Altibase JDBC 드라이버는 연결 유효성 검사를 위해, 일반 쿼리보다 가볍게 실행되는 핑(PING) 방식의 쿼리를 지원한다. WAS에서 poolPingQuery 또는 validationQuery 등으로 이용할 수 있다.
쿼리 패턴은 아래와 같으며, PreparedStatment에서도 사용할 수 있다.
-
허용되는 패턴
/* PING */ SELECT 1 /* ping */ select 1 /* PING */ SELECT 1 /* PING */ select 1 /* PING */ select 1 /* PING */ select 1 /* PING */ seLECt 1 /* ping */ SELECT 1
-
허용되지 않는 패턴
/* PING */SELECT 1 /*+ ping */ select 1 /*ping */ select 1 /* ping */ select 1 from dual /** PING */ SELECT 1 //* PING */ SELECT 1