java - hibernate中的Socket超时和Query超时有什么区别?

标签 java oracle hibernate sockets jdbc

我有一个任务来实现数据库调用超时。我们使用hibernate框架。我在 hibernate.xml 文件中配置了以下超时。

Hibernate.xml

  • 连接超时 -> hibernate.c3p0.timeout : 44000
  • 套接字读取 超时 -> hibernate.connection.oracle.jdbc.ReadTimeout: 60000

我想知道套接字读取超时和查询超时之间的区别。任何配置查询超时的帮助都会更好。 预先感谢!

最佳答案

当您使用并关闭连接时, hibernate 状态会保留它以供稍后重用...

当达到连接超时时,连接将被关闭,如果池未满,则会打开另一个连接。

查询超时是查询在被强制关闭(长查询)之前允许运行的最长时间

如果您遇到套接字超时问题,您应该设置一个validationQuery,例如

对于 Oracle 数据库,从双中选择 1
选择 1 对于 MySQL 数据库

关于java - hibernate中的Socket超时和Query超时有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34899732/

相关文章:

sql - HQL 加入 - 预期加入的路径! hibernate

java - 如何在Android的默认图像查看器中打开图像

java - 带有Slf4j的JUnit和带有Logback的日志记录:仅在第一种测试方法中进行日志记录

java - 可选 vs if/else-if 性能 java 8

oracle - 如何从SAP ABAP系统中提取数据?

hibernate - 当我提交事务时,完整性约束被违反

java - Hibernate 删除不会触发

java - a4j 中未触发操作 :commandlink

oracle - 比较大型列集的 PL/SQL 有效方法?

sql - 如何从没有键的表中检索非重复记录?