Alternativas al uso de NTFS transaccional

Descripción breve

Microsoft recomienda encarecidamente a los desarrolladores que investiguen el uso de las alternativas descritas (o, en algunos casos, investigar otras alternativas) en lugar de adoptar una plataforma de API que puede que no esté disponible en versiones futuras de Windows.

Introducción

TxF se introdujo con Windows Vista como medio para introducir transacciones de archivos atómicos en Windows. Permite a los desarrolladores de Windows tener atomicidad transaccional para las operaciones de archivos en transacciones con un único archivo, en transacciones que implican varios archivos y en transacciones que abarcan varios orígenes, como el Registro (a través de TxR) y las bases de datos (como SQL). Aunque TxF es un conjunto eficaz de API, ha habido un interés de desarrollador extremadamente limitado en esta plataforma de API, ya que Windows Vista se debe principalmente a su complejidad y a varios matices que los desarrolladores deben tener en cuenta como parte del desarrollo de aplicaciones. Como resultado, Microsoft está considerando la desuso de las API de TxF en una versión futura de Windows para centrar los esfuerzos de desarrollo y mantenimiento en otras características y API que tienen más valor para una mayor mayoría de los clientes. En la siguiente sección se describen métodos alternativos de ejemplo para lograr resultados similares como TxF para varios tipos de escenarios de aplicación.

Alternativas a TxF por escenario

Con las limitaciones descritas anteriormente, los desarrolladores deben investigar alternativas a TxF para cubrir escenarios de aplicaciones que TxF no cumple. Aquí se describen algunas alternativas sugeridas a los usos comunes de TxF que los desarrolladores deben tener en cuenta. Tenga en cuenta que esta lista no es exhaustiva ni completa.

Aplicaciones que actualizan un único archivo con datos "similares al documento"

Muchas aplicaciones que tratan con datos "similares a documentos" tienden a cargar todo el documento en la memoria, funcionan en él y, a continuación, vuelven a escribirlos para guardar los cambios. La atomicidad necesaria aquí es que los cambios se aplican completamente o no se aplican en absoluto, ya que un estado incoherente representaría el archivo dañado. Un enfoque común consiste en escribir el documento en un nuevo archivo y, a continuación, reemplazar el archivo original por el nuevo. Un método para hacerlo es con la API ReplaceFile .

Aplicaciones que realizan actualizaciones en varios archivos o en el subárbol del Registro

Hay muchas aplicaciones que necesitan realizar de forma atómica una actualización a un conjunto de archivos y al registro. Este escenario se logra normalmente a través de una aplicación de instalador, como Windows Installer. Para obtener más información sobre Windows Installer, consulte Windows Installer.

Aplicaciones que administran un conjunto de datos estructurados

Muchas aplicaciones administran algunos conjuntos de estructuras de datos propietarias de distintos tipos como medio para almacenar datos. Un desafío importante para estas aplicaciones es el proceso de mantener la integridad de punteros o referencias internos si se produce un error durante una operación de actualización. La creación del mecanismo para esto es realmente un "problema difícil" y, por lo tanto, la mayoría de las aplicaciones se basarán en un servidor de base de datos verdadero para administrar su conjunto de datos.

Dos sugerencias para ayudar a administrar los datos estructurados son:

  • Microsoft proporciona la bandeja de entrada Del motor de almacenamiento extensible (ESE) en Windows para permitir que las aplicaciones realicen operaciones de recuperación y actualización de datos de transacciones. Para obtener más información sobre el motor de almacenamiento extensible (ESE), consulte https://msdn.microsoft.com/library/gg269259.aspx.
  • En el caso de las aplicaciones que requieren un proveedor de bases de datos más eficaz, sólido y escalable, se recomienda que los clientes consideren la posibilidad de usar la característica Filestream disponible con Microsoft SQL Server. Para obtener más información sobre secuencias de archivos SQL, consulte https://technet.microsoft.com/library/bb933993.aspx.

Aplicaciones con transacciones que implican archivos en un volumen NTFS local y tablas en una base de datos SQL externa

Hay clases de aplicaciones que tienen grandes necesidades de conjunto de datos o necesitan tener atomicidad transaccional en una operación que implique una base de datos externa y un almacenamiento local. En este escenario, se recomienda encarecidamente que los desarrolladores consideren el uso de secuencias de archivos SQL para realizar operaciones de archivos transaccionales. Para obtener más información sobre secuencias de archivos SQL, consulte https://technet.microsoft.com/library/bb933993.aspx.

TxF es un conjunto complejo y matiz de API que las aplicaciones de terceros no suelen usar. Con la posibilidad de que estas API no estén disponibles en versiones futuras de Windows y el hecho de que haya medios alternativos más sencillos para lograr muchos de los escenarios para los que se desarrolló TxF, Microsoft recomienda encarecidamente a los desarrolladores investigar esos medios alternativos en lugar de crear una dependencia de TxF en sus aplicaciones.