728x90
<subsystem xmlns="urn:jboss:domain:datasources:6.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
.....
</datasource>
<datasource jndi-name="java:/testDS" pool-name="test" statistics-enabled="true">
<connection-url>jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:orcl</connection-url>
<driver>oracle_jdbc_driver_19c</driver>
.....
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="oracle_jdbc_driver_19c" module="com.oracle.jdbc">
<driver-class>oracle.jdbc.OracleDriver</driver-class>
</driver>
</drivers>
</datasources>
</subsystem>
........
<subsystem xmlns="urn:jboss:domain:ee:6.0">
<spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>
<concurrent>
......
</concurrent>
<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
</subsystem>
JBoss에서 데이터소스를 구성하고자 하면 driver를 등록해주고, datasource를 생성해야 한다.
JBoss에서는 기본적으로 ExampleDS 라는 데이터소스와 h2 driver가 존재하는데,
프로젝트시 고객사의 요청으로 해당 데이터소스와 driver를 삭제해야하는 경우가 있다.
이경우 간단하게 생각하면, <datasource jndi-name="java:jboss/datasources/ExampleDS" ...> 에 해당하는 태그와
<driver name="h2" module="com.h2database.h2"> 에 해당하는 태그를 삭제하면 될 거라 생각한다.
하지만 주의해야 할 것은, ExampleDS의 경우 JBoss standalone 인스턴스 기동 시에 기본적으로 묶여있는 데이터소스이다 보니, 단순히 <datasource>와 <driver>를 지운다고 해서 해결되는 문제가 아니다.
이 사실을 모른채 단순히 태그만 제거하고 기동했을 시 다음의 로그가 확인되며,
기본적인 페이지 조차 정상적으로 호출되지 않는 것을 확인할 수 있다.
09:02:20,519 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread)
WFLYCTL0013: Operation ("add") failed - address: ([("deployment" => "test11")])
- failure description: {
"WFLYCTL0412: Required services that are not installed:"
=> ["jboss.naming.context.java.jboss.datasources.ExampleDS"],
"WFLYCTL0180: Services with missing/unavailable dependencies"
=> ["jboss.naming.context.java.module.test11.test11.DefaultDataSource is missing
[jboss.naming.context.java.jboss.datasources.ExampleDS]"]
}
따라서 <datasource>와 <driver>를 지웠으면
<default-bindings ... datasource="java:jboss/datasources/ExampleDS" ... /> 이 부분을
고객사의 datasource로 변경 해주어야 한다.
[BEFORE]
<default-bindings ... datasource="java:jboss/datasources/ExampleDS" ... />
[AFTER]
<default-bindings ... datasource="java:/testDS" ... />'WAS > JBoss&WildFly' 카테고리의 다른 글
| [JBoss EAP 7.4] 파일 업로드 제한 (0) | 2024.05.20 |
|---|---|
| [JBoss EAP 7.4] vi로 nohup 로그를 열 때 ^[[ 문자가 나오는 경우 (1) | 2024.03.06 |
| [JBoss 7.4] thread 수 설정 (0) | 2024.02.08 |
| [JBoss 7.4] serverlog와 log4j 로그 별도 기록 (0) | 2024.01.02 |
| ${JBOSS_CONF_DIR}/standalone_xml_history 경로 권한 변경 시 기동 오류 발생 (1) | 2023.12.26 |