Как организовать транзакцию?

Тема в разделе "Lotus - Программирование", создана пользователем GROMILA, 8 авг 2006.

Наш партнер Genesis Hackspace
  1. GROMILA

    GROMILA Well-Known Member

    Регистрация:
    8 апр 2004
    Сообщения:
    298
    Симпатии:
    0
    Необходимо синхронно изменять два документа.
    Как обеспечить надежность сего процесса?
    Например, агент вносит изменения в один из документов и по каким-то причинам происходит сбой
    (сервер недоступен, или прав не хватило, ну короче разное может быть, ну не отладили прогу ишо)
    агент не завершил операцию и эти оба документа перестали быть синхронными.

    Как бы достигнуть надежности?
    Может есть какие режимы выполнения серверного агента с возможностью отката изменений?
    Может хитрые чексуммы вводить, чтобы можно было идентифицировать сбойную операцию и возобновить при кульных условиях?

    Кто как решал поодбные проблемы?
    Расскажите плиз.
     
  2. Dikobraz Grey

    Dikobraz Grey Гость

    "В Лотус отсутствует понятие транзакции. То есть, если Вам необходимо выполнить логическую совокупность действий как одно целое, и в случае падения операции в середине – все откатить, как было – то у вас это стандартными методами не получится."
     
  3. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member
    Lotus team

    Регистрация:
    30 май 2006
    Сообщения:
    1.298
    Симпатии:
    1
    ".. и это правильно, товарищи!" При наличии репликации она (транзакция) теряет смысл, поскольку репликация осуществляется по-документно, и та пара док-тов, которая согласована в одной реплике, может не быть таковой в соседней.

    Тем не менее, если очень хочется мех-м транзакции колхозится на коленке:
    1.Запрос на изменение пишется во вспом. док-т (м.б. даже в отдельную базу - полный аналог журнала транзакций)
    2.Агент сканит эту базу, выполняет согласованную модификацию, и после успешного сохранения ВСЕХ док-тов удаляет запрос
     
  4. Dikobraz Grey

    Dikobraz Grey Гость

    И сколько это будет работать? А конфликтные документы? Нее, это не для Нотеса. У всех свои задачи
     
  5. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member
    Lotus team

    Регистрация:
    30 май 2006
    Сообщения:
    1.298
    Симпатии:
    1
    Нормально будет работать, максимум - на 30% медленнее "непосредственного" редактирования группы док-тов. А конфликтов-то, как раз будет меньше, т.к. агент ОДИН и выполняет запросы по-очереди.

    Но ты прав в том (и я тож писАл), что это годится гл.образом для нераспределенной базы, т.е. для класса приложений, где СУБД играют лучше
     
Загрузка...

Поделиться этой страницей