티스토리 뷰
본 포스팅은 벤더사 별 WAS의 Datasource 설정방법에 대해 알아보겠습니다.
1. Datasource 사용방법
a. Weblogic
등록된 Datasource 확인 방법
아래의 화면은 Admin Console 로 생성한 Datasource 를 보여준다.
Weblogic 의 Datasource 설정은 DOMAIN_HOME/config/config.xml 의 <jdbc-system-resource> 태그에 정의된다.
[예] config.xml
<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 파일에 설정을 추가하여 반영할 수 있다.
- 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]
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를 설정하여 사용하는 것이 일반적이다.
<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 확인 방법에 대해 알아보았습니다.
감사합니다.
'④ 미들웨어' 카테고리의 다른 글
Kernel Parameter (TCP Parameter 정복하기) (0) | 2019.01.13 |
---|---|
[WEB Server] TCP 권고 Parameter (0) | 2019.01.13 |
[WAS] 각 벤더사 별 주요 환경파일 분석 (0) | 2018.08.27 |
[Web Application Server] Architecture (WEB / WAS 부문) (5) | 2018.08.27 |
[ETC] SSL vs TLS 차이점 및 확인방안 (0) | 2018.06.18 |
- Total
- Today
- Yesterday
- SA
- Docker
- JBoss
- OpenStack
- git
- 마이크로서비스
- JEUS6
- JEUS7
- Architecture
- SWA
- 마이크로서비스 아키텍처
- API Gateway
- webtob
- k8s
- jeus
- 오픈스택
- 아키텍처
- openstack token issue
- node.js
- TA
- MSA
- nodejs
- apache
- 쿠버네티스
- wildfly
- aa
- Da
- aws
- openstack tenant
- kubernetes
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |