Создание источника данных XA для DB2 на JBoss - PullRequest
4 голосов
/ 21 октября 2010

Я пытаюсь настроить источник данных XA DB2, xa-datasource (на основе http://community.jboss.org/wiki/SetUpADB2Datasource) с использованием класса com.ibm.db2.jcc.DB2XADataSource (local-tx-datasource работает с использованием com.ibm.db2.jcc.DB2Driver). Целевым сервером является DB2 Connect V9.7

Фактическая конфигурация источника данных xa:

<xa-datasource>
    <jndi-name>jdbc/DB2ServerDS</jndi-name>
    <use-java-context>false</use-java-context>
    <track-connection-by-tx>true</track-connection-by-tx> 
    <xa-datasource-class>com.ibm.db2.jcc.DB2XADataSource</xa-datasource-class>
    <xa-datasource-property name="URL">jdbc:db2://db2server:50000/FINDB</xa-datasource-property>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.DB2ExceptionSorter</exception-sorter-class-name>
    <xa-datasource-property name="DriverType">4</xa-datasource-property>
    <check-valid-connection-sql>SELECT * FROM ACC.SETTINGS 1=2</check-valid-connection-sql>
    <user-name>findbuser</user-name>
    <password>findbuser</password>
    <min-pool-size>2</min-pool-size>
    <max-pool-size>10</max-pool-size>
    <blocking-timeout-millis>10000</blocking-timeout-millis>
    <type-mapping>DB2</type-mapping>
    <no-tx-separate-pools/>
</xa-datasource>

и следующий jar в каталоге lib узла JBoss:

db2umplugin.jar         
db2policy.jar           
db2dbgm.jar             
db2jcc_license_cu.jar   
db2jcc.jar              
db2jcc4.jar             
db2java.zip             
db2jcc_license_cisuz.jar

но я получаю ошибку:

Caused by: com.ibm.db2.jcc.am.SqlException: [jcc][10389][12245][3.57.82] Failure in loading native library db2jcct2, java.lang.UnsatisfiedLinkError: no db2jcct2 in java.library.path:  ERRORCODE=-4472, SQLSTATE=null

Драйвер для XA пытается использовать собственные библиотеки, несмотря на то, что я использую драйвер JDBC Type 4.

Почему драйвер пытается использовать собственные библиотеки? Что мне нужно добавить в мою конфигурацию?

1 Ответ

5 голосов
/ 22 октября 2010

Решение состоит в том, чтобы не использовать URL-адрес для указания параметров подключения.

<xa-datasource>
    <jndi-name>jdbc/DB2ServerDS</jndi-name>
    <use-java-context>false</use-java-context>
    <track-connection-by-tx>true</track-connection-by-tx> 
    <xa-datasource-class>com.ibm.db2.jcc.DB2XADataSource</xa-datasource-class>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.DB2ExceptionSorter</exception-sorter-class-name>
    <xa-datasource-property name="ServerName">db2server</xa-datasource-property>
    <xa-datasource-property name="PortNumber">50000</xa-datasource-property>
    <xa-datasource-property name="DatabaseName">FINDB</xa-datasource-property>
    <xa-datasource-property name="DriverType">4</xa-datasource-property>
    <xa-datasource-property name="User">findbuser</xa-datasource-property>
    <xa-datasource-property name="Password">findbuser</xa-datasource-property>
    <xa-datasource-property name="DriverType">4</xa-datasource-property>
    <check-valid-connection-sql>SELECT * FROM ACC.SETTINGS 1=2</check-valid-connection-sql>
    <user-name>findbuser</user-name>
    <password>findbuser</password>
    <min-pool-size>2</min-pool-size>
    <max-pool-size>10</max-pool-size>
    <blocking-timeout-millis>10000</blocking-timeout-millis>
    <type-mapping>DB2</type-mapping>
    <no-tx-separate-pools/>
</xa-datasource>

Кредит http://dev.wavemaker.com/forums/?q=node/3127

Правильные JAR-файлы:

db2jcc_license_cu.jar             
db2jcc4.jar                         
db2jcc_license_cisuz.jar

Если вы получите сообщение об ошибке:

org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (com.ibm.db2.jcc.am.SqlException: DB2 SQL Error: SQLCODE=-5042, SQLSTATE=     , SQLERRMC= ;1208;FINDBUSER;FINDB;QDB2; ; ; ;1208; , DRIVER=4.7.85)

, проверьте http://www -01.ibm.com / support / docview.wss? Uid = swg21405243 & myns = swgimgmt & mynp = OCSSEPGG & mync = R длярешение.

Я надеюсь, что это спасет других от разочарования и времени.

...