【发布时间】:2024-01-22 17:43:01
【问题描述】:
我需要释放与 postgres 的连接
我的 java 应用程序与 postgres 交互,我的问题是当我需要调用此函数超过 200 次 postgres 崩溃时,这是正常的事情......因为 postgres 的连接有限,并且此脚本每次执行时都会打开连接。
@Override
public Object[] getExtrasInfosSource(int idSource) {
StringBuffer sql = new StringBuffer();
final SessionFactoryImplementor sfi = (SessionFactoryImplementor) getSessionFactory();
final Settings settings = sfi.getSettings();
// Appel du procedure stocké "getExtrasInfosForSource(idSource integer)" au niveau de bd
sql.append("SELECT * from "+settings.getDefaultSchemaName()+".getExtras_Infos_For_Source(:idSource)");
SQLQuery query = this.getSession().createSQLQuery(sql.toString());
query.setInteger("idSource", idSource);
return (Object[]) query.setMaxResults(1).uniqueResult();...
你能告诉我如何关闭这个脚本在 postgres 中打开的连接,以避免每次 postgres 连接过载时应用程序崩溃。
【问题讨论】:
-
在哪里以及如何打开数据库连接?
-
通过休眠,如果我知道它如何或在哪里打开它,我会在下面的脚本之后立即关闭它,我得到的只是 getSession 并执行打开我想要关闭的连接的查询
标签: java hibernate postgresql connection-pooling release