728x90
반응형

 

먼저 weblogic.properties 에 정의 된 것과 같은 connection Pool 설정 및 데이터소스 설정합니다.

1. …/JBOSS_HOME/docs/examples/jca/ 위치에 있는 데이터 설정 XML 파일중 자신의 벤더 DB 와 맞는 것을 골라 수정합니다.

 

<local-tx-datasource>
    <jndi-name>TestDB</jndi-name> //look up 할 JNDI 명을 설정한다.
    <connection-url>jdbc:oracle:thin:@127.0.0.1:1521:SID</connection-url> //데이터 베이스 Connection URL 설정
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> //사용할 JDBC 드라이버 클래스 명 을 정의
    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
    <min-pool-size>100</min-pool-size> // 최소 pool 사이즈
    <max-pool-size>100</max-pool-size> // 최대 pool 사이즈
    <blocking-timeout-millis>5000</blocking-timeout-millis> //connection 얻기 위해 최대 대기 하는 시간
    <idle-timeout-minutes>15</idle-timeout-minutes> //연결 최대 유효시간
    <new-connection-sql>SELECT COUNT(*) FROM SOME_TABLES</new-connection-sql> //연결 시 유효 테스트를 위한 sql 문
    <check-valid-connection-sql>SELECT COUNT(*) FROM TABLES</check-valid-connection-sql> //pool에서 connection을 꺼내기 전에 connection이 유효한지 확인하는데 사용할 쿼리를 설정.
    <valid-connection-checker-class-name> //vendor에서 지원하는 방법으로 connection의 유효성을 체크하며, 이 값이 설정되면 check-valid-connection-sql은 사용되지 않는다. (오버라이드)
org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker
    </valid-connection-checker-class-name>
    <user-name>scott</user-name> //해당 스키마 유저 네임
    <password>tiger</password> //해당 스키마 유저 패스 워드
    <track-statements>true</track-statements> // 클로즈 안된 statement 나 resultset 을 모니터링 하고 클로즈함
    <prepared-statement-cache-size>100</prepared-statement-cache-size>
<local-tx-datasource>

 

 

만약 WebLogic에서 처럼 global하게 바인딩하려면 <use-java-context>false</use-java-context>로 설정하면 된다. 이 때는 Context.lookup()시에 jdbc/xxx로 명시한다.

2. 해당 *-ds.xml 디플로이 방법은 해당*-ds.xml 파일을 해당 사용할 JBOSS 서버의 deploy 디렉터리에 위치 시키면 자동으로 디플로이 가 됩니다.

    i. 위치 예) /JBOSS_HOME/server/default/deploy
    ii. JDBC 드라이버 위치 예)/JBOSS_HOME/server/default/lib 에 위치 시킴

3. Application 사용 예(생략 후 성공)
   i. jboss-web.xml

<jboss-web>
   <resource-ref>
       <res-ref-name>jdbc/OracleDS</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
       <jndi-name>java:/TestDB</jndi-name>
   </resource-ref>
</jboss-web>

    ii. web.xml
<web-app>
...
   <resource-ref>
        <description>Oracle</description>
        <res-ref-name>jdbc/Oracle</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>

Programming을 할 경우에 다음과 같이 DataSource를 얻어올 수 있습니다.

Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp:/env/jdbc/OracldDS");
 
web.xml과 jboss-web.xml의 resource-reference의 연관관계를 잘 알면 더욱 좋겠죠?

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,