티스토리 뷰

728x90
반응형

 포스팅은 벤더사 별 WAS의 Datasource 설정방법에 대해 알아보겠습니다.



1. Datasource 사용방법

a. Weblogic

등록된 Datasource 확인 방법
아래의 화면은 Admin Console 로 생성한 Datasource 를 보여준다.

 

 

Weblogic 의 Datasource 설정은 DOMAIN_HOME/config/config.xml 의 <jdbc-system-resource> 태그에 정의된다.
[예] config.xml

<jdbc-system-resource>
    <name>datasource1</name>
    <target>Server1</target>
    <descriptor-file-name>jdbc/datasource1-jdbc.xml</descriptor-file-name>
</jdbc-system-resource>

 

Datasource의 설정 정보는 Admin Console 에서 Datasource name을 선택하거나 또는 config.xml 의 <descriptor-file-name>에 정의된 xml 파일을 통하여 확인 할 수 있다.
[예] datasource1-jdbc.xml

<?xml version='1.0' encoding='UTF-8'?>
<jdbc-data-source xmlns=http://www.bea.com/ns/weblogic/90
xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xsi:schemaLocation="http://www.bea.com/ns/weblogic/920 http://www.bea.com/ns/weblogic/920.xsd">
<name>datasource1</name>
<jdbc-driver-params>
<url>jdbc:bea:oracle://192.168.231.10:1521</url>
<driver-name>weblogic.jdbc.oracle.OracleDriver</driver-name>
<properties>
<property>
<name>user</name>
<value>scott</value>
</property>
<property>
<name>portNumber</name>
<value>1521</value>
</property>
<property>
<name>SID</name>
<value>ora10g</value>
</property>
<property>
<name>serverName</name>
<value>192.168.231.10</value>
</property>
</properties>
<password-encrypted>{3DES}832H8W/7YD0=</password-encrypted>
</jdbc-driver-params>
<jdbc-connection-pool-params>
<test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>
</jdbc-connection-pool-params>
<jdbc-data-source-params>
<jndi-name>datasource1</jndi-name>
<global-transactions-protocol>None</global-transactions-protocol>
</jdbc-data-source-params>
</jdbc-data-source>


b. JEUS 

아래와 같이 JEUSMain.xml 파일에 설정을 추가하여 반영할 수 있다.

%JEUS_HOME%\config\hostname\JEUSMain.xml에 입력 또는 수정하여 설정한다.

 

 

- JEUS6의 기본적인 데이터소스 작성방법입니다.

<database>

                <vendor>oracle</vendor>

                <export-name>db_con1</export-name>

                    <data-source-target>limpc_container1</data-source-target>

                <data-source-class-name>oracle.jdbc.pool.OracleConnectionPoolDataSource</data-source-class-name>

                <data-source-type>ConnectionPoolDataSource</data-source-type>

                <database-name>orcl</database-name>

                <port-number>1521</port-number>

                <server-name>192.168.41.40</server-name>

                <user>tmaxdb</user>

                <password>tmaxdb</password>

                <property>

                    <name>driverType</name>

                    <type>java.lang.String</type>

                    <value>thin</value>

                </property>

                <connection-pool>

                    <pooling>

                        <min>5</min>

                        <max>5</max>

                        <period>600000</period>

                    </pooling>

                    <wait-free-connection>

                        <enable-wait>true</enable-wait>

                        <wait-time>10000</wait-time>

                    </wait-free-connection>

                </connection-pool>

            </database>

 

c. Tomcat

-DBCP
Tomcat하에서 개발된 Application의 경우 DBCP(DataBase Connection Pool)을 이용하는 경우가 많다.
DBCP 관련 모듈은 $CATALINA_HOME/common/lib 아래에 naming-factory-dbcp.jar의 이름으로 존재한다.
관련 설정은 $CATALINA_HOME/conf/server.xml, 그리고 아래의 경로에서 찾을 수 있다.
- $CATALINA_HOME/conf/context.xml
- $CATALINA_HOME/conf/[enginename]/[hostname]/context.xml
예를 들면 아래와 같다.
[context.xml]
 

<Context path="/DBTest" docBase="DBTest"
debug="5" reloadable="true" crossContext="true">
<!-- maxActive: Maximum number of dB connections in pool.
Make sure you configure your mysqld max_connections large enough to handle all of your db connections.
Set to 0 for no limit. -->
<!-- maxIdle: Maximum number of idle dB connections to retain in pool.
Set to -1 for no limit. See also the DBCP documentation on this and the minEvictableIdleTimeMillis configuration parameter. -->
<!-- maxWait: Maximum time to wait for a dB connection to become available in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely. -->
<!-- username and password: MySQL dB username and password for dB connections -->
<!-- driverClassName: Class name for the old mm.mysql JDBC driver is org.gjt.mm.mysql.Driver - we recommend using Connector/J though.
Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver. -->
<!-- url: The JDBC connection url for connecting to your MySQL dB. The autoReconnect=true argument to the url makes sure that the mm.mysql JDBC Driver will automatically reconnect if mysqld closed the connection. mysqld by default closes idle connections after 8 hours. -->
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/javatest? autoReconnect=true"/>
</Context>


각 Web Application에서는 WEB-INF/web.xml에 아래와 같이 resource-ref를 설정하여 사용하는 것이 일반적이다.

 

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>
</resource-ref>
</web-app>


이를 사용하는 Client Code는 아래의 형태가 된다.
 

...
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/TestDB");
Connection conn = ds.getConnection();
...

 


- Non-DBCP
DBCP를 사용하지 않는 Client Code는 아래의 형태가 된다.
 

...
DriverManager.registerDriver(new
oracle.jdbc.driver.OracleDriver());
conn =
DriverManager.getConnection("jdbc:oracle:oci8:@database","username","password");
...

 

d. Websphere

하기의 화면에서는 Oracle JDBC 프로바이더가 1개 설정되어 있다. 


등록되어 있는 Oracle JDBC Driver 를 선택하면 하기와 같은 화면이 출력된다. 일반 등록 정보에서 현재 사용하고 있는 Oracle JDBC 의 경로를 확인 할 수 있다. 해당 값은 사이트 상황에 따라 달라 질 수 있는 값이다.  

 


추가 등록 정보에서 데이터소스를 클릭하여 <export-name>에 대응하는 JNDI 이름을 확인한다.

 

 

금일은 각 벤더사 별 Datasource 확인 방법에 대해 알아보았습니다.

감사합니다.

728x90
반응형