Транзакционная NTFS

Поделись знанием:
Перейти к: навигация, поиск

Транзакционная NTFS (TxF) — технология в Windows Vista и последующих операционных системах, позволяющая производить файловые операции на разделе с файловой системой NTFS при помощи транзакций, обеспечивая поддержку семантики атомарности, согласованности, изолированности и надёжности (ACID). Технология позволяет производить атомарные операции над файлом, над несколькими файлами и над несколькими источниками данных, такими, как реестр и базы данных. Технология призвана повышать надёжность создаваемых приложений, способствуя поддержанию целостности данных, и упрощать их разработку благодаря значительному уменьшению количества кода обработки ошибок.



Менеджер транзакций

Менеджер транзакций ядра (KTM) реализует транзакционную NTFS и транзакционный реестр (TxR). Для разработки приложений, выполняющих транзакции с иными ресурсами, необходимо разработать сервис поддержки транзакций, также называемый менеджером ресурсов. Приложения COM+ должны использовать свой нативный менеджер транзакций.

Менеджер транзакций ядра может работать непосредственно с координатором распределённых транзакций (DTC), что даёт возможность приложениям, работающим с DTC, объединять транзакционные файловые операции с операциями других транзакционных технологий в одну транзакцию.

Программный интерфейс

Типичное использование транзакционной NTFS состоит из следующих шагов:

  • создание транзакции;
  • получение дескриптора файла (все операции с использованием данного дескриптора будут транзакционными);
  • внесение изменений в файл или файлы;
  • закрытие всех файловых дескрипторов;
  • подтверждение или откат транзакции.

Для операций, работающих с дескрипторами, используются обычные файловые функции Win32 API (например, WriteFile). Для операций, использующих имена файлов, имеются явные транзакционные функции.

Некоторые транзакционные функции
Транзакционная функция Нетранзакционный аналог Описание
CreateTransaction Создание транзакции
CreateFileTransacted CreateFile Создание (открытие) файла
CopyFileTransacted CopyFileEx Копирование файла
MoveFileTransacted MoveFileWithProgress Перемещение файла или каталога
DeleteFileTransacted DeleteFile Удаление файла
CreateDirectoryTransacted CreateDirectoryEx Создание каталога
RemoveDirectoryTransacted RemoveDirectory Удаление каталога
RollbackTransaction Откат транзакции
CommitTransaction Фиксация транзакции

Другим способом является использование TxF через DTC. Для этого необходимо:

  • открыть менеджер транзакций (DTC), создать транзакцию;
  • из интерфейса DTC ITransaction получить интерфейс IKernelTransaction;
  • получить дескриптор транзакции KTM и использовать его в последующих транзакционных файловых операциях;
  • подтвердить или откатить транзакцию DTC.

Однако Microsoft настоятельно не рекомендует разработчикам использовать TxF в приложениях и предупреждает, что технология может быть недоступна в будущих версиях Microsoft Windows.

Напишите отзыв о статье "Транзакционная NTFS"

Ссылки

  • [msdn.microsoft.com/en-us/library/windows/desktop/bb968806.aspx Transactional NTFS (TxF) (Windows)] (англ.). Dev Center - Desktop. Microsoft (16 October 2012). Проверено 3 декабря 2012. [www.webcitation.org/6DufuWjEK Архивировано из первоисточника 24 января 2013].
  • [msdn.microsoft.com/en-us/library/bb986748.aspx Kernel Transaction Manager] (англ.). MSDN Library. Microsoft (16 October 2012). Проверено 3 декабря 2012. [www.webcitation.org/6DufvtL19 Архивировано из первоисточника 24 января 2013].
  • Jason Olson. [msdn.microsoft.com/en-us/magazine/cc163388.aspx Enhance Your Apps With File System Transactions] (англ.). MSDN Magazine. Microsoft (July 2007). Проверено 3 декабря 2012. [www.webcitation.org/6DufwYrAj Архивировано из первоисточника 24 января 2013].

Отрывок, характеризующий Транзакционная NTFS

– Я думаю, что лучше обратиться к этому генералу, – сказала m lle Bourienne, – и я уверена, что вам будет оказано должное уважение.
Княжна Марья читала бумагу, и сухие рыдания задергали ее лицо.
– Через кого вы получили это? – сказала она.
– Вероятно, узнали, что я француженка по имени, – краснея, сказала m lle Bourienne.
Княжна Марья с бумагой в руке встала от окна и с бледным лицом вышла из комнаты и пошла в бывший кабинет князя Андрея.
– Дуняша, позовите ко мне Алпатыча, Дронушку, кого нибудь, – сказала княжна Марья, – и скажите Амалье Карловне, чтобы она не входила ко мне, – прибавила она, услыхав голос m lle Bourienne. – Поскорее ехать! Ехать скорее! – говорила княжна Марья, ужасаясь мысли о том, что она могла остаться во власти французов.
«Чтобы князь Андрей знал, что она во власти французов! Чтоб она, дочь князя Николая Андреича Болконского, просила господина генерала Рамо оказать ей покровительство и пользовалась его благодеяниями! – Эта мысль приводила ее в ужас, заставляла ее содрогаться, краснеть и чувствовать еще не испытанные ею припадки злобы и гордости. Все, что только было тяжелого и, главное, оскорбительного в ее положении, живо представлялось ей. «Они, французы, поселятся в этом доме; господин генерал Рамо займет кабинет князя Андрея; будет для забавы перебирать и читать его письма и бумаги. M lle Bourienne lui fera les honneurs de Богучарово. [Мадемуазель Бурьен будет принимать его с почестями в Богучарове.] Мне дадут комнатку из милости; солдаты разорят свежую могилу отца, чтобы снять с него кресты и звезды; они мне будут рассказывать о победах над русскими, будут притворно выражать сочувствие моему горю… – думала княжна Марья не своими мыслями, но чувствуя себя обязанной думать за себя мыслями своего отца и брата. Для нее лично было все равно, где бы ни оставаться и что бы с ней ни было; но она чувствовала себя вместе с тем представительницей своего покойного отца и князя Андрея. Она невольно думала их мыслями и чувствовала их чувствами. Что бы они сказали, что бы они сделали теперь, то самое она чувствовала необходимым сделать. Она пошла в кабинет князя Андрея и, стараясь проникнуться его мыслями, обдумывала свое положение.
Требования жизни, которые она считала уничтоженными со смертью отца, вдруг с новой, еще неизвестной силой возникли перед княжной Марьей и охватили ее. Взволнованная, красная, она ходила по комнате, требуя к себе то Алпатыча, то Михаила Ивановича, то Тихона, то Дрона. Дуняша, няня и все девушки ничего не могли сказать о том, в какой мере справедливо было то, что объявила m lle Bourienne. Алпатыча не было дома: он уехал к начальству. Призванный Михаил Иваныч, архитектор, явившийся к княжне Марье с заспанными глазами, ничего не мог сказать ей. Он точно с той же улыбкой согласия, с которой он привык в продолжение пятнадцати лет отвечать, не выражая своего мнения, на обращения старого князя, отвечал на вопросы княжны Марьи, так что ничего определенного нельзя было вывести из его ответов. Призванный старый камердинер Тихон, с опавшим и осунувшимся лицом, носившим на себе отпечаток неизлечимого горя, отвечал «слушаю с» на все вопросы княжны Марьи и едва удерживался от рыданий, глядя на нее.
Наконец вошел в комнату староста Дрон и, низко поклонившись княжне, остановился у притолоки.
Княжна Марья прошлась по комнате и остановилась против него.