使用与mysql数据库的ODBC连接,连接在8小时(默认值)后超时。
为了使我的应用程序具有弹性,它必须重新创建此连接以发出预准备语句查询。
是否可以为预准备语句发布新的数据库连接?
这样做有意义吗?
看起来准备好的语句是在连接的基础上创建的。
目前的解决方案是:
答案 0 :(得分:0)
不,准备好的陈述与连接有关,而不是相反。您当前处理超时连接的方式很好。
答案 1 :(得分:0)
我认为,将连接打开到SQL数据库8小时是一种不好的做法。你有一些长时间运行,需要这么多时间吗?然后考虑在数据库中有一个存储过程,它应该将结果转储到某个临时表中,稍后可以检查。
但通常,应用程序应该尽快释放连接(以及啊,所有准备好的语句)。要加速连接打开,可以使用连接池(它也应该存在于ODBC中)。在将连接返回给应用程序之前,连接池将检查该连接是否处于“活动状态”,例如,请参阅Java DBCP的 validationQuery 参数。