먼저 weblogic.properties 에 정의 된 것과 같은 connection Pool 설정 및 데이터소스 설정합니다.
1. …/JBOSS_HOME/docs/examples/jca/ 위치에 있는 데이터 설정 XML 파일중 자신의 벤더 DB 와 맞는 것을 골라 수정합니다.
<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의 연관관계를 잘 알면 더욱 좋겠죠?
'SERVER > JBOSS' 카테고리의 다른 글
JBoss AS Administration Console User Guide (0) | 2014.08.27 |
---|---|
JBOSS 참조 블로그 (0) | 2014.04.12 |
JBOSS7에 사용자계정 추가하여 관리웹페이지 사용하기 (0) | 2014.02.03 |
JBoss Application Server 7에 Oracle Database Connection Pool 생성시 주의점.. (0) | 2014.02.03 |
JBoss Tips #1 - JBoss 어플리케이션 디플로이 경로 설정 (0) | 2014.02.02 |
JBoss Tech Tips #2 – 어플리케이션 수동 디플로이 / 언디플로이 / 리디플로이 (0) | 2014.02.02 |
JBoss Tech Tips #3 – Database Connection / Statement / ResultSet 누수 검출 (1) | 2014.02.02 |
JBoss DataSource 설정 (0) | 2014.02.02 |