powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Транзакция и нетранзакционное действие.
54 сообщений из 54, показаны все 3 страниц
Транзакция и нетранзакционное действие.
    #39599539
Givv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, может не тот форум, но вопрос примерно такой:

Как работать с ситуацией когда надо совместить запись в БД и какое-нибудь внешнее действие, типа отправки емайла.

Простой сценарий:

1. В таблицу вставляется запись с флагом Sent=0
2. По этой записи каким-то образом генерируется и отправляется емайл.
3. В записи устанавливается флаг Sent=1

Если коммитить после #1, то возможна ситуация когда емайл отправится, а Sent останется равным 0.
Если коммитить после #3, то возможна ситуация когда емайл отправится, а записи в таблице не будет вообще.


PS:
В общем случае имеется ввиду не только отправка emailа, но любое действие типа вызова вебсервиса или записи чего-нибудь в оборудовние.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599549
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В любом случае не надо делать такие вещи, как отправка email внутри транзакции.

GivvЕсли коммитить после #1, то возможна ситуация когда емайл отправится, а Sent останется равным 0.это еще почему?
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599557
Givv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Ну сеть упадет между #2 и #3 или еще что-то.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599577
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvПривет, может не тот форум, но вопрос примерно такой:

Как работать с ситуацией когда надо совместить запись в БД и какое-нибудь внешнее действие, типа отправки емайла.

Простой сценарий:

1. В таблицу вставляется запись с флагом Sent=0
2. По этой записи каким-то образом генерируется и отправляется емайл.
3. В записи устанавливается флаг Sent=1

Если коммитить после #1, то возможна ситуация когда емайл отправится, а Sent останется равным 0.
Если коммитить после #3, то возможна ситуация когда емайл отправится, а записи в таблице не будет вообще.



PS:
В общем случае имеется ввиду не только отправка emailа, но любое действие типа вызова вебсервиса или записи чего-нибудь в оборудовние.

1,коммит, 2, 3, коммит

Но в любом случае придется врукопашную изображать из себя двухступенчатую транзакцию, и возможны коллизии.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599579
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Givv,
Длительные внешние процессы делать асинхронно. Есть распределенные транзакции, но письма к ним не относятся.
Просто отправку повесь на JOB субд или IIS.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599582
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО для начала стоит определиться с тем, какое поведение требуется.

1. Добавить запись о начале отправки;
2. Отправить письмо;
3. Изменить статус на Отправлено.

Если письмо не отправилось то повторить попытку.
Если попало в gray list, то повторить попытку.
Если...

А потом уже выбирать решение.

Мне пока не понятно, при чём тут транзакции.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599586
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvНу сеть упадет между #2 и #3 или еще что-то.
Сеть между чем и чем?
Пусть "отправлятор" ставит в очередь сообщение о том, что отправил, а "разгребатор" этой очереди как сеть будет, то выгребет сообщение из очереди и изменит статус в БД.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599591
Givv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Основной вопрос в том, что делать, если письмо отправилось и выключилось электричество.

Есть ли общепринятая практика разруливания таких ситуаций?
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599593
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvskyANA,
Основной вопрос в том, что делать, если письмо отправилось и выключилось электричество.

Есть ли общепринятая практика разруливания таких ситуаций?Развить обсуждение на форуме об этом страниц на 20
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599595
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Givv,

Вы представляете, что происходит с обычной транзакцией, когда выключается электричество?
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599596
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvskyANA,
Основной вопрос в том, что делать, если письмо отправилось и выключилось электричество.

Есть ли общепринятая практика разруливания таких ситуаций?
ИБП.
Что делать, если на сервер упадет метеорит, или начнется зомби-апокалипсис - не знаю.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599597
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvОсновной вопрос в том, что делать, если письмо отправилось и выключилось электричество.

Есть ли общепринятая практика разруливания таких ситуаций?


Сказали же уже.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599600
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAGivv,

Вы представляете, что происходит с обычной транзакцией, когда выключается электричество?

Да не, он просто проигнорировал


skyANA1. Добавить запись о начале отправки;
2. Отправить письмо;
3. Изменить статус на Отправлено.


вот что с людьми такое, а?
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599601
Givv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAGivv,

Вы представляете, что происходит с обычной транзакцией, когда выключается электричество?

Видимо изменения откатятся, но тут вопрос в том что #3 может даже не начатся
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599604
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Givvчто #3 может даже не начатсягде не прошла строчка коммит, откатится. В чем проблема? В письме отката? )))
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599605
Givv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Givvчто #3 может даже не начатсягде не прошла строчка коммит, откатится. В чем проблема? В письме отката? )))

Ну в том, что письмо будет отправлено, но в базе флаг Sent=0.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599607
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Givv,
Ты пишешь программу с допуском по вероятности событий.
Так что конкретнее вопрос.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599609
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvPetro123пропущено...
где не прошла строчка коммит, откатится. В чем проблема? В письме отката? )))

Ну в том, что письмо будет отправлено, но в базе флаг Sent=0.
Вкл. Автокоммита в драйвере и коммит будет через миллисекунду.
Ок?
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599634
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvНу в том, что письмо будет отправлено, но в базе флаг Sent=0.Ну значит после включения электричества отправится второй раз и проставится Sent=1. Это проблема?
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599659
Givv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProGivvНу в том, что письмо будет отправлено, но в базе флаг Sent=0.Ну значит после включения электричества отправится второй раз и проставится Sent=1. Это проблема?
Ну да, проблема.
Там на самом деле не отправка емайла, а другая "внешняя" операция, которую нельзя вызывать дважды.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599664
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvskyANAGivv,

Вы представляете, что происходит с обычной транзакцией, когда выключается электричество?

Видимо изменения откатятся, но тут вопрос в том что #3 может даже не начатсяЗа счёт чего они откатятся?
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599666
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvShocker.Proпропущено...
Ну значит после включения электричества отправится второй раз и проставится Sent=1. Это проблема?
Ну да, проблема.
Там на самом деле не отправка емайла, а другая "внешняя" операция, которую нельзя вызывать дважды.
Всё это решается. Сформулируйте конкретный сценарий.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599668
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvНу в том, что письмо будет отправлено, но в базе флаг Sent=0.

если такое случиться, не будет никакой трагедии отправить письмо повторно после включения электричества. кроме того, сервер, который получил письмо в очередь на отправку может сообщить, что письмо уже было отправлено.

в механизмах типа fire and forget невозможно обеспечить 100% абсолютно атомарную транзакционность, так как после fire нет обратной связи. элекстричество может отключиться не у вас, а где-то на промежуточных серверах, и вы будете думать, что отправили, но адресат ничего не получит. увы.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599674
Givv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA]За счёт чего они откатятся?
Я подозреваю, что за счет журналирования транзакций.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599678
Givv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttGivvНу в том, что письмо будет отправлено, но в базе флаг Sent=0.

если такое случиться, не будет никакой трагедии отправить письмо повторно после включения электричества.

Трагедия это или нет, решает бизнес :)
Мы как-то запулили порцию демандов дважды (это такие своеобразные требования об оплате). По другой причине конечно, но уверю вас, это была трагедия.

Но в данном конкретном случае речь идет просто об абстрактной внешней операции, которую нельзя делать дважды.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599689
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Givv,
Тестируете все события в ТЗ описанные. Те что не описаны в ТЗ обзываете форс мажор и зовете юриста.
Все.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599690
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvТрагедия это или нет, решает бизнес :)
Мы как-то запулили порцию демандов дважды (это такие своеобразные требования об оплате). По другой причине конечно, но уверю вас, это была трагедия.

Но в данном конкретном случае речь идет просто об абстрактной внешней операции, которую нельзя делать дважды.
Обычное решение - абстрактный пользователь, который проставляет галочку "выполнено" и несет полную ответственность. Кого конкретно назначить (козлом отпущения) - решает бизнес :)
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599694
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvНо в данном конкретном случае речь идет просто об абстрактной внешней операции, которую нельзя делать дважды.Значит эта операция должна иметь на входе проверяльщик, который не позволит запустить ее дважды. Я делал такое на базе гуидов. Повторный запрос отправляется с тем же гуидом, приемник, если видит повтор, игнорирует его.

Но это никак не проблема коммита транзакции на отправителе.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599709
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LR,
Химичат они там)).
Уже повторную отправку денег оформили, теперь хотят козлом программу сделать))))
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599731
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человек просто хочет пометить несколько действий как "транзакционные" и выполнить эти действия в единой транзакции.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599737
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Givv,

для писем не критично: в большинстве своём в писме указышается конкретный номер "Счёта к оплате" и повторное письмо не есть новый счёт.
в теории это решается только через "менеджер транзакций" и распределённые транзакцци с поддерждкой двуступенечатого коммита.
В Мире Майкрософта если доставка майла идёт через МС то возможно получится задействовать COM+.
Там есть поддержка менеджера транзакций. Но AFAIK его нужно активировать сначала как службу.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599809
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvТрагедия это или нет, решает бизнес :)

Если наступление зимы для бизнеса трагедия, надо срочно бежать и спрашивать, а как отменить зиму?


GivvМы как-то запулили порцию демандов дважды (это такие своеобразные требования об оплате). По другой причине конечно, но уверю вас, это была трагедия.

Есть миллиарды способов накосячить.


GivvНо в данном конкретном случае речь идет просто об абстрактной внешней операции, которую нельзя делать дважды.

Распределяйте. Два дата-центра в разных странах, на всякий случай. Пусть им поступает команда, и один из них выполняет. Если в стране отключат электричество, будем надеяться, что в другой стране не отключат, хоть кто-то отправит и зафиксирует операцию.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599814
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvskyANA]За счёт чего они откатятся?
Я подозреваю, что за счет журналирования транзакций.Правильно подозреваете.
Следовательно что надо сделать Вам? Запилить или взять готовый аналог журналирования
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599816
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvhVosttпропущено...


если такое случиться, не будет никакой трагедии отправить письмо повторно после включения электричества.

Трагедия это или нет, решает бизнес :)
Мы как-то запулили порцию демандов дважды (это такие своеобразные требования об оплате). По другой причине конечно, но уверю вас, это была трагедия.

Но в данном конкретном случае речь идет просто об абстрактной внешней операции, которую нельзя делать дважды.Таки распишите уже требования

Операция считается сделанной при получении ответа от внешней стороны об этом?
И нужно учитывать ситуацию, что этот самый ответ по какой-то причине может до вас не дойти?

Тогда, как писали выше, необходимо присвоить операции некий уникальный идентификатор, чтобы внешняя сторона по нему могла отклонить повторное выполнение.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599828
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТогда, как писали выше, необходимо присвоить операции некий уникальный идентификатор, чтобы внешняя сторона по нему могла отклонить повторное выполнение.
ну, если я уже прочитал письмо (не положенное) то никакой идентификатор в моей башке ничего не отменит
письмо должно быть доступно для чтения только по коммиту
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599829
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и воще то вопрос не о конкретном случае
не хочешь зиму - будь мобильным, перемещайся с летом или переезжай поближе к экватору
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599831
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в оглавлении понятие "не транзакционное", это не часто озвучивается (во всяком случае я не видел особых акцентов).
надо бы четко определить что это такое?
т.е. что может быть транзакционным?
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599877
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GivvПривет, может не тот форум, но вопрос примерно такой:

Как работать с ситуацией когда надо совместить запись в БД и какое-нибудь внешнее действие, типа отправки емайла.

Простой сценарий:

1. В таблицу вставляется запись с флагом Sent=0
2. По этой записи каким-то образом генерируется и отправляется емайл.
3. В записи устанавливается флаг Sent=1

Если коммитить после #1, то возможна ситуация когда емайл отправится, а Sent останется равным 0.
Если коммитить после #3, то возможна ситуация когда емайл отправится, а записи в таблице не будет вообще.


PS:
В общем случае имеется ввиду не только отправка emailа, но любое действие типа вызова вебсервиса или записи чего-нибудь в оборудовние.

В транзакции вставляем запись сразу с Sent=1, потом отправляем e-mail. Если e-mail отправлен, то коммитим транзакцию, если не отправлен, то откатываем. Но, как правильно говорили выше, тут уже от конкретных требований зависит. Потому что, например, если e-mail отправлен, то еще не факт, что он дойдет и будет прочитан.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39599889
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatЕсли e-mail отправлен, то коммитим транзакцию,при асинхронности он в разных транзакциях. If некуда ставить.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600418
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANAТогда, как писали выше, необходимо присвоить операции некий уникальный идентификатор, чтобы внешняя сторона по нему могла отклонить повторное выполнение.
ну, если я уже прочитал письмо (не положенное) то никакой идентификатор в моей башке ничего не отменит
письмо должно быть доступно для чтения только по коммитуВ случае письма необходимо избежать повторной отправки, в ситуации, когда письмо ушло, но в пункте номер 3 нам отрубили свет.

Идентификатор поможет нам отследить то, что письмо пришло на ту сторону, а значит решить задачу.

Делается это к примеру так: добавляем в тело картинку, src которой ведёт на наш трекинговый сервер.
Плюс прошиваем в нём пресловутый идентификатор. И вуаля!
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600444
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAДелается это к примеру так: добавляем в тело картинку, src которой ведёт на наш трекинговый сервер.Мой бат, к примеру, не грузит картинки, которые физически не приложены к письму, пока я не нажму кнопочку. Аутлук вроде как тоже.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600456
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

ты не читатель :)
ему НЕ ПОЛОЖЕНО читать письмо, пока транзакция не прошла (низзя чеку сообщить, что у него сняли 1000000баксов, если они не сняты по факту)
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600562
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще есть такие вещи как MTS, COM+ и Интерфейс ITransaction
При должной сноровке можно реализовать запись в БД и отправку мыла в одной транзакции.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600570
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВВообще есть такие вещи как MTS, COM+ и Интерфейс ITransaction
При должной сноровке можно реализовать запись в БД и отправку мыла в одной транзакции.главное не путать техническую транзакцию, транзакцию субд, бизнес транзакцию и распределенную транзакцию.
А написать можно все)).
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600620
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProskyANAДелается это к примеру так: добавляем в тело картинку, src которой ведёт на наш трекинговый сервер.Мой бат, к примеру, не грузит картинки, которые физически не приложены к письму, пока я не нажму кнопочку. Аутлук вроде как тоже.А огрызок с гуглом грузят.

Аутлук - это 6% по статистике, а Ваш бат давно уже и в статистику-то не попадает.

Ну и давайте всё-таки уже определимся с требованиями, а не продолжим гадать на тему вырубят электричество, письмо не откроют именно Аутлуком
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600621
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANA,

ты не читатель :)
ему НЕ ПОЛОЖЕНО читать письмо, пока транзакция не прошла (низзя чеку сообщить, что у него сняли 1000000баксов, если они не сняты по факту)
Транзакция чего не прошла? У тебя и деньги списываются, и уведомления отправляются в одной транзакции? Где ты такое видел?
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600623
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAShocker.Proпропущено...
Мой бат, к примеру, не грузит картинки, которые физически не приложены к письму, пока я не нажму кнопочку. Аутлук вроде как тоже.А огрызок с гуглом грузят.

Аутлук - это 6% по статистике, а Ваш бат давно уже и в статистику-то не попадает.

Ну и давайте всё-таки уже определимся с требованиями, а не продолжим гадать на тему вырубят электричество, письмо не откроют именно Аутлуком Так и что? Вероятность, что письмо не отправится из-за выключения электричества, гораздо меньше, чем 6%, так что какой смысл в этом src, если у него погрешность больше?
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600628
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProskyANAпропущено...
А огрызок с гуглом грузят.

Аутлук - это 6% по статистике, а Ваш бат давно уже и в статистику-то не попадает.

Ну и давайте всё-таки уже определимся с требованиями, а не продолжим гадать на тему вырубят электричество, письмо не откроют именно Аутлуком Так и что? Вероятность, что письмо не отправится из-за выключения электричества, гораздо меньше, чем 6%, так что какой смысл в этом src, если у него погрешность больше?
В том что вероятность того, что произойдёт одновременно и первое и второе, ещё меньше :)
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600641
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAViPRosskyANA,

ты не читатель :)
ему НЕ ПОЛОЖЕНО читать письмо, пока транзакция не прошла (низзя чеку сообщить, что у него сняли 1000000баксов, если они не сняты по факту)
Транзакция чего не прошла? У тебя и деньги списываются, и уведомления отправляются в одной транзакции? Где ты такое видел?

Вроде ТС такое и хотел
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600643
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAShocker.Proпропущено...
Так и что? Вероятность, что письмо не отправится из-за выключения электричества, гораздо меньше, чем 6%, так что какой смысл в этом src, если у него погрешность больше?
В том что вероятность того, что произойдёт одновременно и первое и второе, ещё меньше :)
все происходит самым нежелательным образом
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600653
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANAпропущено...

Транзакция чего не прошла? У тебя и деньги списываются, и уведомления отправляются в одной транзакции? Где ты такое видел?

Вроде ТС такое и хотелУ него все три шага связаны исключительно с отправкой, то есть с одним действием.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39600711
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatGivvПривет, может не тот форум, но вопрос примерно такой:

Как работать с ситуацией когда надо совместить запись в БД и какое-нибудь внешнее действие, типа отправки емайла.

Простой сценарий:

1. В таблицу вставляется запись с флагом Sent=0
2. По этой записи каким-то образом генерируется и отправляется емайл.
3. В записи устанавливается флаг Sent=1

Если коммитить после #1, то возможна ситуация когда емайл отправится, а Sent останется равным 0.
Если коммитить после #3, то возможна ситуация когда емайл отправится, а записи в таблице не будет вообще.


PS:
В общем случае имеется ввиду не только отправка emailа, но любое действие типа вызова вебсервиса или записи чего-нибудь в оборудовние.

В транзакции вставляем запись сразу с Sent=1, потом отправляем e-mail. Если e-mail отправлен, то коммитим транзакцию, если не отправлен, то откатываем. Но, как правильно говорили выше, тут уже от конкретных требований зависит. Потому что, например, если e-mail отправлен, то еще не факт, что он дойдет и будет прочитан .

на то оно и емейл, что никакой гарантии по определению нет
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39601441
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в чем проблема то? письмо писать как запись в таблице (в транзакции). джоб подхватывает свободные записи из таблицы писем и шлет их. Пока транзакция не завершена - запись с ней не попадет в выборку джоба и все.
...
Рейтинг: 0 / 0
Транзакция и нетранзакционное действие.
    #39601465
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79в чем проблема то?проблема в постановке задачи автором, и в том что он ни разу не делал резет 3 клавиши на компе.
Поэтому все погадали на кофейной гуще).
...
Рейтинг: 0 / 0
54 сообщений из 54, показаны все 3 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Транзакция и нетранзакционное действие.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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