【问题标题】:What is the difference between Socket timeout and Query timeout in hibernate?休眠中的Socket超时和查询超时有什么区别?
【发布时间】:2016-04-26 06:44:01
【问题描述】:

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

休眠.xml

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

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

【问题讨论】:

    标签: java oracle hibernate sockets jdbc


    【解决方案1】:

    当你使用和关闭一个连接时,休眠保留它以备以后重用...

    当到达Connection timeout 时,连接关闭,如果池未满,则打开另一个连接。

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

    如果你遇到socket超时问题你应该设置一个validationQuerylike

    select 1 from dual 用于 Oracle 数据库
    select 1 用于 MySQL 数据库

    【讨论】:

    • 我们使用 Hibernate 标准来查询数据库。如何在 hibernate.xml 文件中设置查询(条件)超时?
    • 您在每个查询中设置它,如下所示:criteria.setTimeout(TIMEOUT_IN_SECONDS);
    猜你喜欢
    • 2011-10-18
    • 1970-01-01
    • 2019-06-26
    • 2012-03-31
    • 1970-01-01
    • 2013-07-25
    • 2011-10-17
    • 1970-01-01
    • 2022-11-07
    相关资源
    最近更新 更多