我在Spring Appication中使用Postgres 10.3。 当我在生产中运行包含Quartz Schedular的应用程序时,它将增加DB中的空闲连接数。
这样的函数在我的代码中被调用。
public ArrayList<object> someFunction(List<String> arrString) {
ArrayList<object> arrObject= new ArrayList<object>();
em = getEm();
String setFlag = "true";
LOG.debug("----------------------------In Dao-------------------");
try {
String queryStm = "";
queryStm = "select * from table where string IN :arrString ";
Query query = em.createNativeQuery(queryStm, object.class);
query.setParameter("string", string);
arrObject= (ArrayList<object>) query.getResultList();
LOG.debug("----------------------------In Dao Commit -------------------");
} catch (Exception exception) {
exception.printStackTrace();
LOG.error(exception.getMessage());
} finally {
em.close();
}
return arrObject;
}
我正在使用Wildfly 10作为服务器。每当现在部署代码时,Postgres就会开始创建空闲连接,并且有时应用程序会停止连接到数据库。然后我需要恢复为旧代码。 我正在使用JndiLookup创建查找以连接到数据库实例。
ArrayList<object> arrobjects = JndiLookup.getDao()
.someFunction(arrString);
请帮助我创建空闲连接的内容以及如何释放它们或我做错了什么。 如果不需要连接,有什么方法可以检查我们如何删除这些空闲连接。