今天梳理代码的时候,在一个页面导出的时候发现有报错,报错 关闭的连接,然后,上面是一堆hibernate的错误。导出数据量5279条数据。试着到了下1600多条导出,导出成功。
把代码拉过来瞅了下,发现导出的时候是第一次查出总条数,然后for循环,每1000条数据向数据库查询一次。一次查询1000条。这里需要查询5次。然后,基本上查两次就挂了。 首先怀疑就是配置的数据库连接时间不够。我们程序是使用的类似ApplicationConfig的类来取代xml配置的。所以先找到了里面的代码
dataSource.setUnreturnedConnectionTimeout(10);
很明显,10秒太少了,我测试了下,大概1000条数据都要3到4秒左右。把里面的值调整到50测试了一下。导出5297条数据ok。