n00*_*13f 4 db2 datasource jboss5.x
我尝试使用类(使用)来配置XA DB2 DataSource xa-datasource(基于http://community.jboss.org/wiki/SetUpADB2Datasource).目标服务器是DB2 Connect V9.7com.ibm.db2.jcc.DB2XADataSourcelocal-tx-datasourcecom.ibm.db2.jcc.DB2Driver
实际的xa-datasource配置:
<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>
Run Code Online (Sandbox Code Playgroud)
以及JBoss节点lib目录中的以下jar:
db2umplugin.jar
db2policy.jar
db2dbgm.jar
db2jcc_license_cu.jar
db2jcc.jar
db2jcc4.jar
db2java.zip
db2jcc_license_cisuz.jar
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
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
Run Code Online (Sandbox Code Playgroud)
XA的驱动程序试图使用本机库,尽管我使用的是JDBC Type 4驱动程序.
为什么驱动程序试图使用本机库?有什么我需要添加到我的配置?
解决方案不是使用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>
Run Code Online (Sandbox Code Playgroud)
感谢http://dev.wavemaker.com/forums/?q=node/3127
正确的JAR是
db2jcc_license_cu.jar
db2jcc4.jar
db2jcc_license_cisuz.jar
Run Code Online (Sandbox Code Playgroud)
你应该得到如下错误:
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)
Run Code Online (Sandbox Code Playgroud)
查看解决方案的http://www-01.ibm.com/support/docview.wss?uid=swg21405243&myns=swgimgmt&mynp=OCSSEPGG&mync=R.
我希望这能为他人节省一些挫折和时间.
| 归档时间: |
|
| 查看次数: |
13533 次 |
| 最近记录: |