我想在我的wildfly服务器上配置db2的数据源(Wildfly.8.0.0-Final和8.1.0。)并且遇到了一些问题。
我的研究告诉我这是一个两步过程
到目前为止,我已使用以下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文件中的<?...?>
之前没有空格。模块名称是&#34; com.ibm&#34;数据源如下:
<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作为指南,因为目前似乎还没有任何野生动物可用。 this documentation显示了一些承诺,但似乎有些过时了。如果有人有任何经验设置,那么你的帮助将非常感激。
我想连接到 DB2 9.7 。
请,谢谢你。
答案 0 :(得分:1)
尝试更换:
<resources-root path="db2jcc4.jar"/>
<resources-root path="db2jcc_license_cu.jar"/>
<resources-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"/>
从资源路线中删除s!
答案 1 :(得分:1)
您可以尝试启用jboss.jdbc.spy
= TRACE
并将spy="true"
添加到数据源。
<datasource jndi-name="..." ... spy="true">
和
<logger category="jboss.jdbc.spy">
<level name="TRACE"/>
</logger>
这通常用于调试JDBC,但也许它在加载驱动程序时也会显示更多内容。
你也绝对需要resource-root
而不是s
。
答案 2 :(得分:1)
我有同样的问题。我通过从module.xml中删除这两行来解决它:
<resource-root path="db2jcc_license_cu.jar"/>
<resource-root path="db2jcc_license_cisuz.jar"/>
我没有具体解释为什么这有效。
答案 3 :(得分:1)
这不是您的问题的解决方案,但是对于(像我这样)通过搜索相同的错误消息来解决此问题的未来访问者的参考:
今天我遇到了同样的问题,对我来说这是module.xml
和standalone-full.xml
中的错误。在这两种情况下,模块名称都是com.ibm.main
,但它应该是com.ibm
。
简而言之:如果您遇到此消息并仔细检查配置文件无效,请重写它们。
答案 4 :(得分:0)
模块主文件夹中的jar文件应该作为
添加到module.xml中<resources>
<resource-root path="db2jcc4.jar"/>
<resource-root path="db2jcc_license_cu.jar"/>
</resources>
如果你正在使用 db2jcc.jar 而不是 db2jcc4.jar ,并且正在定义一个标准(非XA)数据源,那么它可能对spedicfy有帮助司机班也是。
<driver-class>com.ibm.db2.jcc.DB2Driver</driver-class>