powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / WEB интерфейс
9 сообщений из 59, страница 3 из 3
WEB интерфейс
    #34850418
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz TimmТ.е. ты такую весчь не применял, но советуешь?
Да, я уже давно нормальных проектов не кодирую. Но это мне никак не мешает разбиратся в теории.
Жаль. я бы посмотрел не "в теории".
...
Рейтинг: 0 / 0
WEB интерфейс
    #34851958
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expp BlazkowiczЯ нигде не говорил про полный вынос локов в приложение. Я говорил что, вынося локи из базы, можно получать прирост производительности.

позволю себе небольшой пук ....

нужно просто разделять транзакции и локи уровня базы и уровня приложения. это совершенно разные понятия. разумеется можно реализовывать длинную транзакцию уровня приложения с помощью пессимистической блокировки FOR UPDATE.. но какой это сакс не мне вам рассказывать. гораздо эффективнее использовать оптимистическую "блокировку" с помощью колонок версий UPDATE ... WHERE verson=223 . но нужно понимать что работает это только потому что база обеспечивает READCOMMITED посредством своих лочек. т.е. когда мы флашим хибер сессию в кучу таких оптимистичных апдейтов. проапдейченные строчки блокируются - селекты других транзакций на них просто повисают. если один из апдейтов не проходит - версия поменялась т.е. имеем ноль проапдейченных строчек, получаем эксепшн и откатываем всё к чертям. тем самым имеем атомарный и целостный накат длинющей транзакции приложения очень дёшево и эффективно.

это мне кажется более точная формулировка "выноса локов..."

ну а организация таблички блокировок ("пессимизм своими руками") приводит к ботлнеку и куче висящих селектов. но имхо лучше for updateа

Как реагирует хибер когда мы закрыли сессиюь и открыли новою. но песемизм хотим реализовать на старой сесии(соответственно старой версии).

P.S.
Оптимизм своими ручками реализовать сложно. Напрактитике кто то так делал были ли траблы.
Скажем есть поле update_lock_time. Если оно null то устанавлеваем текущую дату. В ином случае оно залочено и ждем. Пока не разлочат.
Также проверка на timeout может залочили час назат и упал.
P.S.2 Терпеть не могу timeout-ы они гробят стабильность и производительность сетей IMHO.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34852977
Чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pamirСамый прикол в том, что все бизнес-операции можно оборачивать в хранимые процедуры. И тогда для клиентского приложения, будь он хоть свинг, хоть си-шарп, будет существовать только вызов одной или нескольких хранимок
CRUID, так и сделано, тока вот в делфи конект держится и все селекты for update будут до тех пор пока в сессии я не скажу коммит. Открылась формачка редактирования в еёшних полях сселктились данный с for update и до тех пор пока пока я не нажму кнопочку сохранить они будут залочены. С вебом не получается так, хтмлька сгенерилась и сессия закрылась. Есть среда разработки Jdeveloper, я две недели потратил на то чтобы разобраться с еёшними BC (ViewObject, EntityObject). Тас всё нормально сделано, гдето внутрях эти сессии держутся но вот тока слепить более менее приличный интерфейс с этими компонентами не получается. А если появились какие либо изменения в структуре таблиц то это вообще писец.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34853824
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чендлер pamirСамый прикол в том, что все бизнес-операции можно оборачивать в хранимые процедуры. И тогда для клиентского приложения, будь он хоть свинг, хоть си-шарп, будет существовать только вызов одной или нескольких хранимок
CRUID, так и сделано, тока вот в делфи конект держится и все селекты for update будут до тех пор пока в сессии я не скажу коммит. Открылась формачка редактирования в еёшних полях сселктились данный с for update и до тех пор пока пока я не нажму кнопочку сохранить они будут залочены. С вебом не получается так, хтмлька сгенерилась и сессия закрылась. Есть среда разработки Jdeveloper, я две недели потратил на то чтобы разобраться с еёшними BC (ViewObject, EntityObject). Тас всё нормально сделано, гдето внутрях эти сессии держутся но вот тока слепить более менее приличный интерфейс с этими компонентами не получается. А если появились какие либо изменения в структуре таблиц то это вообще писец.Естественно, в вебе нужно организовывать оптимистические блокировки. Позволил юзеру редактировать, а при сохранении проверил - не изменил ли кто-то данные. Если изменил - извини, ты слишком долго думал. Тебя опередили. Но это никак не мешает организовать то, что я описал - оборачивание БО в процедуры, что позволяет уйти от привязанности к структуре БД.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34854286
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stub
Как реагирует хибер когда мы закрыли сессиюь и открыли новою. но песемизм хотим реализовать на старой сесии(соответственно старой версии).
желательно попроще мысли излагать...
Хибер не реагирует ни как. это не его собачье дело, при пессимистичном локе он выдаёт SELECT .. FOR UPDATE. дальше всё определяется поведением бд. (лочка висит до конца транзакции)

Stub
P.S.
Оптимизм своими ручками реализовать сложно. Напрактитике кто то так делал были ли траблы.
Скажем есть поле update_lock_time. Если оно null то устанавлеваем текущую дату. В ином случае оно залочено и ждем. Пока не разлочат.
хибер реализует оптимизм с помощью колонок версий (можно и таймстэмпами) вроде работает.
в этом наборе слов, кажется описан принцип реализации пессимистической блокировки своими руками

StubТакже проверка на timeout может залочили час назат и упал.
P.S.2 Терпеть не могу timeout-ы они гробят стабильность и производительность сетей IMHO.
но бывает как-то сказать что подумал, не стало мне ясно
...
Рейтинг: 0 / 0
WEB интерфейс
    #34854644
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу оптимизи. Когда использует версию.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34854646
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expp Stub
Как реагирует хибер когда мы закрыли сессиюь и открыли новою. но песемизм хотим реализовать на старой сесии(соответственно старой версии).
желательно попроще мысли излагать...
Хибер не реагирует ни как. это не его собачье дело, при пессимистичном локе он выдаёт SELECT .. FOR UPDATE. дальше всё определяется поведением бд. (лочка висит до конца транзакции)

Stub
P.S.
Оптимизм своими ручками реализовать сложно. Напрактитике кто то так делал были ли траблы.
Скажем есть поле update_lock_time. Если оно null то устанавлеваем текущую дату. В ином случае оно залочено и ждем. Пока не разлочат.
хибер реализует оптимизм с помощью колонок версий (можно и таймстэмпами) вроде работает.
в этом наборе слов, кажется описан принцип реализации пессимистической блокировки своими руками

StubТакже проверка на timeout может залочили час назат и упал.
P.S.2 Терпеть не могу timeout-ы они гробят стабильность и производительность сетей IMHO.
но бывает как-то сказать что подумал, не стало мне ясно

Да иммено так. Сорри перепутал термины :-( .
...
Рейтинг: 0 / 0
WEB интерфейс
    #34854659
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как хибер будет реагировать на версию(оптимизм) при закрытии сессии.
Если сессия закрыветься то и теряються персистентные обьекты с ихними версиями.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34854694
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StubКак хибер будет реагировать на версию(оптимизм) при закрытии сессии.
Если сессия закрыветься то и теряються персистентные обьекты с ихними версиями.

в этом случае ты держишь вроде как в "detached state" т.е. кладёшь их например в http сессию после закрытия хиберской (лучше конечно использовать хиберсессию в нескольких транзакциях)

по сабмиту ты присоединяешь update()ом объедки к новой сессии со старыми значениями версии.

т.е. проблемы я не вижу.
...
Рейтинг: 0 / 0
9 сообщений из 59, страница 3 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / WEB интерфейс
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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