Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Разное время работы функции postgresql


Автор: izver84 22.10.2013, 10:11
Добрый день. 

Программа  на яве запускает функцию на сервере постгресса 9.2.

подключение к серверу
Код

public static Connection getInsertConnection( String DBNAME, String USERNAME, String PASSWORD) throws Exception {
        Driver d1;
        d1 = (Driver)Class.forName("org.postgresql.Driver").newInstance();        
           Connection conn = DriverManager.getConnection("jdbc:postgresql://ip:port/"+DBNAME, USERNAME, PASSWORD);
            return conn;  
  }


запуск функции

Код

public void tmp_am(int Var_)
    {    
        
        Connection conn = null;
        try {
           conn = getInsertConnection("base", "postgres", "pass" );
            CallableStatement proc=conn.prepareCall("{call function(?::text,?::text,?::text)}");
            conn.setAutoCommit(false);
             String s_=_DateString1;        
             proc.setString(1,s_);
             String s2_=_DateString2;
             proc.setString(2,s2_);    
             proc.setString(3,koduser);
             proc.execute();
         proc.close();
           conn.commit();
           conn.close();  

        }catch (Exception e1) {
            e1.printStackTrace();
        }
         finally {
            }
        
    }


результат выводится в отчете .

На линуксе, виндовс 7 и  виндовс сервере 2003 все работает. 

А на ХР не везде работает. 
На одних компьютерах просто зависает процесс и обращение  к серверу, т.е. на сервер обработка функции вист много часов. 
Сама функция выполняется 7-10 минут.  

А на других выдает "Нет Данных".

Пробовал запустить под eclipse. ошибок нет

Где глюк. 

Причем тормоза происходят при одном пользователе и при нескольких пользователях.

Автор: aleksandy 23.12.2013, 21:34
1. Стек-трейс покажи. 
2. При ошибке транзакция не откатывается и коннект не закрывается.
3. Я точно не помню, но, по-моему, setAutoCommit() надо делать до того, как создаётся Statement.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)