본문 바로가기
Web Programming

JBoss EAP7, Wildfly JNDI 설정방법(with Spring JNDI 설정)

by 맑은안개 2023. 7. 25.

JBoss EAP의 JNDI를 사용하여 oracle dataresource를 구성하는 방법을 알아보자. (Wildfly의 JNDI 설정방법 동일)

개발환경

  1. IntelliJ
  2. JBoss EAP 7.x
  3. oracle ojdbc8.x jar

module 추가

먼저 오라클 드라이버를 추가해야 한다. 여기서는 ojdbc8.jar를 사용했다.
module은 다음의 위치에 새로 추가한다.

module 추가

위 이미지 처럼 jboss_root_path/modules/system/layers/base/com 하위에 새로운 디렉토리, oracle/main을 생성하고, 드라이버 jar파일을 위치한다. 추가로 module.xml 을 생성한다.

module.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
Oracle Driver
-->
<module xmlns="urn:jboss:module:1.9" name="com.oracle">
  <resources>
    <resource-root path="ojdbc8-23.2.0.0.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

standalone.xml

<subsystem xmlns="urn:jboss:domain:datasources:6.0">
            <datasources>
                <datasource jndi-name="java:jboss/datasources/oracleDS" pool-name="oracle" enabled="true" use-java-context="true" statistics-enabled="true">
                    <connection-url>jdbc:oracle:thin:@localhost:test</connection-url>
                    <driver>oracle</driver>
                    <security>
                        <user-name>erpdba</user-name>
                        <password>erp001</password>
                    </security>
                </datasource>
                <drivers>
                    <driver name="oracle" module="com.oracle">
                        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
                    </driver>
                </drivers>
            </datasources>
        </subsystem>
  • datasources, drivers 를 오라클용으로 추가한다.

pool parameters

커넥션 풀 관리가 필요한 경우 다음과 같이 설정할 수 있다.

<datasource...

    <pool>
        <min-pool-size>5</min-pool-size>
        <max-pool-size>20</max-pool-size>
        <prefill>true</prefill>
        <use-strict-min>false</use-strict-min>
        <flush-strategy>FailingConnectionOnly</flush-strategy>
    </pool>
</datasource>

Spring datasource 설정

@Configuration
public class AppConfig {
    @Bean
    public DataSource dataSource() {
        JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean();
        jndiObjectFactoryBean.setJndiName("java:jboss/datasources/oracleDS");
        jndiObjectFactoryBean.setResourceRef(true);
        jndiObjectFactoryBean.setProxyInterface(DataSource.class);
        return (DataSource) jndiObjectFactoryBean.getObject();
    }
}

EAP Console Monitoring

EAP에서 기본으로 제공하는 웹 콘솔에서 JNDI Datasource를 모니터링 할 수 있다.
| 웹 콘솔 접속을 위해선 add-user.sh or bat을 실행하여 Management user를 사전에 생성해야 한다.

반응형