|
|
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
Отношусь к транзакции как к атомарной операции, которую можно откатить к сессии отношусь как к сеансу когда объект подключен в БД и любые изменения в подключенном объекте проростают в бд. хотелось бы узнать отношение между сессией и транзакцией. знаю, что внутри сессии можно открывать и закрывать транзакции в любых количествах, но вроде как они не должны пересекаться между собой. То есть если транзакция открыта, то перед тем открыть следующую надо закрыть старую. а можно как-то открыть транзакцию(в какой-то сессии1) , потом сессию2 например открыть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2013, 21:01:18 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
Можете это рассматривать это следующим образом. Сессия - множество действий с СУБД в рамках одного коннекшна. Транзакция - подмножество действий в рамках сессии, с особой ACID семантикой с точки зрения СУБД. Запустить транзакцию поверх нескольких сессий нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2013, 23:46:10 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
cdtyjv, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 11:50:27 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
cdtyjvЗапустить транзакцию поверх нескольких сессий нельзя. Я бы не был так категоричен. То что в большинстве случаев это не имеет смысла и то что это реализуется через одно место, ещё не значит что это не возможно в принципе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 12:00:22 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
Hibernate Session это реализация паттерна Unit of Work. Чтобы понять принципиальное назначение и практическое использование, стоит ознакомиться с материалами об этом паттерне. Можно начать отсюда. http://stackoverflow.com/a/3533245 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 12:03:30 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, можно немного поподробнее отсюда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 12:03:45 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz , Ок, буду изучать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 12:04:36 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
questionerможно немного поподробнее отсюда? Откуда "отсюда"? Пользуйтесь цитированием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 12:08:02 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Ваш коммент со ссылкой на stackOverfow появился одновременно с моей просьбой о подробности. А удалить форум не позволяет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 12:10:15 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
questionerВаш коммент со ссылкой на stackOverfow появился одновременно с моей просьбой о подробности. А удалить форум не позволяет. Ну, дык воизбежание цитируйте, пожалуйста. Если вопрос о том как сделать несколько сессий поверх одной транзакции, то достаточно понять что нет никаких этому ограничений. Сессия напрямую транзакцией не управляет. Это происходит через определенные абстракции, куда при должном желании можно встрять и навязать реализации своё поведение. Подозреваю что можно даже стандартными средствами через JTA UserTransaction. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 12:29:26 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
cdtyjvМожете это рассматривать это следующим образом. Сессия - множество действий с СУБД в рамках одного коннекшна. Транзакция - подмножество действий в рамках сессии, с особой ACID семантикой с точки зрения СУБД. Запустить транзакцию поверх нескольких сессий нельзя. А как же распределенные транзакции? даже я об этом знаю. BlazkowiczquestionerВаш коммент со ссылкой на stackOverfow появился одновременно с моей просьбой о подробности. А удалить форум не позволяет. Ну, дык воизбежание цитируйте, пожалуйста. Если вопрос о том как сделать несколько сессий поверх одной транзакции, то достаточно понять что нет никаких этому ограничений. Сессия напрямую транзакцией не управляет. Это происходит через определенные абстракции, куда при должном желании можно встрять и навязать реализации своё поведение. Подозреваю что можно даже стандартными средствами через JTA UserTransaction. Как-то у вас задом наперед... попробуйте запустить транзакцию, не открывая сессию) Т.е. транзакция поверх сессии (или нескольких сессий). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 13:26:12 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
IliyamКак-то у вас задом наперед... Я, пока ещё, теоретик в проктологии. Iliyamпопробуйте запустить транзакцию, не открывая сессию) Т.е. транзакция поверх сессии (или нескольких сессий). Зачем пробовать? Достаточно посмотреть исходники. В них я не нашел никаких препядствий этому. Ткни носом, если я чего-то не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 13:34:57 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczIliyamКак-то у вас задом наперед... Я, пока ещё, теоретик в проктологии. Iliyamпопробуйте запустить транзакцию, не открывая сессию) Т.е. транзакция поверх сессии (или нескольких сессий). Зачем пробовать? Достаточно посмотреть исходники. В них я не нашел никаких препядствий этому. Ткни носом, если я чего-то не вижу. Так вы в проктологии теоретик или нет? Может и можно, но все равно так делать - это делать через ... короче неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 13:59:00 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
IliyamBlazkowiczЯ, пока ещё, теоретик в проктологии. Так вы в проктологии теоретик или нет? Проблемы с чтением? IliyamМожет и можно, но все равно так делать - это делать через ... короче неправильно. ОК. Вы перефразировали то что я написал выше. Какой вы ожидаете реакции перефразирую то что уже написано выше и повторя это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 14:06:05 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz Проблемы с чтением? Проблемы с логикой? BlazkowiczОК. Вы перефразировали то что я написал выше. Какой вы ожидаете реакции перефразирую то что уже написано выше и повторя это? Я бы вообще ничего не писал, если б тему создал не начинающий. А здесь ваши упражнения в проктологии (ваша, кстати, аналогия) неуместны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 14:25:21 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
IliyamBlazkowiczПроблемы с чтением? Проблемы с логикой? Проблемы? :D IliyamЯ бы вообще ничего не писал, если б тему создал не начинающий. А здесь ваши упражнения в проктологии (ваша, кстати, аналогия) неуместны. Окай. Перефразируем. Через JTA можно поиметь несколько сессий на транзакцию без особых заморочек. С JDBC транзакцией будет немного сложнее. Но тоже реально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 14:38:15 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
IliyamЯ бы вообще ничего не писал, если б тему создал не начинающий. Это кого должно волновать? Я бы вообще ничего не писал, если бы новых тем не создавали. Ваш КО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 14:39:09 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz Проблемы? :D BlazkowiczОкай. Перефразируем. Через JTA можно поиметь несколько сессий на транзакцию без особых заморочек. С JDBC транзакцией будет немного сложнее. Но тоже реально. Вы вообще помните, с чего спор пошел? Какая-то странная непоследовательность от человека, дающего много дельных советов. Можете не искать, причина уже исчерпана. Я эту писанину пишу, чтобы сказать - начинающему нужны короткие и правильные ответы в общем виде. Вариации он сам узнает, если захочет. Вы с этим согласны, надеюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 15:15:12 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
IliyamЯ эту писанину пишу, чтобы сказать - начинающему нужны короткие и правильные ответы в общем виде. Вариации он сам узнает, если захочет. Вы с этим согласны, надеюсь? Мы тут не только о начинающих заботимся но и собственный кругозор расширяем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 15:17:44 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczМы тут не только о начинающих заботимся но и собственный кругозор расширяем. По-моему это простые теоретические вопросы. Кроме начинающих кругозор больше ни у кого не расширится. (ну может еще у svenoma что-нибудь расширится :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 15:48:43 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
IliyamПо-моему это простые теоретические вопросы. Для одних - простые. Для других - нет. Почему бы и не обсудить в очередной раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 15:55:42 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczIliyamпопробуйте запустить транзакцию, не открывая сессию) Т.е. транзакция поверх сессии (или нескольких сессий). Зачем пробовать? Достаточно посмотреть исходники. В них я не нашел никаких препядствий этому. Ткни носом, если я чего-то не вижу. а если всё-таки попробовать то как ? куда смотреть? что писать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 23:51:51 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
redwhite90а если всё-таки попробовать то как ? куда смотреть? что писать? Для начала настроить работу хибера через JTA. И управлять транзакцией руками через UserTransaction. Стартовали транзакцию. Создали сессию. Поработали. Закрыли. Создали новую сессию. Поработали. Закрыли. Закомитили UserTransaction. Если этот вариант по какой-то причине не работает, то надо почитать спринговый HibernateTransactionManager. Всё сводится к том что Session сообщает в TransactionManager о том что надо бы закомититься, или откатить, или ещё чего. А Transaction Manager уже может решать, надо оно ему. Или позже коммит вызвать и т.п. Посмотри реализацию классов JDBCTransaction и JTATransaction в Hibernate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 10:25:32 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
redwhite90 а если всё-таки попробовать то как ? куда смотреть? что писать? спеку по JTA смотри. Мне лень, поэтому поверил Blazkowicz на слово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 10:34:50 |
|
||
|
hibernate. транзакции и сессии.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczcdtyjvЗапустить транзакцию поверх нескольких сессий нельзя. Я бы не был так категоричен. То что в большинстве случаев это не имеет смысла и то что это реализуется через одно место, ещё не значит что это не возможно в принципе. IliyamBlazkowiczпропущено... Я, пока ещё, теоретик в проктологии. пропущено... Зачем пробовать? Достаточно посмотреть исходники. В них я не нашел никаких препядствий этому. Ткни носом, если я чего-то не вижу. Так вы в проктологии теоретик или нет? Может и можно, но все равно так делать - это делать через ... короче неправильно. Вся суть спора. Iliyam, чтение по диагонали - не ваш конек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 11:07:37 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38411815&tid=2128506]: |
0ms |
get settings: |
11ms |
get forum list: |
23ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
53ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
94ms |
get tp. blocked users: |
2ms |
| others: | 288ms |
| total: | 501ms |

| 0 / 0 |
