Arval SQLException: FATAL: извините, слишком много клиентов уже в postgres

Я использую базу данных в PostgreSQL 9.1, в которой записи постоянно поступают из другой программы. Я отправляю запрос от Ajax через 6 секунд, чтобы получить последнюю запись. Окно вывода tomcat показывает исключение ---

Arval SQLException: FATAL: sorry, too many clients already

, и программа работает правильно и после этого. Когда я проверяю свой postgres с помощью запроса ---

select count(*) from pg_stat_activity;

, он показывает, что соединение постоянно увеличивается, но я закрываю соединение после каждого запроса. Я использую netbeans и struts 1.3.

     long previousSNO = Long.parseLong(request.getParameter("previousSNO"));
    if(previousSNO == 0)
    {
        sb.append("SELECT sno,search_type,search_value,search_date FROM log_temp ORDER BY search_date DESC LIMIT 20");
        prest = cb.executeSQLQuery(sb.toString());
        rs = prest.executeQuery();
    }
    else
    {
        sb.append("SELECT sno,search_type,search_value,search_date FROM log_temp WHERE sno > ? ORDER BY search_date DESC");
        prest = cb.executeSQLQuery(sb.toString());    
        prest.setLong(1, previousSNO);
        rs = prest.executeQuery();
    }
    rs.last();
    int c = rs.getRow();
    rs.beforeFirst();

    if(rs!=null && c>0)
    {    
    //code for making json resultsb from resultset here    
    rs.close();
    }
    cb.closeConnection();
    response.setContentType("text/plain");
    response.getWriter().print(resultsb.toString());

// и метод close в компоненте подключения

    public void closeConnection() {
    try {
        // st.close();
        conn.close();
        System.out.println("con is closed");
        conn = null;

    } catch (SQLException e) {
        e.getMessage();
        System.out.println(e.getMessage());
        System.out.println("con is not closed");
    }
}

Каждый раз, когда он выводит на консоль " con isclosed";

8
задан vikas malik 22 March 2012 в 05:08
поделиться