72 похожих чатов

Ххх: Сижу читаю про вложенные транзакции в 1с чем дальше читаю, тем

меньше понимаю

«Все транзакции, вызванные внутри уже открытой транзакции, фактически относятся к той же транзакции, а не образуют вложенную транзакцию. Таким образом, отмена изменений, выполняемая во вложенной транзакции, будет приводить в конечном счете не к отмене изменений самой вложенной транзакции, а к отмене всех изменений транзакции верхнего уровня. В то же время фиксация изменений, выполненная во вложенной транзакции, игнорируется.»

ххх:
внимание вопрос - нахуя тогда внутри транзакции вызывать транзакции?

6 ответов

13 просмотров

Дык когда костылят

просто в голос

Модель вложенных транзакций как в Sybase & ms SQL server. Счётчик транзакций используется. Begin transaction увеличивает счётчик. Commit уменьшает. Как только счётчик переходит с 1 на 0, транзакция реально коммитится. Rollback отменяет весь праздник до момента первого начала транзакции. Это нормальная ходовая модель, многие применяют ее. Нужна такая модель вложенных т. не для организации транзакций, а для организации кода, который этими транзакциями управляет. Если есть независимый кусок кода (процедура) который может выполняться как сам, так и в составе другого кода ( может быть вызван) то ему надо уметь управлять транзакциями в обоих случаях. Модель вложенных т. как раз позволяет это сделать. Код при этом не меняется. В начале делается begin transaction, который увеличивает trancount, в конце commit , который уменьшает. Если это автономно работает, транзакция завершается, если код вызван, то commit только уменьшает счётчик , а реальное управление транзакцией остаётся в руках вызвавшего кода. Rollback откатывает все , поэтому он должен использоваться вместе с индикатором ошибки. Либо код генерирует ошибку ( исключение например), и не отменяет транзакцию, либо отменяет и генерирует ошибку. Соответственно, вызывающий код должен либо обнаружить ошибку и отменить транзакцию, либо обнаружить ошибку и не отменяя ничего, завершится. Ну и на последок, То, что ты вероятно хочешь, называется автономными транзакциями, когда вложенная завершается или отменяется независимо от внешней. Так в Оракле. Но это единственная СУБД, поддерживающая такой режим.

Ilya Zviagin
Модель вложенных транзакций как в Sybase & ms SQL ...

То, что он хочет -- это вложэнные транзакцыи как в postgres, когда внутренняя транзакцыя можэт сама отменить только свои изменения, зато внешняя транзакцыя решает -- отменять ей всё вместе или применять всё вместе. Или откатиться до какой-то предыдущей точки во внешней транзакцыи.

Ilya Zviagin
Что-то ты очень давнее что-то поднял

Действительно. Ну, доброе утро. Да, как-то забыл что тут поиск работал.

Похожие вопросы

Обсуждают сегодня

Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
15
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
А как вы добиваетесь того что у вас температуры ниже 80 градусов у мака?
Karl {🌪️}{🐊} Shinobi
5
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Всем привет. Нужна платная консультация от тех, кто сталкивался с октябрём в кластере или шарит оч хорошо в цмс. Проблема следующая: после переноса в кластер октябрь начал ...
wl
8
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
я часов 15 назад начал пытаться написать хоть что-то напоминающее ос и у меня есть проблема, которую я пытаюсь решить последние часов 5: есть крч 2 исходника с минимальным код...
Al1to
17
Карта сайта