> {Connection Pool에 관한 질문(Mysql)}
> {손님(guest), hanglue@hanmail.net}
>
> 웹스피어에서 jsp, servlet 사용시 아래와 같이 ConnectionResource를 만들어 사용하고
> 있습니다.
> Netaction에서는 DB와 연동하려면 어떻게 해야하나요?
> 참고로 RadPak에서 DataSources를 등록한 상태입니다.
>
> /*
> * ConnectionResource V 1.0
> * JDBC Connection Pool Adapter for IBM WebSphere V 3.5.x
> * Author: WonYoung Lee, javaservice@hanmail.net, 011-898-7904
> * Last Modified : 2000.09.30
> * NOTICS: You can re-distribute or copy this source code freely,
> * but you can NOT remove the above subscriptions.
> */
>
> import java.sql.*;
> import javax.sql.*;
> import javax.naming.*;
>
> public class ConnectionResource
> {
> private static final String datasource = "jdbc/MISONGDB";
> private static final String userid = "0000";
> private static final String password = "000000";
> private static DataSource ds = null;
>
> private java.sql.Connection conn = null;
>
> public ConnectionResource() throws Exception {
> synchronized ( ConnectionResource.class ) {
> if ( ds == null ) {
> java.util.Hashtable props = new java.util.Hashtable();
> props.put(Context.INITIAL_CONTEXT_FACTORY,
> "com.ibm.ejs.ns.jndi.CNInitialContextFactory");
> Context ctx = null;
> try {
> ctx = new InitialContext(props);
> ds = (DataSource)ctx.lookup(datasource);
> }
> finally {
> if ( ctx != null ) ctx.close();
> }
> }
> }
> conn = ds.getConnection( userid, password );
> }
> public Connection getConnection() throws Exception {
> if ( conn == null ) throw new Exception("Connection is NOT avaiable !!");
> return conn;
> }
> public void release(){
> // release conn into "Connection Pool"
> if ( conn != null ) try { conn.close(); }catch(Exception e){}
> conn = null;
> }
> }
다음처럼 하십시오.(아래예제는 오라클을 기준으로 되어 있으니 약간 수정하셔서
사용하십시오)
connector-service-config.xml 화일에 datasource 설정
예:
<datasource>
<min-pool-size>3</min-pool-size>
<max-pool-size>10</max-pool-size>
<datasource-type>hp-jdbc-tx</datasource-type>
<datasource-name>nicsdb</datasource-name>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<connection-url>jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:ORA805</connection-url>
<advertised-name>jdbc/nicsdb</advertised-name>
<container-managed-security>
<force-container-managed>true</force-container-managed>
<username>scott</username>
<password>tiger</password>
</container-managed-security>
</datasource>
이 리소스를 사용할 application의 war 화일이 WEB-INF 디렉토의 web.xml 화일에
리소스 정의
<resource-ref>
<res-ref-name>jdbc/nicsdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
하시고
JSP/Servlet에서 JNDI LookUp하셔서 사용하시면 됩니다.
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/nicsdb");
hp-as와 jsp/servlet이 한 jvm에 있으면 initialcontext에 별도로 property를
설정하지 않고도 jndi lookup을 이용하실 수 있습니다.
클라이언트를 별도의 jvm에 올리실 계획이십니까? 그렇다면 property 설정부분에
대한 자료를 참고하셔야 합니다. 이 문서는 hp-as 설치 디렉토리속의 docs의
devguide를 참고하십시오.
감사합니다.