Я использую Postgres 10.3 в моем приложении Spring.Пока я запускаю это приложение, которое состоит из Quartz Schedular, оно увеличит число незанятых соединений в БД.
В моем коде вызывается какая-то функция, подобная этой.
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);
Пожалуйста, помогите мне с тем, что создает свободные соединения и как мы можем освободить их или что я делаю неправильно.Есть ли способ проверить, как мы можем удалить эти незанятые соединения, если соединение не требуется.