【发布时间】:2014-07-23 06:31:54
【问题描述】:
我想在 Wildfly 服务器(Wildfly.8.0.0-Final 和 8.1.0 也一样)上为 db2 配置数据源,但这样做时遇到了一些问题。
我的研究告诉我这是一个两步过程
- 将驱动程序作为模块安装在 %JBOSS_HOME%/modules/com/ibm/main 目录中。
- 配置数据源子系统以将此模块作为驱动程序包含在您的连接设置中。
到目前为止,我已经使用以下 module.xml 在以下结构下安装了模块:
modules/
`-- com/
`-- ibm/
`-- main/
|-- db2jcc4.jar
|-- db2jcc_license_cu.jar
|-- db2jcc_license_cisuz.jar
`-- module.xml
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.ibm">
<resources>
<resource-root path="db2jcc4.jar"/>
<resource-root path="db2jcc_license_cu.jar"/>
<resource-root path="db2jcc_license_cisuz.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="sun.jdk"/>
</dependencies>
</module>
xml 文件中<?...?> 之前没有空格。模块名称为“com.ibm”,数据源如下:
<subsystem xmlns="urn:jboss:domain:datasources:2.0">
<datasources>
<datasource jndi-name="java:/jdbc/MyDS" pool-name="MyDS" enabled="true" use-java-context="true">
<xa-datasource-property name="ServerName">myIP</xa-datasource-property>
<xa-datasource-property name="PortNumber">1234</xa-datasource-property>
<xa-datasource-property name="DatabaseName">MyDB</xa-datasource-property>
<xa-datasource-property name="DriverType">4</xa-datasource-property>
<driver>ibmdb2</driver>
<pool>
<min-pool-size>0</min-pool-size>
<max-pool-size>50</max-pool-size>
</pool>
<security>
<user-name>bob</user-name>
<password>isyouruncle</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker"/>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2StaleConnectionChecker"/>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter"/>
</validation>
</datasource>
<drivers>
<driver name="ibmdb2" module="com.ibm">
<xa-datasource-class>com.ibm.db2.jcc.DB2XADatasource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
加载服务器会产生这个错误:
12:49:01,228 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 9) JBAS014613: Operation ("add") failed - address: ([
("subsystem" => "datasources"),
("jdbc-driver" => "ibmdb2")
]) - failure description: "JBAS010441: Failed to load module for driver [com.ibm]"
这反过来又导致我的数据源声明由于缺少驱动程序而无法加载。
我使用older documentation 作为指南,因为似乎还没有任何可用于wildfly 的。 this documentation 显示了一些承诺,但似乎有点过时了。如果有人有任何设置这方面的经验,那么您的帮助将不胜感激。
我想连接到 DB2 9.7。
请,谢谢。
【问题讨论】:
-
日志是怎么说的?
-
日志没有帮助,我尝试将级别设置为 Debug 并且所有关于驱动程序的信息与我在上面提供的信息相同 (
Failed to load module for driver) -
这是 WildFly 8.0 还是 8.1? (Q 说 8.0,但下面的评论说是 8.1)
-
原来是8.0,现在升级到8.1了。
-
你解决了吗?如果有,怎么做?