首页 文章

wildfly上的Db2驱动程序/数据源设置:无法加载驱动程序模块[com.ibm]

提问于
浏览
5

我想在我的wildfly服务器上配置db2的数据源(Wildfly.8.0.0-Final和8.1.0 . )并且遇到了一些问题 .

我的研究告诉我这是一个两步过程

  • 将驱动程序作为模块安装在%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作为指南,因为目前似乎还没有任何野生蝇可用 . this documentation显示了一些承诺,但似乎有点过时了 . 如果有人有任何经验设置,那么你的帮助将不胜感激 .

我想连接到 DB2 9.7 .

谢谢,麻烦您了 .

5 回答

  • 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

    您可以尝试启用 jboss.jdbc.spy = TRACE 并将 spy="true" 添加到数据源 .

    <datasource jndi-name="..." ... spy="true">
    

    <logger category="jboss.jdbc.spy">
      <level name="TRACE"/>
    </logger>
    

    这通常是为了调试JDBC,但也许它在加载驱动程序时也会显示更多内容 . 你也绝对需要没有 sresource-root .

  • 1

    我遇到过同样的问题 . 我通过从module.xml中删除这两行来解决它:

    <resource-root path="db2jcc_license_cu.jar"/>
    <resource-root path="db2jcc_license_cisuz.jar"/>
    

    我没有具体解释为什么这有效 .

  • 0

    这不是您的问题的解决方案,但是对于(像我这样)通过搜索相同的错误消息来解决此问题的未来访问者的参考:

    今天我遇到了同样的问题,对我来说这是 module.xmlstandalone-full.xml 中的一个错误 . 在这两种情况下,模块名称都是 com.ibm.main ,但应该是 com.ibm .

    所以简而言之:如果您遇到此消息并仔细检查配置文件没有帮助,请重写它们 .

  • 1

    模块主文件夹中的jar文件应该添加到module.xml中

    <resources>
        <resource-root path="db2jcc4.jar"/>
        <resource-root path="db2jcc_license_cu.jar"/>
    </resources>
    

    如果你正在使用 db2jcc.jar 而不是 db2jcc4.jar 并且正在定义一个标准(非XA)数据源,那么它也可能有助于加快驱动程序类的速度 .

    <driver-class>com.ibm.db2.jcc.DB2Driver</driver-class>
    

相关问题