TIBERO-WAS 연동 Guide 본문서에서는 Tibero RDBMS 에서제공하는 JDBC 통한 JEUS, WEBLOGIC 등다양한 WAS (Web Application Server) 제품과의연동방법을알아본다.
Contents 1. Connection Pool 방식... 2 2. JEUS 연동... 3 2.1. JEUSMain.xml 설정 (Thin 방식 )... 3 2.2. SAMPLE SOURCE(connect.jsp)... 4 3. TOMCAT 4.x 연동... 5 3.1. SERVER.xml 설정... 5 3.2. WEB.xml 설정... 6 3.3. SAMPLE SOURCE(connect.jsp)... 6 4. TOMCAT 5.5.x 연동... 7 4.1. context.xml 설정... 7 4.2. SAMPLE SOURCE(connect.jsp)... 8 5. WEBLOGIC 연동... 9 5.1. 콘솔실행후 JDBC 설정... 9 5.2. config.xml 설정... 9 6. JBOSS 연동... 10 6.1. JBOSS 설정... 10 6.1.1. 설치젂환경설정... 10 6.1.2. JDBC 파일위치... 11 6.1.3. Tibero와의연동테스트... 11 6.1.4. 서버에해당프로젝트추가하기... 13 6.1.5. JSP Test (Tibero)... 14 Update History Date Worker Comments 2011.03.11 박근용문서서식업데이트 2009.10.20 류제만문서업데이트 1
1. Connection Pool 방식 Database 와연결된 connection 을미리만들어서 pool 속에저장해두고있다가필요할때에 connection 을 pool 에서가지고와서사용을한후다시 pool 에반환을하는방법 1. Pool 에서 Connection 을가져온다. Connection Pool Connection 2. Connection 을사용한다. Connection 3. Connection 을 Pool 에반환한다. Connection Connection 2
2. JEUS 연동 2.1. JEUSMain.xml 설정 (Thin 방식 ) <data-source> <database> <vendor>other</vendor> //JEUS5 fix23이후버젂은 <vender>tibero</vender> 로해주시기바랍니다. <export-name>tibero</export-name> <data-source-class-name>com.tmax.tibero.jdbc.ext.tbconnectionpooldatasource </data-source-class-name> //classname <data-source-type>connectionpooldatasource</data-source-type> <database-name>tibero</database-name> // Tibero 설치 SID <data-source-name>com.tmax.tibero.jdbc.ext.tbconnectionpooldatasource </data-source-name> <port-number>8629</port-number> // Tibero 연결사용포트 <server-name>localhost</server-name> // Tibero 설치주소 <user>tibero</user> // 사용계정 <password>tmax</password> // 계정 Password <connection-pool> <pooling> <min>10</min> <max>30</max> <step>4</step> <period>3600000</period> </pooling> <wait-free-connection> <enable-wait>false</enable-wait> <wait-time>10000</wait-time> </wait-free-connection> <max-use-count>0</max-use-count> <dba-timeout>-1</dba-timeout> <stmt-caching-size>-1</stmt-caching-size> <stmt-fetch-size>-1</stmt-fetch-size> </connection-pool> </database> </data-source> 1) 설정을하기젂에 $TB_HOME/client/lib/jar 안에들어있는 tibero-jdbc.jar 파일을 $JEUS_HOME/lib/datasource 경로로복사를해넣어야한다. 2) $JEUS_HOME/config/`hostname`/JEUSMain.xml 파일에서환경설정을한다. 3) </node> 끝나는지점아래에 <resource> 와 </resource> 를만들고그사이에 DB 관련환경설정을넣으면된다. 4) 설정이완료가되면 JEUS를변경내용을적용하기위하여 JEUS를재부팅해야한다. * DB 설정이정상적으로이루어졌는지에대한확인은 JEUS 5 매뉴얼에서 dbpooladmin 명령어를참조.(JEUS 6 에서는 jeusadmin 명령어로확인.) 3
2.2. SAMPLE SOURCE(connect.jsp) <%@ page import="java.sql.*" %> <%@ page import="javax.sql.*" %> <%@ page import="javax.naming.*" %> <% Connection con=null; Statement st=null; ResultSet rs=null; try InitialContext initctx = new InitialContext(); DataSource ds = (DataSource) initctx.lookup("tibero"); //export-name 과일치시킵니다. con=ds.getconnection(); st=con.createstatement(); rs=st.executequery("select 'Success!!' from dual"); while(rs.next()) out.println(rs.getstring(1)); catch(exception e) out.print("error!\n"); out.println(e); finally if(rs!=null)rs.close(); if(st!=null)st.close(); if(con!=null)con.close(); %> 1) DataSource ds = (DataSource) initctx.lookup( tibero ); 이부분에서 tibero 부분은 JEUSMain.xml 에서 export-name 이랑일치가되어야한다. 4
3. TOMCAT 4.x 연동 3.1. SERVER.xml 설정 <Context path="" docbase="root" debug="0"> <Resource name="jdbc/tibero" auth="container" type="javax.sql.datasource //jdbc/[export-name] description= Tibero 4" > </Resource> <ResourceParams name="jdbc/tibero"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.basicdatasourcefactory</value> </parameter> <parameter> <name>driverclassname</name> <value> com.tmax.tibero.jdbc.tbdriver </value> //classname </parameter> <parameter> <name>url</name> <value>jdbc:tibero:thin:@localhost:port:sid</value> // 사용예 : jdbc:tibero:thin:@127.0.0.1:8629:tibero </parameter> <parameter> <name>maxactive</name> <value>50</value> </parameter> <parameter> <name>maxidle</name> <value>30</value> </parameter> <parameter> <name>maxwait</name> <value>10000</value> </parameter> <parameter> <name>username</name> <value>user</value> // 사용계정 </parameter> <parameter> <name>password</name> <value>password</value> // 계정 Password </parameter> </ResourceParams> 1) 설정을하기젂에 $TB_HOME/client/lib/jar 안에들어있는 tibero-jdbc.jar 파일을 $CATALINA_HOME/common/lib 안에복사를해넣어야한다. 2) 이설정은 TOMCAT 4 이상버젂에서사용하는설정이다. 3) $CATALINA_HOME/conf/server.xml파일에서 </host> 가끝나는부분뒤에위내용을추가하면된다. 5
3.2. WEB.xml 설정 <resource-ref> <description> Tibero DataSource</description> <res-ref-name>jdbc/tibero</res-ref-name> // server.xml 에 resource name 와동일하게만들어주시기바랍니다. <res-type>javax.sql.datasource</res-type> <res-auth>container</res-auth> </resource-ref> 1) $CATALINA_HOME 은 TOMCAT 홈디렉토리위치이다. 2) $CATALINA_HOME/conf/web.xml 파일의 </web-app > 앞에위에내용을추가한다. * 나머지설정부분에대해서는 TOMCAT 매뉴얼을참조하시기바란다. 3.3. SAMPLE SOURCE (connect.jsp) <%@ page import="java.sql.*" %> <%@ page import="javax.sql.*" %> <%@ page import="javax.naming.*" %> <% Connection con=null; Statement st=null; ResultSet rs=null; try InitialContext initctx = new InitialContext(); DataSource ds = (DataSource) initctx.lookup("java:comp/env/jdbc/tibero"); con=ds.getconnection(); st=con.createstatement(); rs=st.executequery("select 'Success!!' from dual"); while(rs.next()) out.println(rs.getstring(1)); catch(exception e) out.print("error!\n"); out.println(e); finally if(rs!=null)rs.close(); if(st!=null)st.close(); if(con!=null)con.close(); %> 6
4. TOMCAT 5.5.x 연동 4.1. context.xml 설정 <?xml version="1.0" encoding="utf-8"?> <Context docbase="root" path="/root" displayname="root Context" reloadable="true" cookies="true" swallowoutput="true" override="true" debug="0"> <Resource name="jdbc/tibero //jdbc/[export-name] auth="container" type="javax.sql.datasource" driverclassname="com.tmax.tibero.jdbc.tbdriver //classname factory="org.apache.tomcat.dbcp.dbcp.basicdatasourcefactory" url="jdbc:tibero:thin:@localhost:port:sid // 사용예 : jdbc:tibero:thin:@127.0.0.1:8629:tibero username="tibero // 사용계정 password="tmax // 계정 Password maxactive="20" maxidle="10" maxwait="-1" removeabandoned="true"/> </Context> 1) 설정을하시기젂에 $TB_HOME/client/lib/jar 안에들어있는 tibero-jdbc.jar 파일을 $CATALINA_HOME/common/lib 안에다가복사를해넣어야한다. 2) 이설정은 TOMCAT 5.x 이상버젂에서사용하는설정이다. 3) $CATALINA_HOME/webapps/[webappname]/META-INF/context.xml 파일을만드싞후위에설정을추가하시면된다. 4) $CATALINA_HOME 은 TOMCAT 홈디렉토리위치이다. 5) 설정추가가된후변경된내용을적용하기위하여재부팅을한다. * 나머지설정부분에대해서는 TOMCAT 매뉴얼을참조하시기바랍니다. 7
4.2. SAMPLE SOURCE(connect.jsp) <%@ page import="java.sql.*" %> <%@ page import="javax.sql.*" %> <%@ page import="javax.naming.*" %> <% Connection con=null; Statement st=null; ResultSet rs=null; try InitialContext initctx = new InitialContext(); DataSource ds = (DataSource) initctx.lookup("java:comp/env/jdbc/tibero"); con=ds.getconnection(); st=con.createstatement(); rs=st.executequery("select 'Success!!' from dual"); while(rs.next()) out.println(rs.getstring(1)); catch(exception e) out.print("error!\n"); out.println(e); finally if(rs!=null)rs.close(); if(st!=null)st.close(); if(con!=null)con.close(); %> 8
5. WEBLOGIC 연동 5.1. 콘솔실행후 JDBC 설정 [1] JDBC-Connection Pool-Other 생성 Name DBPOOL 이름설정 Driver Classname com.tmax.tibero.jdbc.tbdriver URL jdbc:tibero:thin:@localhost:port:sid // 사용예 : jdbc:tibero:thin:@127.0.0.1:8629:tibero Database User Name Password [2] JDBC-DataSource 생성 Name, JNDI Name, 바인딩 Connection Pool 설정 [3] Config.xml 자동적용 5.2. config.xml 설정 <JDBCConnectionPool DriverName="com.tmax.tibero.jdbc.TbDriver" Name="Tibero_ConnPool" Password="3DESq3EJJAAGEco=" Properties="user=sys" Targets="myserver" URL="jdbc:tibero:thin:@127.0.0.1:8629:tibero"/> <JDBCTxDataSource JNDIName= tibero" Name= tibero" PoolName="Tibero_ConnPool" Targets="myserver"/> 1) tibero-jdbc 드라이버 WL_HOME/server/lib/tibero-jdbc.jar 복사한다. 2) startweblogic.sh 수정후재시작한다. CLASSPATH=~~:$WL_HOME/server/lib/tibero-jdbc.jar;~~ export CLASSPATH 3.) DataSource ds = (DataSource) initctx.lookup( tibero ); 이부분에서 tibero 부분은 Config.xml에서 JNDIName과일치가되어야한다. * Weblogic 5.x 경우 weblogic.properties 파일의 url, driver 부분을수정해준다. url = com.tmax.tibero.jdbc.tbdriver, driver = jdbc:tibero:thin:@localhost:8629:tibero 9
6. JBOSS 5 연동 6.1. JBOSS 설정 6.1.1. 설치젂환경설정 - JBOSS 5가 jdk6 버젂에서구동되므로환경설정의 JAVA_HOME을 jdk6로변경해주어야한다. - 환경변수설정 (JAVA_HOME과 PATH 변경 ) - JBOSS 홈디렉토리설정후설치 10
6.1.2. JDBC 파일위치 - JBOSS_HOME\server\default\lib 의위치에 odbc14.jar 파일을넣어준다. 6.1.3. Tibero와의연동테스트 - JBOSS_HOME\server\default\lib의위치에 odbc14.jar 파일을넣어준다. - JBOSS_HOME\docs\example\jca에 있는 oracle-ds.xml 을 복사하여 JBOSS_HOME\server\default\deploy 위치에복사한다. - JBOSS_HOME\server\default\deploy의 Oracle-ds.xml을 Tibero-ds.xml로아래와 같이수정한다.( 기존의 Orace-ds.xml은삭제하거나 Oracle-ds.xml.bak으로수정 ) <datasources> <local-tx-datasource> <jndi-name>tiberods</jndi-name> //JNDI 를이용하여불러올때이름을설정하는부분입니다. <connection-url>jdbc:tibero:thin:@127.0.0.1:8629:tibero</connection-url> <driver-class>com.tmax.tibero.jdbc.tbdriver </driver-class> <user-name>tibero </user-name> // 접속 user 계정 <password>tmax</password> // 접속 user passwd <exception-sorter-class-name> org.jboss.resource.adapter.jdbc.vendor.oracleexceptionsorter </exception-sorter-class-name> <metadata> <type-mapping>oracle9i</type-mapping> </metadata> </local-tx-datasource> </datasources> 11
- File->New->Dynamic Webproject 클릭 -> project_name(jboss_tibero) 주고 finish. test_tibero.jsp 파일생성 생성된프로젝트에서마우스오른쪽버튼클릭후 new -> JSP 선택 -> test.jsp <%@ page import="java.sql.*" %> <%@ page import="javax.sql.*" %> <%@ page import="javax.naming.*" %> <% Connection con=null; Statement st=null; ResultSet rs=null; try InitialContext initctx = new InitialContext(); DataSource ds = (DataSource) initctx.lookup("java:/tiberods"); con=ds.getconnection(); st=con.createstatement(); rs=st.executequery("select table_name from user_tables"); while(rs.next()) out.println(rs.getstring(1)); catch(exception e) out.print("error!\n"); out.println(e); finally if(rs!=null)rs.close(); if(st!=null)st.close(); if(con!=null)con.close(); %> 12
6.1.4. 서버에해당프로젝트추가하기 13
Server 에해당프로젝트추가완료 6.1.5. JSP Test (Tibero) 14
Information Intelligence, Tibero 15