...
Altibase와 JBoss를 연동하여 사용하기 위해 데이터소스를 설정하는 방법에 대하여 기술한다.
로컬 트랜잭션
...
Altibase와 JBoss를 연동하기 위한 최소한의 데이터소스 설정이므로 추가적인 항목이 필요한 경우 위에서 언급한 항목을 적절하게 사용하도록 한다.
파일명은 "xx-ds.xml" 의 형태로 저장하며, JBoss를 재구동하지 않아도 자동으로 데이터소스 파일을 감지하여 바인딩한다.
...
Code Block | ||
---|---|---|
| ||
<datasources> <local-tx-datasource> <jndi-name>AltiTest</jndi-name> <connection-url>jdbc:Altibase://127.0.0.1:20300/mydb</connection-url> <driver-class>Altibase.jdbc.driver.AltibaseDriver</driver-class> <user-name>sys</user-name> <password>manager</password> <min-pool-size>10</min-pool-size> <max-pool-size>100</max-pool-size> <blocking-timeout-millis>5000</blocking-timeout-millis> <idle-timeout-minutes>15</idle-timeout-minutes> <metadata> <type-mapping>Altibase</type-mapping> </metadata> </local-tx-datasource> </datasources> |
분산 트랜잭션
...
다음은 분산 트랜잭션을 사용하는 경우의 데이터소스 파일의 설정 예이다.
JBOSS_HOME/docs/jca 디렉토리에는 DBMS 별로 로컬/분산 트랜잭션에 대한 데이터소스 설정 예제파일이 있으므로 참고하여 설정하도록 한다.
파일은 “xx-xa-ds.xml” 의 형태로 저장한다.
Code Block | ||
---|---|---|
| ||
<datasource>
<xa-datasource>
<jndi-name>AltibaseDS</jndi-name>
<track-connection-by-tx />
<isSameRM-override-value>false</isSameRM-override-value>
<xa-datasource-class>Altibase.jdbc.driver.ABXADataSource</xa-datasource-class>
<xa-datasource-property name="ServerName">127.0.0.1</xa-datasource-property>
<xa-datasource-property name="PortNumber">20300</xa-datasource-property>
<xa-datasource-property name="User">sys</xa-datasource-property>
<xa-datasource-property name="Password">manager</xa-datasource-property>
<metadata>
<type-mapping>Altibase</type-mapping>
</metadata>
<!--pooling parameters-->
<min-pool-size>5</min-pool-size>
<max-pool-size>250</max-pool-size>
<blocking-timeout-millis>5000</blocking-timeout-millis>
<idle-timeout-minutes>5</idle-timeout-minutes>
<check-valid-connection-sql>select * from system_.sys_database_</check-valid-connection-sql>
</xa-datasource>
</datasources>
|
Failover
...
Failover는 DBMS 의 장애로 인해 서비스가 중단되는 것을 방지하기 위해 사용중인 DBMS의 장애 시에 이를 감지하고 다른 DBMS로 절체하여 계속적인 서비스를 제공하기 위한 기능이다.
Failover 기능은 JBOSS 에서 제공하는 구문을 이용하는 방법과 ALTIBASE 에서 제공하는 구문을 이용하는 방법이 있다.
ALTIBASE 에서는 5.3.3 이상 버전에서만 Failover 기능을 제공하기 때문에 하위 버전을 사용 시 JBOSS의 구문을 이용해야 한다.
다음은 ALTIBASE에서 제공하는 구문을 통한 Failover 이다. 데이터소스 파일을 수정한 다음 첫번째 url의 DBMS를 종료시키고 테스트해보면 두번째 url의 DBMS로 Failover 가 되는 것을 확인할 수 있다.
ALTIBASE에서 제공하는 구문을 사용하면 CTF(Connection Time Failover)와 STF(Session Time Failover)가 가능하다.
Code Block | ||
---|---|---|
| ||
<datasources>
<local-tx-datasource>
<jndi-name>AltiTest</jndi-name>
<connection-url>jdbc:Altibase://127.0.0.1:20911/mydb?
AlternateServers=(192.168.1.76:20911)& ConnectionRetryCount=3&
ConnectionRetryDelay=3&LoadBalance=off&
SessionFailOver=on </connection-url>
<driver-class>Altibase.jdbc.driver.AltibaseDriver</driver-class>
<user-name>sys</user-name>
<password>manager</password>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
<blocking-timeout-millis>5000</blocking-timeout-millis>
<idle-timeout-minutes>15</idle-timeout-minutes>
<metadata>
<type-mapping>Altibase</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
|
다음은 JBOSS 에서 제공하는 Failover 구문이다.
Failover 할 DBMS 의 connection-url을 추가해주고, 두 url을 구분하는 구분자를 <url-delimiter>로 지정해준다.
JBOSS에서 제공하는 구문을 사용하면 CTF(Connection Time Failover)만 가능하다.
테스트 하는 방법은 위의 내용과 동일하다.
Code Block | ||
---|---|---|
| ||
<datasources>
<local-tx-datasource>
<jndi-name>AltiTest</jndi-name>
<connection-url> jdbc:Altibase://127.0.0.1:20911/mydb,
jdbc:Altibase://192.168.1.76:20911/mydb</connection-url>
<url-delimiter>,</url-delimiter>
<driver-class>Altibase.jdbc.driver.AltibaseDriver</driver-class>
<user-name>sys</user-name>
<password>manager</password>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
<blocking-timeout-millis>5000</blocking-timeout-millis>
<idle-timeout-minutes>15</idle-timeout-minutes>
<metadata>
<type-mapping>Altibase</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
|
샘플 예제
...
위에서 Altibase와 JBoss의 연동 방법에 대해서 알아봤다면, 본 장에서는 위의 설정을 이용하여 Altibase에 접속 및 쿼리를 수행함으로써 Altibase와 JBoss의 연동을 확인해본다.
...