본문으로 건너뛰기

9.6 XA JDBC 드라이버와 데이터소스 설정

XA데이터소스 작성 및 설정 방법에 대해 설명한다. XA 데이터소스를 설정하기 위해서는 먼저 분산 트랜잭션을 지원하는 JDBC 드라이버가 설치되어 있어야 한다.

XA데이터소스를 추가하는 절차도 Non-XA 데이터소스를 추가하는 절차와 같이 ‘데이터소스 등록’ ‘연결 정보 수정’ ‘JDBC 드라이버 선택’ ‘데이터소스 Enable’ 순서로 설정한다.

XA데이터소스

다음에서 MariaDBXA_DS라는 이름의 XA 데이터소스를 작성한다. xa-data-source 자원을 추가하려면, 아래와 같은 항목들을 설정해야 한다.

항목설명설정 예제
connection-url접속할 데이터베이스에 대한 연결 URLjdbc:mysql://localhost:3306/mysql
nameXA 데이터소스 이름MariaDB_XA_DS
driver-name사용할 JDBC 드라이버 이름을 설정. JDBC 드라이버를 배포하여 사용하는 경우 deployments 디렉터리 아래의 JDBC 드라이버의 파일명으로 설정한다. JDBC 드라이버를 모듈로 등록해 사용하는 경우 jdbc-driver에 추가한 이름을 사용한다.mariadb
jndi-name데이터소스를 lookup 할 때에 사용하는 JNDI 이름을 설정. 이 설정은 ‘java:/’나 ‘java:jboss/’로 시작하는 JNDI이름을 사용하여야 한다.java:/MariaDB_XA_DS
user-name데이터베이스 사용자 이름을 설정.root
password데이터베이스 사용자에 대한 패스워드.password
jtaJTA사용여부. JTA를 사용한 트랜잭션에 데이터소스를 참가시키려고 할 때 true로 설정한다. JPA에서 데이터소스를 사용하는 경우, persistence.xml의 <jta-data-source>로 정의하면 true로 설정한다.true

표 5. XA 데이터소스 주요 설정 항목

Non-XA 데이터소스에서 data-source라는 명령을 사용해 데이터소스를 등록하고 설정했지만, XA데이터소스에서는 xa-data-source라는 명령을 사용한다.

XA데이터소스를 추가하려면 아래와 같이 xa-data-source 명령을 사용한다.

CLI를 사용한 MariaDB XA데이터소스 등록방법을 따라 해 보자.

따라하기

  1. 데이터소스 등록
  2. 연결 정보설정
  3. JDBC 드라이버 선택
  4. 데이터소스 Enable
  5. 데이터소스 연결 테스트
  1. 데이터소스 등록
[standalone@localhost:9999 /] /subsystem=datasources/xa-data-source="MariaDB_XA_DS":add(jndi-name="java:/MariaDB_XA_DA",driver-name=mariadb,user-name=root,password=password)

{"outcome" => "success"}
  1. 연결 정보설정

    connection 프로퍼티는 RDBMS와 접속하기 위한 설정 정의이다. 설정할 수 있는 프로퍼티 항목은 사용하려는 JDBC 드라이버에 따라서 다르다.

    XA데이터소스의 경우 xa-datasource-properties 자원을 사용해 이것를 설정한다.

    설정할 수 있는 프로퍼티에 대한 상세한 정보는 JDBC 드라이버를 제공하는 각 벤더의 웹 사이트에서 확인하여야 한다. 데이터베이스마다 설정하는 프로퍼티 이름이 달라서 주의하여야 한다.

[standalone@localhost:9999 /] /subsystem=datasources/xa-data-source=MariaDB_XA_DS/xa-datasource-properties=URL/:add(value="jdbc:mysql://localhost:3306/test")

{"outcome" => "success"}
  1. JDBC 드라이버 선택
[standalone@localhost:9999 /] **/subsystem=datasources/xa-data-source=MariaDB_XA_DS/:write-attribute(name=xa-datasource-class,value=org.mariadb.jdbc.MySQLXAResource)**

{"outcome" => "success"}
  1. 데이터소스 Enable

    XA데이터소스도 Non-XA 데이터소스와 같이 추가된 후 바로 사용할 수 없다. xa-data-source 명령을 사용해 XA데이터소스를 사용함으로 변경해야 한다.

[standalone@localhost:9999 /] **/subsystem=datasources/xa-data-source=MariaDB_XA_DS:enable**

{"outcome" => "success"}
  1. 데이터소스 연결 테스트
[standalone@localhost:9999 /] **/subsystem=datasources/xa-data-source=MariaDB_XA_DS:test-connection-in-pool**

{"outcome" => "success"}

추가로 사용 중인 XA데이터소스를 사용하지 않으려면 위의 xa-data-source 명령의 ‘enable’ 파라미터를 ‘disable’으로 변경하면 된다. 다만, Non-XA 데이터소스와 같이 ‘disable’ 로 설정 후에는 서버를 재기동 하여야 한다.