Транзакции с XML-файлами

2

Я ищу для реализации базы данных, как транзакции на С#. Я обрабатываю несколько файлов XML. Любой конкретный файл XML может вызывать дочерний XML файл во время обработки. Процессор начнет обработку дочернего XML файла. Если условия инициализации терпят неудачу или возникает исключение, я хочу возобновить обработку родительского XML файла. Именно по этой причине я ищу транзакцию, такую ​​как реализация, чтобы я мог откатиться. Можно ли достичь? Может ли кто-нибудь предоставить мне фрагмент кода или псевдокод?

FYI - Я использую .NET Compact Framework.

  • 0
    То, что вы описали, звучит как обработка исключений. Я не вижу, что вы пытаетесь разграничить с помощью транзакции. Вы не упоминали о внесении каких-либо изменений / записей в документы.
  • 0
    Я знаю, что этот вопрос очень старый, но я сталкиваюсь с той же проблемой. Можете ли вы повторно ответить на этот вопрос?
Теги:
compact-framework

3 ответа

2
Лучший ответ

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

В полной структуре вы могли бы, вероятно, построить что-то, используя TransactionScope и IEnlistmentNotification. Вам пришлось бы выполнить небольшую работу, чтобы все ваши действия были транзакционными, поскольку поддержка трансакций в xml отсутствует.

  • 0
    Это хорошая отправная точка. У меня есть долгий путь, чтобы реализовать транзакции в XML.
0

Может быть, вы можете попробовать использовать subversion. Существуют библиотеки для управления им с С#. Поэтому, чтобы начать транзакцию, вы только начинаете работать и откатываете назад, вы делаете откат. Согласование вашего дерева svn завершает транзакцию.

Я не знаю, слишком ли это подход. Это может быть так, но то, что вы описали, требует только некоторых свойств транзакции. В частности, вы указали, что вам нужна атомарность (т.е. Возможность отката изменений в несколько файлов одновременно). Прочность подразумевается, но фиксация получает это.

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

Изоляция либо жесткая, либо легкая. Все зависит от того, нужно ли вам одновременно поддерживать более одной транзакции. Требуется ли одновременное обновление? Если нет, просто создайте что-то для обеспечения последовательного доступа к системе, и вы закончите. Если вам нужны параллельные обновления, я боюсь, что у меня нет идей: -)

  • 0
    Шутки в сторону? Вы предлагаете, чтобы он портировал и устанавливал поставщика SCC на своем мобильном устройстве для обработки транзакционного XML-анализа?
  • 0
    :-) Хорошо - я не слишком обращал внимание на упоминание о компактной структуре. Это все еще справедливый вопрос относительно того, нужны ли ему все элементы управления транзакциями или только подмножество.
0

Без развертывания собственного компонента управления транзакциями это будет сложно реализовать.

Не можете ли вы проверить/проверить весь XML файл перед тем, как позволить вашему приложению перейти на фазу обработки?

  • 0
    COM + не существует в Windows CE
  • 0
    @ctacke - спасибо - lern2readtehquestion :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню