【问题标题】:Wildfly 10 can't connect datasource: invalid connectionWildfly 10 无法连接数据源:连接无效
【发布时间】:2017-03-25 02:45:57
【问题描述】:

问题

我正在尝试测试我的连接,但它一直给我同样的错误,而乍一看我看不出我做错了什么。也许我忽略了什么...

错误

    nexpected HTTP response: 500

    Request
    {
       "address" => [
            ("subsystem" => "datasources"),
            ("data-source" => "ProjectenDS")
        ],
        "operation" => "test-connection-in-pool"
    }

    Response

    Internal Server Error
    {
        "outcome" => "failed",
        "failure-description" => "WFLYJCA0040: failed to invoke operation: WFLYJCA0047: Connection is not valid",
        "rolled-back" => true
    }


独立-full.xml

    <subsystem xmlns="urn:jboss:domain:datasources:4.0">
                <datasources>
                    <datasource jta="true" jndi-name="java:/ProjectenDS" pool-name="ProjectenDS" enabled="true" use-ccm="true">
                        <connection-url>jdbc:mysql://localhost:3306/projecten3db</connection-url>
                <driver-class>com.mysql.jdbc.Driver</driver-class>
                <driver>mysql-connector-java-5.1.40-bin.jar_com.mysql.jdbc.Driver_5_1</driver>
                <pool>
                    <min-pool-size>10</min-pool-size>
                    <initial-pool-size>11</initial-pool-size>
                    <max-pool-size>100</max-pool-size>
                </pool>
                <security>
                    <user-name>projecten</user-name>
                    <password>projecten</password>
                </security>
                <validation>
                    <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
                    <background-validation>true</background-validation>
                    <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
                </validation>
            </datasource>
        </datasources>
    </subsystem>

【问题讨论】:

  • 您查看过日志吗?它们可能包含有用的信息...
  • 是的,我看过它们。它给了我与上面显示的相同的错误。
  • 我对@9​​87654321@ 的回答是最简单的。无需担心模块或编辑 XML。
  • 您的数据库凭据是否正确?
  • 其实包含的东西不是来自服务器日志。此外,服务器默认使用standalone.xml。你能检查一下你的配置吗?

标签: java jakarta-ee jdbc datasource wildfly


【解决方案1】:

你的例外是通用的。

查看{WILDFLY_HOME}/standalone/log/server.log

您可以在 Web 控制台上进行测试时使用 tail -f server.log。

这会给你正确的错误。

【讨论】:

    【解决方案2】:

    我通过减小池大小并在数据源设置上将 prefill 属性设置为 false 解决了这个错误。

    <pool>
       <min-pool-size>5</min-pool-size>
       <max-pool-size>10</max-pool-size>
       <prefill>false</prefill>
       <use-strict-min>false</use-strict-min>
       <flush-strategy>IdleConnections</flush-strategy>
    </pool>
    

    【讨论】:

      【解决方案3】:

      当我们的用户未映射到请求的数据库时,我们在 MS SQL 上遇到了此类错误

      【讨论】:

        【解决方案4】:

        如果您的数据源不是 XA,请打开standalone.xml 并从您的数据源定义中删除datasource-class 属性。即使您在创建数据源时没有指定它,Wildfly 也会添加它。

        您可能需要重新启动服务器才能看到它正常工作。

        【讨论】:

          【解决方案5】:

          尝试检查是否有任何错误,例如“不建议在没有服务器身份验证的情况下建立 SSL 连接。 根据 MySQL 5.5.45+、5.6.26+ 和 5.7.6+ 的要求,如果未设置显式选项,则默认情况下必须建立 SSL 连接。 为了符合不使用 SSL 的现有应用程序,verifyServerCertificate 属性设置为“false”。 您需要通过设置 useSSL=false,"

          来显式禁用 SSL

          错误:jdbc:mysql://localhost:3306/demodb 正确 :jdbc:mysql://localhost:3306/demodb?useSSL=false

          ...这对我有用!。

          还要确保!

          1.mysql连接器添加 2.关闭“windows防火墙”和任何“防病毒”防火墙 3.驱动类、池大小、连接url和端口号

          参考: https://mkyong.com/mysql/mysql-establishing-ssl-connection-without-servers-identity-verification-is-not-recommended/

          【讨论】:

            猜你喜欢
            • 2018-06-30
            • 1970-01-01
            • 2017-01-13
            • 1970-01-01
            • 1970-01-01
            • 2021-10-04
            • 2016-08-26
            • 2014-12-04
            • 2020-12-03
            相关资源
            最近更新 更多