超时分类
超时根据作用域可做如下层级划分:
Transaction Timeout > Statement Timeout > JDBC Driver Socket Timeout
Transaction Timeout指一组SQL操作执行时应在设定的时间内完成(提交或回滚),否则将引发超时。它的值应大于 N(语句数) * Statement Timeout
Statement Timeout指完成单条SQL语句执行的最大允许时间。它的值应小于JDBC Driver Socket Timeout的值,因为后者会被先检查。
最底层的JDBC Driver Socket Timeout指的是通过socket进行连接时的超时或者进行读写操作时的阻塞超时,如果不设置将使用OS层的Socket Timeout值。
超时设置
大部分场景中,应用主要关心Transaction Timeout的设置,除非Transaction中总是只有单条Statement。
超时的具体设置依赖于使用的数据访问框架或者JDBC Driver。如果使用Spring作为基础框架,可以通过为transactionManager的defau