我有一个 java 应用程序,每隔几分钟就会从脚本中调用一次。流程是:
- 脚本每隔几分钟调用一次 java 进程。
- java 程序运行几分钟(有时更短),进行一些处理,一旦完成,通过调用 System.exit(0) 退出。
- 在第 2 步中,为了进行处理,我们使用c3p0连接池连接到 MySQL DB。
每次我们从池中获得连接时,我们都会调用close()
. 我们还unreturnedConnectionTimeout
设置了20
这样,任何时候连接的帮助时间过长或未关闭,c3p0 都会处理它。
我的问题是,一旦步骤 2 中的所有处理完成,并且在我们通过调用退出之前System.exit(0)
,我们是否需要对连接池进行任何清理?
我知道close()
使用连接池调用只会将连接返回到池中,而实际上并没有“关闭”连接。那么在退出之前我需要对 conn 池进行任何清理吗?如果我不进行任何清理并退出 JVM,与 DB 的连接是否仍然存在,或者 c3p0 是否清理/强制关闭它们?谢谢!