作为标准过程,MySql连接在指定的不活动小时数(默认值:8)后丢失。在确定此类连接丢失后重新连接到mysql服务器时,我只需执行connection = DriverManager.getConnection(url, user, password);
我没有使用连接池,因为在之前的连接丢失相关帖子中没有提到这个技巧,这让我想知道我的代码后来会产生任何副作用吗? (我这样说是因为在上面的实例之后测试了这段代码,我发现在session.invalidate()调用之后没有调用sessionlistner。)
答案 0 :(得分:1)
根据您处理连接对象的方式,它可以为丢失的连接对象创建小的客户端内存泄漏。但可能这种影响会很小,以至于你永远不会发现任何问题。
为了最大限度地降低这种风险,您可以在空闲时间每隔几分钟从连接中做一些简单的事情SELECT 1
,这样您的连接仍然被认为是活动的(除非您的客户完全死掉)。
答案 1 :(得分:1)
如果连接断开,您将丢失临时表和会话设置。听起来连接池在您的情况下会很有用。