8.6. 데이터 소스
데이터 소스는 일부 환경 변수의 값에 따라 자동으로 생성됩니다.
가장 중요한 환경 변수는 데이터 소스에 대한 JNDI 매핑을 정의하므로 DB_SERVICE_PREFIX_MAPPING
입니다. 이 변수에 허용되는 값은 POOLNAME-DATABASETYPE=PREFIX
트라이블릿의 쉼표로 구분된 목록입니다. 여기서:
-
POOLNAME
은 데이터 소스에서pool-name
으로 사용됩니다. -
DATABASETYPE
은 사용할 데이터베이스 드라이버입니다. -
PREFIX
는 데이터 소스를 구성하는 데 사용되는 환경 변수의 이름에 사용되는 접두사입니다.
8.6.1. 데이터 소스에 대한 JNDI 매핑
DB_SERVICE_
Triplet에 대해 시작 스크립트는 이미지를 실행할 때 실행되는 별도의 데이터 소스를 생성합니다.
PREFIX_MAPPING 환경 변수에 정의된 각POOLNAME-DATABASETYPE=
PREFIX
DB_SERVICE_PREFIX_MAPPING
의 첫 번째 부분(등호 앞에)은 소문자여야 합니다.
DATABASETYPE
은 데이터 소스의 드라이버를 결정합니다.
드라이버 구성에 대한 자세한 내용은 모듈, 드라이버 및 일반 배포를 참조하십시오. JDK 8 이미지에는 postgresql
및 mysql
용 드라이버가 기본적으로 구성됩니다.
POOLNAME
매개 변수에 특수 문자를 사용하지 마십시오.
이제 OpenShift용 JBoss EAP와 함께 Red Hat 제공 내부 데이터 소스 드라이버를 사용하는 지원이 더 이상 사용되지 않습니다. Red Hat은 데이터베이스 벤더에서 JBoss EAP 애플리케이션을 위해 얻은 JDBC 드라이버를 사용하는 것이 좋습니다.
다음 내부 데이터 소스는 더 이상 OpenShift용 JBoss EAP 이미지와 함께 제공되지 않습니다.
- MySQL
- PostgreSQL
드라이버 설치에 대한 자세한 내용은 모듈, 드라이버 및 일반 배포를 참조하십시오.
JBoss EAP를 사용하여 JDBC 드라이버 구성에 대한 자세한 내용은 JBoss EAP 구성 가이드의 JDBC 드라이버를 참조하십시오.
프로비저닝된 서버에 추가하려는 경우 이러한 드라이버 및 데이터 소스를 설치할 사용자 지정 계층도 만들 수 있습니다.
8.6.1.1. 데이터 소스 구성 환경 변수
다른 데이터 소스 속성을 구성하려면 다음 환경 변수를 사용합니다.
다음 변수 이름에 있는 POOLNAME
, DATABASETYPE
및 PREFIX
의 값을 적절한 값으로 교체해야 합니다. 이러한 교체 가능한 값은 이 섹션과 Datasources 섹션에 설명되어 있습니다.
변수 이름 | 설명 |
---|---|
POOLNAME_DATABASETYPE_SERVICE_HOST |
데이터 소스의
값 예: |
POOLNAME_DATABASETYPE_SERVICE_PORT | 데이터 소스에 대한 데이터베이스 서버의 포트를 정의합니다.
값 예: |
PREFIX_BACKGROUND_VALIDATION |
|
PREFIX_BACKGROUND_VALIDATION_MILLIS |
|
PREFIX_CONNECTION_CHECKER | 사용 중인 특정 데이터베이스에 대한 연결을 확인하는 데 사용되는 연결 검사기 클래스를 지정합니다.
예제 값: |
PREFIX_DATABASE | 데이터 소스의 데이터베이스 이름을 정의합니다.
값 예: |
PREFIX_DRIVER | 데이터 소스에 대한 Java 데이터베이스 드라이버를 정의합니다.
값 예: |
PREFIX_EXCEPTION_SORTER | 치명적인 데이터베이스 연결 예외 후 올바르게 감지 및 정리하는 데 사용되는 예외 분류기 클래스를 지정합니다.
예제 값: |
PREFIX_JNDI |
데이터 소스의 JNDI 이름을 정의합니다. 기본값은
예제 값: |
PREFIX_JTA | 비 XA 데이터 소스에 대한 Jakarta Transactions 옵션을 정의합니다. XA 데이터 소스는 기본적으로 사용할 수 있는 자카르타 트랜잭션입니다.
기본값은 |
PREFIX_MAX_POOL_SIZE | 데이터 소스에 대한 최대 풀 크기 옵션을 정의합니다.
값 예: |
PREFIX_MIN_POOL_SIZE | 데이터 소스에 대한 최소 풀 크기 옵션을 정의합니다.
값 예: |
PREFIX_NONXA |
데이터 소스를 비 XA 데이터 소스로 정의합니다. 기본값은 |
PREFIX_PASSWORD | 데이터 소스의 암호를 정의합니다.
값 예: |
PREFIX_TX_ISOLATION | 데이터 소스의 java.sql.Connection 트랜잭션 격리 수준을 정의합니다.
값 예: |
PREFIX_URL | 데이터 소스의 연결 URL을 정의합니다.
예제 value: |
PREFIX_USERNAME | 데이터 소스의 사용자 이름을 정의합니다.
값 예: |
OpenShift에서 이 이미지를 실행하는 경우 POOLNAME_DATABASETYPE_SERVICE_HOST
및 POOLNAME_DATABASETYPE_SERVICE_PORT
환경 변수는 OpenShift 애플리케이션 템플릿의 데이터베이스 서비스 정의에서 자동으로 설정되며 템플릿에 있는 다른 항목은 각 포드 템플릿의 컨테이너 정의의 env
항목으로 직접 구성됩니다.
8.6.1.2. 예제
이 예에서는 DB_SERVICE_PREFIX_MAPPING
환경 변수의 값이 데이터 소스 생성에 어떤 영향을 주는지 보여줍니다.
8.6.1.2.1. 단일 매핑
test-postgresql=TEST
값을 고려합니다.
그러면 java:jboss/datasources/test_postgresql
이름을 사용하여 데이터 소스가 생성됩니다. 또한 password 및 username과 같은 모든 필수 설정은 TEST_
접두사가 있는 환경 변수로 제공되어야 합니다(예: TEST_USERNAME
및 TEST_PASSWORD
).
8.6.1.2.2. 다중 매핑
여러 데이터 소스 매핑을 지정할 수 있습니다.
항상 여러 데이터 소스 매핑을 쉼표로 구분합니다.
DB_SERVICE_PREFIX_MAPPING
환경 변수 cloud-postgresql=CLOUD,test-mysql=TEST_MYSQL
의 값을 고려합니다.
이렇게 하면 다음과 같은 두 개의 데이터 소스가 생성됩니다.
-
java:jboss/datasources/test_mysql
-
java:jboss/datasources/cloud_postgresql
그런 다음 TEST_MYSQL
접두사를 사용하여 MySQL 데이터 소스의 사용자 이름 및 암호(예: TEST_MYSQL_USERNAME
)를 구성할 수 있습니다. PostgreSQL 데이터 소스의 경우 CLOUD_ 접두사(예:
)를 사용합니다.
CLOUD_
USERNAME