Establecer las marcas coherentes y realizadas
Para establecer las marcas coherentes y realizadas, se invocan métodos en las interfaces IObjectContext o IContextState. Las estrategias usadas por estas dos interfaces difieren significativamente. IObjectContext tiene cuatro métodos que vinculan marcas coherentes y realizadas juntas en combinaciones únicas, mientras que IContextState tiene dos métodos que permiten establecer cada marca de forma independiente. Los métodos de IObjectContext también se exponen a través del objeto ObjectContext.
Para el control independiente de cada marca, IContextState, proporciona un método para establecer la marca coherente en True o False y un método para establecer la marca realizada en True o False. Estos métodos son SetMyTransactionVote y SetDeactivateOnReturn, respectivamente. La interfaz IContextState también incluye métodos para recuperar el valor actual de cada marca.
Al establecer el valor del método SetMyTransactionVote en TxCommit, COM+ comprueba la presencia de una transacción. Si COM+ no detecta una transacción, genera un error que puede capturar en un archivo de registro. Por ejemplo, supongamos que alguien configura accidentalmente el atributo de transacción del componente en No compatible, pero esperaba que se establezca en Obligatorio. Al establecer SetMyTransactionVote = TxCommit, puede identificar el conflicto y tomar medidas.
En la tabla siguiente se describen las llamadas al método que se pueden usar para establecer las marcas coherentes y realizadas.
Marca coherente | Marca realizada | Método IObjectContext | Métodos IContextState |
---|---|---|---|
True |
False |
EnableCommit |
SetMyTransactionVote txVote = TxCommit SetDeactivateOnReturn bDeactivate = False |
False |
False |
DisableCommit |
SetMyTransactionVote txVote = TxAbort SetDeactivateOnReturn bDeactivate = False |
False |
True |
SetAbort |
SetMyTransactionVote txVote = TxAbort SetDeactivateOnReturn bDeactivate = True |
True |
True |
SetComplete |
SetMyTransactionVote txVote = TxCommit SetDeactivateOnReturn bDeactivate = True |
Nota:
La propiedad auto-done, que se establece en el nivel de método, puede afectar a cómo se establecen las marcas coherentes y realizadas. Para obtener más información sobre la propiedad auto-done, consulte Habilitación de Auto-Done para un método y Establecimiento del bit realizado.