Имя: Пароль:
1C
 
Веб-сервисы. Распределенные транзакции
,
0 Zixxx
 
27.10.14
12:24
Как проконтролировать транзакции когда в источнике и в приемнике в рамках одного вызова пишутся данные? Нужно в момент ошибке на одной стороне, отменять транзакцию на другой стороне. Как такое можно реализовать, у кого какие мысли на этот счет?
1 SUA
 
27.10.14
12:27
Никак. Отвалился интернет и гадай завершена транзакция извне или нет.
2 SUA
 
27.10.14
12:27
не-онлайн см планы обмена
3 Asmody
 
27.10.14
12:28
Внимательно изучить следствия CAP-теоремы https://ru.wikipedia.org/wiki/%D2%E5%EE%F0%E5%EC%E0_CAP#.D0.A1.D0.BB.D0.B5.D0.B4.D1.81.D1.82.D0.B2.D0.B8.D1.8F
4 tridog
 
27.10.14
12:47
(0) Правда распределенные транзакции на 1С ваяете?
А учитываете, что вызов метода ЗафиксироватьТранзакцию() и сам может бросать исключение и отменять транзакцию?
5 Zixxx
 
27.10.14
12:51
(4) Нет, как можно своять то что не поддерживает платформа. И что в этом случае транзакция фиксируется?
6 tridog
 
27.10.14
13:48
(5) Ну... были мысли.

Если при вызове метода ЗафиксироватьТранзакцию() генерируется исключение (самой платформой) - нет конечно, откатывается.
7 Serginio1
 
27.10.14
14:11
8 Zixxx
 
27.10.14
14:20
(7) Так а смысл проверять? В момент проверки тоже может вывалиться. Да и смысла особого нет, откатывать нужно, кто контролирует процесс и т.п. Тут только пинать рег заданием.
9 Zixxx
 
27.10.14
14:22
Еще подключить обработчик ожидания не работает почему-то в методе веб сервисов, он бы мог как раз и подопнуть еще один метод сразу.
10 Serginio1
 
27.10.14
14:31
(8) Вообще это ручная технология Rest
https://ru.wikipedia.org/wiki/REST

Там смысл какой, если не получил ответа, то посылаешь еще раз. На сервере проверяешь ИД сообщения с уже существующими и если такое сообщение есть то возвращаешь ОК, в противном случае записываешь это сообщение.
11 Serginio1
 
27.10.14
14:33
12 Serginio1
 
27.10.14
14:36
10+ http://habrahabr.ru/post/144011/
(9) Для этого существуют регламентные задания