网络/数据库常见的超时设置(socketTimeOut、connectionTimeout...)

  • transaction timeout:事务执行超时,一个事务中可能包含多个sql(statement)
  • statement timeout:单个sql(statement)执行超时
  • socket timeout:socket读取超时
  • connect timeout:建立数据库连接超时
  • get connection timeout:从连接池中获取链接超时

详见文章:深入理解数据库编程中的超时设置

不过重点说一句的就是:statement timeout用来限制statement的执行时长,timeout的值通过调用JDBC的java.sql.Statement.setQueryTimeout(int timeout) API进行设置。不过现在开发者已经很少直接在代码中设置,而多是通过框架来进行设置。socket timeout是TCP层面的超时,是操作系统层面进行的控制,statement timeout是驱动层面实现的超时,是应用层面进行的控制(是单个sql的执行时间)。socket timeout必须要比statement timeout大。

推荐阅读更多精彩内容