Транзакційна NTFS (TxF) — технологія у Windows Vista і наступних операційних системах, яка дозволяє проводити файлові операції на розділі з файловою системою NTFS за допомогою транзакцій, забезпечуючи підтримку семантики атомарності, узгодженості, ізольованості і надійності (ACID). Технологія дозволяє виробляти атомарні операції над файлом, над декількома файлами і над декількома джерелами даних, такими, як реєстр і бази даних. Технологія покликана підвищувати надійність створюваних додатків, сприяючи підтриманню цілісності даних, і спрощувати їх розробку, завдяки значному зменшенню кількості коду обробки помилок.
Однак Microsoft настійно не рекомендує розробникам використовувати TxF в додатках і попереджає, що технологія може бути недоступною в майбутніх версіях Microsoft Windows.
Менеджер транзакцій Менеджер транзакцій ядра (KTM) реалізує транзакційну NTFS і транзакційний реєстр (TxR). Для розробки додатків, що виконують транзакції з іншими ресурсами, необхідно розробити сервіс підтримки транзакцій, також званий менеджером ресурсів. Додатки COM+ повинні використовувати свій рідний менеджер транзакцій.
Менеджер транзакцій ядра може працювати безпосередньо з координатором розподілених транзакцій (DTC), що дає можливість додаткам, що працюють з DTC, об'єднувати транзакційні файлові операції з операціями інших діалогових технологій в одну транзакцію.
Програмний інтерфейс Типове використання транзакційної NTFS складається з наступних кроків: створення транзакції; отримання дескриптора файлу (всі операції з використанням даного дескриптора будуть транзакційними); внесення змін у файл або файли; закриття всіх файлових дескрипторів; підтвердження або відкат транзакції.
Для операцій, що працюють з дескрипторами, використовуються звичайні файлові функції Win32 API (наприклад, WriteFile). Для операцій, які використовують імена файлів, існують явні транзакційні функції. +Деякі транзакційні функції Транзакційна функціяНетранзакционный аналогОпис CreateTransactionСтворення транзакції CreateFileTransactedCreateFileСтворення (відкриття) файлу CopyFileTransactedCopyFileExКопіювання файлу MoveFileTransactedMoveFileWithProgressПереміщення файлу або каталогу DeleteFileTransactedDeleteFileВидалення файлу CreateDirectoryTransactedCreateDirectoryExСтворення каталогу RemoveDirectoryTransactedRemoveDirectoryВидалення каталогу RollbackTransactionВідкат транзакції CommitTransactionФіксація транзакції
Іншим способом є використання TxF через DTC. Для цього необхідно: відкрити менеджер транзакцій (DTC), створити транзакцію; з інтерфейсу DTC ITransaction отримати інтерфейс IKernelTransaction; отримати дескриптор транзакції KTM і використовувати його в наступних транзакційних файлових операціях; підтвердити або відкотити транзакцію DTC.
Примітки
Посилання