我正在尝试测试我的连接并且它一直给我同样的错误,而乍看之下我无法看到我做错了什么。也许我忽视了一些事情......
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
}
<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>
答案 0 :(得分:4)
您拥有的例外是通用的。
检查{WILDFLY_HOME}/standalone/log/server.log
您可以在Web控制台上进行测试时使用tail -f server.log
。
这将为您提供正确的错误。
答案 1 :(得分:1)
我通过减少池大小并在数据源设置上将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>
答案 2 :(得分:0)
当我们的用户未映射到请求的数据库时,在MS SQL上出现了此类错误
答案 3 :(得分:0)
如果您的数据源不是XA,请打开standalone.xml并从数据源定义中删除datasource-class
属性。即使您在创建数据源时未指定它,Wildfly也会添加它。
您可能必须重新启动服务器才能看到它的正常运行。
答案 4 :(得分:0)
尝试检查是否有任何错误,例如“不建议在没有服务器身份验证的情况下建立 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