【问题标题】:Configure jt400 xa-datasource in JBoss EAP 7 standalone.xml在 JBoss EAP 7 Standalone.xml 中配置 jt400 xa-datasource
【发布时间】:2017-12-18 08:32:28
【问题描述】:

我在 c:\jboss-EAP7\modules\com\ibm\main\ 中有 as400 驱动文件 (jt400.jar) 和对应的 module.xml

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.ibm">
    <resources>
        <resource-root path="jt400.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>

这是我的standalone.xml中的数据源配置:

<subsystem xmlns="urn:jboss:domain:datasources:4.0">
            <datasources>
                <xa-datasource jndi-name="java:/ds/DB2DataSource" pool-name="ds/DB2DataSource" enabled="true" use-java-context="true" use-ccm="true"> 
                    <xa-datasource-property name="ServerName">
                        xxx.xx.xxx.x
                    </xa-datasource-property>
                    <driver>as400</driver>
                    <xa-pool>
                        <is-same-rm-override>false</is-same-rm-override>
                        <no-tx-separate-pools>true</no-tx-separate-pools>
                        <interleaving>false</interleaving>
                        <pad-xid>false</pad-xid>
                        <wrap-xa-resource>false</wrap-xa-resource>
                    </xa-pool>                       
                    <security>
                        <user-name>user</user-name>
                        <password>pass</password>
                    </security>
                    <validation>
                        <validate-on-match>false</validate-on-match>
                        <background-validation>false</background-validation>
                    </validation>
                    <statement>
                        <share-prepared-statements>false</share-prepared-statements>
                    </statement>
                </xa-datasource>
                <drivers>
                   <driver name="as400" module="com.ibm">
                        <xa-datasource-class>com.ibm.as400.access.AS400JDBCXADataSource</xa-datasource-class>
                    </driver>
                </drivers>
            </datasources>
        </subsystem>

我在数据源绑定中遇到以下问题:

15:44:00,482 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("xa-data-source" => "ds/DB2DataSource")
]) - failure description: {"WFLYCTL0180: Services with missing/unavailable dependencies" => [
    "jboss.driver-demander.java:/ds/DB2DataSource is missing [jboss.jdbc-driver.as400]",
    "org.wildfly.data-source.ds/DB2DataSource is missing [jboss.jdbc-driver.as400]"
]}
15:44:00,485 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("xa-data-source" => "ds/DB2DataSource")
]) - failure description: {"WFLYCTL0180: Services with missing/unavailable dependencies" => [
    "jboss.driver-demander.java:/ds/DB2DataSource is missing [jboss.jdbc-driver.as400]",
    "org.wildfly.data-source.ds/DB2DataSource is missing [jboss.jdbc-driver.as400]",
    "org.wildfly.data-source.ds/DB2DataSource is missing [jboss.jdbc-driver.as400]"
]}

我做错了什么? 请注意,使用 SQLClient(例如 DBeaver)时,使用相同的参数连接成功。

谢谢

【问题讨论】:

  • 尝试在您的数据源定义中添加&lt;xa-datasource-class&gt;com.ibm.as400.access.AS400JDBCXADataSource&lt;/xa-datasource-class&gt;
  • 我尝试添加您建议的行,但它仍然不起作用(同样的错误)。您还有其他建议吗?

标签: jboss db2 datasource xa jt400


【解决方案1】:

在 module.xml 上试试这个

<module xmlns="urn:jboss:module:1.5" name="com.ibm.as400">

<resources>
    <resource-root path="jt400-10.2.jar"/>
    <!-- Insert resources here -->
</resources>
<dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
    <module name="javax.servlet.api" optional="true"/>
</dependencies>

这在standalone.xml上

<drivers>
    <driver name="jt400" module="com.ibm.as400">
            <driver-class>com.ibm.as400.access.AS400JDBCDriver</driver-class>
            <xa-datasource-class>com.ibm.as400.access.AS400JDBCXADataSource</xa-datasource-class>
   </driver>
</drivers>

【讨论】:

    【解决方案2】:

    您需要从module.xml 文件中删除XML 声明

    我已经复制了您的配置,我发现在删除 module.xml 文件的第一行后,错误不再出现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多