我想在我的wildfly服务器(Wildfly.8.0.0-Final和8.1.0)上为db2配置数据源,但在这样做时遇到了一些问题。
我的研究告诉我这是一个两步的过程
1.请将驱动程序作为模块安装在%JBOSS_HOME%/modules/com/ibm/main目录中。
1.请配置数据源子系统以将此模块作为驱动程序包含在连接设置中。
到目前为止,我已经在以下结构下安装了模块,其中包含以下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。
谢谢你。
6条答案
按热度按时间m2xkgtsf1#
尝试替换:
<resource-root path="db2jcc4.jar"/> <resource-root path="db2jcc_license_cu.jar"/> <resource-root path="db2jcc_license_cisuz.jar"/>
由
<resource-root path="db2jcc4.jar"/> <resource-root path="db2jcc_license_cu.jar"/> <resource-root path="db2jcc_license_cisuz.jar"/>
个从资源路由中删除!
bxgwgixi2#
您可以尝试启用
jboss.jdbc.spy
=TRACE
,并将spy="true"
添加到数据源中。和
这通常是为了调试JDBC,但也许它也显示了更多关于驱动程序加载的信息。此外,您肯定需要
resource-root
而不需要s
。gmxoilav3#
我遇到了同样的问题,我通过从module.xml中删除以下两行来解决这个问题:
我没有一个具体的解释,为什么这工作。
oipij1gg4#
这不是你的问题的解决方案,但为未来的访问者(像我一样)来到这个问题的搜索相同的错误消息的参考:
今天我遇到了同样的问题,对我来说,这是一个错误,在
module.xml
和standalone-full.xml
。在这两种情况下,模块名称被指定为com.ibm.main
,但它应该是com.ibm
。所以简而言之:如果您遇到此消息,并且再次检查配置文件没有帮助,请重写它们。
5sxhfpxr5#
模块主文件夹中的jar文件应添加到module.xml中,作为
如果您使用的是db2jcc.jar而不是db2jcc4.jar,并且您正在定义一个标准(非XA)数据源,那么指定驱动程序类可能也会有所帮助。
olmpazwi6#
一切都是正确的,只要使s大写为(DB2XADatasource)如下即可: