![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| lunix |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 17.2.2007 Репутация: нет Всего: нет |
При изучении хибернейта у меня возник вопрос.
Хибернейт делает обновление в базу данных в конце транзакции, чтобы избежать блокировки? Рассмотрим работу с JDBC. Уровени изоляции транзакций read-commited. 1) Устанавливаем auto commit = false. 2) Начинаем транзакцию 3) Делаем обновление записи базы данных. Вопрос: устанавливается ли на запись блокировка до конца текущей транзакции?(тогда другие траназакции, использующие данную запись будут блокированы). Или вообще блокировка не устанавливается, а просто сохраняется измененная запись данной строчки(не в базу) до завершения транзакции, а другие транзакции не блокируются и видят старую запись? |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
Это может зависеть от базы данных. Например IntarBase или Orcale - версионные и они не блокируют запись. А тот же MS SQL - блокирует.
|
|||
|
||||
| lunix |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 17.2.2007 Репутация: нет Всего: нет |
Почитал Тома Кайта(гуру оракла):
в оракле осуществляется блокировка на запись, а другие транзакции при чтении берут данные из сегмента отката. На запись всегда осуществляется блокировка, а на чтение видимо зависит от базы. |
|||
|
||||
| ekr |
|
|||
![]() ...и это пройдет... ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 6.5.2007 Где: Moscow, RU Репутация: 12 Всего: 19 |
Как сказали AntonSaburov и lunix, поведение очень сильно зависит от выбранного вендора БД. От себя добавлю, что поведение так же сильно зависит от выбранного уровня изоляции транзакций, причем реализация этих уровней так же vendor-dependent ))) Так что надо знать общие идеи изоляции транзакций, а дальше уже читать доки по конкретному ерверу конкретной версии ) |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |