如题吧,原因类似于socket挂起,
服务端闪断,未来得及通知客户端断开连接,客户端就傻乎乎的一直等~~
当然,socket可以设置timeout……
------------------- jdbc driver同样也是socket与数据库通信的,
一样,socket可能挂起,
但是,通过DriverManager.getConnection是没有超时设置的,
解决办法大概是这样吧,没法尝试啊:
(1)在jdbc连接串上加connectTimeout=3000,单位是毫秒?我说的是mysql啊,看文档吧。
(2)通过DriverManager话,可以传Properties
Properties properties = new Properties(); properties.put("connectTimeout", "2000");
(3)spring配置数据源的话,可以这样吧: <property name="socketTimeout" value="2000"/>
具体看文档,这里只是大概的示意。 ------------------- 感受就是:防不胜防啊……
开始是http请求没加超时,结果线程憋死……
这回又变成mysql取连接时憋死了……
赶紧上连接池,伤不起啊~~
|