问题标签 [tomcat-jdbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
77 浏览

java - 空闲时间后 JDBC 连接丢失

一段时间后执行一些 MySQL 查询时出现通信链接故障异常。我正在使用包 groovy.sql 的 SQL 连接对象。如果我连续浏览该应用程序,该应用程序可以正常工作,但如果我在某个理想时间后浏览该应用程序,它将无法正常工作。

以下是详细信息:

  • 雄猫 8
  • Grails-3.3.11

代码片段:

数据源属性:

提前致谢。

0 投票
1 回答
150 浏览

sql-server - Spring Boot - 数据库服务器重启后Tomcat jdbc连接池不恢复

我有一个带有 Tomcat JDBC 连接池(8.5.34)的 Spring Boot(1.5.17)Web 应用程序,配置如下:

现在,如果我重新启动数据库服务器(SQL Server),我会得到com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed异常并且连接池不会恢复。

那么我做错了什么?

0 投票
0 回答
76 浏览

amazon-rds - 带有 AWS RDS 的 Spring Cloud AWS

我正在尝试将 Spring 应用程序与 AWS RDS 连接起来。

Spring Boot - 2.4.7, Spring Cloud AWS -2.3.1

要连接,我使用来自 AWS STS 的 Web 身份令牌。我spring-cloud-starter-aws-jdbc在类路径中,根据这个 PR,也添加aws-java-sdk-sts了。

我收到以下异常:

由于使用 spring-cloud-aws-jdbc,连接池是 tomcat 而不是 hikari,因此tomcat-pool我使用的 to paas trustCertificate 和其他 ssl 属性的等效属性是:

我尝试设置-Djavax.net.ssl.trustStore=file:///truststore/rds-truststore.jks但没有运气。

更新 1:

Aws docs,它提到

我将驱动程序更改为mariadb-java-client,但 spring-cloud-aws 在内部将驱动程序类设置为com.mysql.jdbc.Driver,然后我看到以下错误:

有没有办法强制 spring-cloud-aws 使用 Mariadb 驱动程序类?

0 投票
1 回答
111 浏览

tomcat - 为什么使用 tomcat 进行数据库连接池有两种选择(tomcat-dbcp 和 tomcat-jdbc)?

我想将数据库连接池添加到现有应用程序。我找到了两个基于 tomcattomcat-dbcptomcat-jdbc. 我只是遇到麻烦我应该去哪一个?

0 投票
1 回答
95 浏览

java - 动态调整连接池大小 - Apache Tomcat JDBC 连接池

有没有办法根据应用程序负载动态增加 maxpoolsize。

0 投票
0 回答
25 浏览

tomcat - 如何从废弃的连接中恢复?

我在生产中运行了很长时间的查询,因为哪些连接被关闭/放弃了。结果,我将 removeAbandonedTimeout 更新为 1800 秒。在此之后,95% 的问题都消失了。但是非常随机,每月一次或两次,我仍然会收到连接被放弃的错误。

这里的问题是在捕获此异常后等待 15 秒后重试无助于解决问题。随后的查询立即失败,并出现连接放弃异常。

我当前的池配置:

复制

使用的数据库:PostgreSQL

removeAbandonedTimeout改为30sec. 第一个 pg_sleep 失败,因为它超过了超时并进入了 catch 块。我的期望是,由于后台被放弃的定时器删除了连接,下一个 pg_sleep(10) 应该请求一个新的连接,并且应该成功执行testOnBorrow。所以我尝试让当前线程休眠 30 秒并执行下一个 pg_sleep。我的 catch 或 finally 块语句都没有执行。