我有一个客户端,一个服务器和一个数据库。客户端通过EJB远程接口与服务器通信。作为服务器-我使用Wildfly 8.2.0。作为数据库-
我使用MySQL。服务器通过JPA /休眠与MySQL通信。当我关闭MySQL服务器时,Wildfly当然会引发异常。但是,当我再次打开MySQL时-
Wildfly仍然会抛出相同的错误。我必须关闭Wildfly,然后重新将Wildfly重新连接到数据库。
如何在Wildfly中设置自动重新连接?
我试图在连接URL中设置自动重新连接:jdbc:mysql://localhost/db?autoReconnect=true&useUnicode=yes&characterEncoding=UTF8
并尝试将其添加到我使用的standalone-
full.xml文件中,这一行:<check-valid-connection-sql>select 1</check-valid-connection- sql>
,但是两种解决方案均不起作用。
standalone-full.xml:
<!-- ... -->
<datasource jta="true" jndi-name="java:jboss/datasources/MySQLDS" pool-name="MySQLDS" enabled="true" use-ccm="true">
<connection-url>jdbc:mysql://localhost/db?autoReconnect=true&amp;useUnicode=yes&amp;characterEncoding=UTF8</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver>mysqlDriver</driver>
<security>
<user-name>user</user-name>
<password>***</password>
</security>
<validation>
<check-valid-connection-sql>select 1</check-valid-connection-sql>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
</validation>
<timeout>
<set-tx-query-timeout>false</set-tx-query-timeout>
<blocking-timeout-millis>0</blocking-timeout-millis>
<idle-timeout-minutes>0</idle-timeout-minutes>
<query-timeout>0</query-timeout>
<use-try-lock>0</use-try-lock>
<allocation-retry>0</allocation-retry>
<allocation-retry-wait-millis>0</allocation-retry-wait-millis>
</timeout>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<drivers>
<driver name="mysqlDriver" module="com.mysql">
<xa-datasource-class>com.mysql.jdbc.Driver</xa-datasource-class>
</driver>
</drivers>
<!-- ... -->
我通过将standalone-full.xml文件中的validate-on-match值更改为true解决了此问题:
<validate-on-match>true</validate-on-match>
问题:当我的spring应用程序运行时,同时数据库服务器停止/重新启动,然后db连接丢失并且从未恢复。 com.mysql.jdbc.exceptions.jdbc4.mysqlnontransientConnectionException:连接关闭后不允许任何操作。 服务mysql启动 问题:如何告诉spring在连接丢失后自动重新连接? 这是我的配置:
我有一个Spring Boot应用程序,我使用ElasticsearchTemplate连接到我的ElasticSearch。然而,当它工作时,我关闭了Elasticsearch,每次我使用ElasticTemplate方法时,我都会得到一个组织。elasticsearch。客户运输NoNodeAvailableException。这很好,因为ElasticSearch不起作用。 然而,当Elas
在从sping-引导1.5. x切换到sping-引导-2. x后,当db连接关闭时,我的Spring应用程序会不断尝试重新连接到数据库。我甚至无法调用运行状况检查endpoint。 这只发生在spring-boot-2.x中 它可能会尝试重新连接,但就我而言,它不应该阻止整个应用程序。 application.yml pom.xml 当数据库关闭时,我得到以下错误的泛滥。 错误
我有一个Java后端的Web应用程序,它使用Tomcat jdbc-pool进行数据库连接。这工作罚款。 然而,在将其导出到其他位置之前,我正在尝试万无一失,最近发生了一个场景,有人重新启动了SQL Server数据库服务,但没有重新启动Tomcat服务。这导致了SQLException:,直到我重新启动Tomcat,迫使jdbc池数据源重新连接。 我在Tomcat jdbc池文档中寻找某种配置,
下面是我到目前为止的代码: 有人能解释一下在和情况下我该做什么吗?以及如何知道网络已断开并重新连接?
我有一个Spring Boot v 1.5.1。使用PostgreSQL 9.6作为数据源的RELEASE应用程序。即使在空闲时,我的应用程序也会保持与Postgres的连接,但如果连接丢失,则应用程序不会重新连接,而是抛出: 虽然我没有使用JPA,而且我相信我使用的是spring boot starter附带的Tomcat池,但我已经阅读并尝试了这里和这里讨论的建议,但运气不佳。在我的属性文件中