Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Почему виснет executeUpdate / 11 сообщений из 11, страница 1 из 1
13.10.2005, 15:14
    #33322892
Ф
Ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет executeUpdate
Незнаю уже что делать.

Есть следующий код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
 try  {
  s = url;
  System.out.println("Connecting string: " + s);
  strUser = "ora";
  strPass = "ora92";
  System.out.println("User: " + strUser + ", Password: " + strPass);
  Connection cn = DriverManager.getConnection (s, strUser, strPass);
  cn.setAutoCommit(false);				
  Statement st = cn.createStatement();

  st.executeUpdate("UPDATE holidays SET holiday_id = 2");

  cn.commit();								

  st.close();
  cn.close();
}  catch  (SQLException se) {
  System.out.println("DB connection Error");
  se.printStackTrace();
   return ;
}  finally  {
  System.out.println("All that happened"); 
}

Проблема в том, что когда выполнение доходит до срочки executeUpdate, программа зависает на строчке вызова executeUpdate даже не выбросив эксепшн.

Кто знает в чем дело, подскажите.
...
Рейтинг: 0 / 0
13.10.2005, 15:20
    #33322918
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет executeUpdate
Ф wrote:

> Проблема в том, что когда выполнение доходит до срочки executeUpdate,
> программа зависает на строчке вызова executeUpdate даже не выбросив эксепшн.
>

Может висит на оракловой блокировке, кто-то еще меняет эту таблицу - у тебя в запросе меняются все
ее записи.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
13.10.2005, 15:24
    #33322942
Ф
Ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет executeUpdate
Нет не все, одна запись, одно поле.
...
Рейтинг: 0 / 0
13.10.2005, 15:29
    #33322966
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет executeUpdate
Код: plaintext
st.executeUpdate("UPDATE holidays SET holiday_id = 2");
Меняются все записи в таблице, а сколько их там - я не знаю. В любом случае можно глянуть на оракловые блокировки.
...
Рейтинг: 0 / 0
13.10.2005, 15:33
    #33322989
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет executeUpdate
Denis Popov
Ф wrote:

> Проблема в том, что когда выполнение доходит до срочки executeUpdate,
> программа зависает на строчке вызова executeUpdate даже не выбросив эксепшн.
>

Может висит на оракловой блокировке, кто-то еще меняет эту таблицу - у тебя в запросе меняются все
ее записи.
Posted via ActualForum NNTP Server 1.3

а как вы догадались, что речь именно об Оракл? :)
...
Рейтинг: 0 / 0
13.10.2005, 15:35
    #33323005
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет executeUpdate
Что-то выдавало Оракл. То ли скорость ответов, то ли размер базы, то ли пароль ora92...
...
Рейтинг: 0 / 0
13.10.2005, 16:13
    #33323167
Ф
Ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет executeUpdate
Denis Popov
Код: plaintext
st.executeUpdate("UPDATE holidays SET holiday_id = 2");
Меняются все записи в таблице, а сколько их там - я не знаю. В любом случае можно глянуть на оракловые блокировки.

Да меняются все записи, но если дапоставить "WHERE" то запрос отрабатывается нормально, но в базе реально ничего не изменяется, поле holiday_id не меняется на 2.
...
Рейтинг: 0 / 0
13.10.2005, 16:32
    #33323221
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет executeUpdate
Чудес не бывает:)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Connection con =  null ;
Statement st =  null ;
ResultSet rs =  null ;
 try  {
  DriverManager.registerDriver( new  oracle.jdbc.OracleDriver());
  con = DriverManager.getConnection(SERVER, USERNAME, PASSWORD);
  con.setAutoCommit(false);
  st = con.createStatement();
   try  {
    st.execute("drop table tmp_holidays");
  }  catch  (SQLException e) {}
  st.execute("create table tmp_holidays (holiday_id number(9))");
  st.executeUpdate("insert into tmp_holidays (holiday_id) select empno from scott.emp");
  rs = st.executeQuery("select holiday_id from tmp_holidays");
   while  (rs.next()) {
    System.out.println(rs.getString("holiday_id"));
  }
  System.out.println("\n---------------\n");

  st.executeUpdate("UPDATE tmp_holidays SET holiday_id = 2");
  con.commit();
  rs = st.executeQuery("select holiday_id from tmp_holidays");
   while  (rs.next()) {
    System.out.println(rs.getString("holiday_id"));
  }
}  finally  {
   if  (rs !=  null ) { rs.close(); }
   if  (st !=  null ) { st.close(); }
   if  (con !=  null ) { con.close(); }
}

Обновляет? Погляди на оракловые блокировки в момент отработки executeUpdate().
...
Рейтинг: 0 / 0
13.10.2005, 16:33
    #33323224
Ф
Ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет executeUpdate
Попробывал подключиться к другой базе все стало нормально, изменения коммитятся, а на этой нихочет почему-то!
...
Рейтинг: 0 / 0
13.10.2005, 16:54
    #33323304
DarkSquid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет executeUpdate
ФПопробывал подключиться к другой базе все стало нормально, изменения коммитятся, а на этой нихочет почему-то!

На "этой" базе commit сделай в той аппликухе, откуда таблицу смотришь.
...
Рейтинг: 0 / 0
14.10.2005, 09:35
    #33324121
Alexey Turn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет executeUpdate
У меня была такая же проблема.
Сейчас плохо помню, возможно на этом же форуме постил либо на релибе.
Смутно припоминаю что было не все в порядке с драйверами.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Почему виснет executeUpdate / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]