Откат транзакции и веб-сервисы

Попробуйте

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    self.definesPresentationContext = YES;
 }

- (void)viewDidDisappear:(BOOL)animated {
    self.definesPresentationContext = NO;
    [super viewDidDisappear:animated];
 }

, он отлично работает для меня, но не уверен, что это хорошее решение или нет?

13
задан atas 12 January 2009 в 12:34
поделиться

3 ответа

Много методов развиваются, но проблема все еще достаточно ультрасовременна, что процесс стандартизации еще не предоставил нам полностью портативное решение.

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

WS - В и протоколы WS-BA является ведущими стандартами для транзакционных веб-сервисов. К сожалению, они указывают протокол только, не привязки к языку. Другими словами, нет никакого стандартного API на уровне языка программирования. Для Java ближайшей вещью является JSR-156, но это еще не готово.

Затем проблема становится: как связать EJB (т.е. JTA/XA) транзакция к WS один. Так как модели, используемые WS - В и протоколы XA, тесно связаны, это может быть достигнуто посредством моста протокола. Несколько серверов приложений предоставляют чему-то один эти строки. JBoss представил, их в JavaOne - видят http://anonsvn.jboss.org/repos/labs/labs/jbosstm/workspace/jhalliday/txbridge/BOF-4182.odp

Примечание, что протокол, соединяющий технику мостом, может также использоваться наоборот, для разрешения EJB, который использует, например, бэкенд базы данных XA, чтобы быть выставленным как транзакционный веб-сервис.

Однако модель блокировки, используемая транзакциями двухфазной фиксации, действительно только подходит, если коротко, жил транзакции в том же домене управления. Если Ваши услуги будут работать в том же центре обработки данных компании, то Вы, вероятно, выйдете сухим из воды. Для более широкого распределения, быть этим географический или административный, Вы, вероятно, хотите посмотреть на WS-BA, протокол транзакций веб-сервиса, специально предназначенный для такого использования.

WS-BA использует основанную на компенсации модель, которая более тверда к программе. Это по существу основано на технике, которую Вы упоминаете: эффект сервисных методов отменен путем вызова метода компенсации. Это может быть хитро для разбираний, но интерн JBoss сделал довольно хорошую платформу аннотации, которая позволяет Вам определять методы компенсации с минимальным усилием и управлять ими автоматически. Это не стандартизировано, но определенно стоящее проверки при выборе этого подхода: http://www.jboss.org/jbosstm/baframework

15
ответ дан 1 December 2019 в 22:08
поделиться

Координация веб-сервисов (WS-C) и Транзакция веб-сервисов (WST), спецификации, разработанные Microsoft, Системами BEA и IBM, используются в таких случаях, как я знаю. Можно запустить с чтения транзакции веб-сервисов и сравнение А протоколов транзакций веб-сервисов статьи, предоставленные IBM для прояснения.

6
ответ дан 1 December 2019 в 22:08
поделиться

На самом деле, обычно вам нужен не только настраиваемый метод отката, но и настраиваемый метод фиксации. В противном случае вы столкнетесь с проблемами, подобными тем, которые встречаются в стандарте WS-BA.

Просто ознакомьтесь с http://www.atomikos.com/Publications/TryCancelConfirm для получения подробной статьи. Упомянутые там функции доступны в Atomikos ExtremeTransactions ... Этот продукт также поддерживает транзакции веб-сервисов в классическом стиле «ACID».

HTH

Guy

Отказ от ответственности: я работаю на Atomikos

2
ответ дан 1 December 2019 в 22:08
поделиться
Другие вопросы по тегам:

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