Неактивные соединения в postgres - PullRequest
0 голосов
/ 25 октября 2018

Я использую 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);

Пожалуйста, помогите мне с тем, что создает свободные соединения и как мы можем освободить их или что я делаю неправильно.Есть ли способ проверить, как мы можем удалить эти незанятые соединения, если соединение не требуется.

...