Partager via


Réglage des indicateurs « Consistent » et « Done ».

Vous définissez les indicateurs consistent et done en invoquant des méthodes des interfaces IObjectContext ou IContextState. Les stratégies utilisées par ces deux interfaces diffèrent sensiblement. IObjectContext possède quatre méthodes qui lient les indicateurs consistent et done dans des combinaisons uniques, tandis que IContextState possède deux méthodes qui vous permettent de définir chaque indicateur indépendamment. Les méthodes de IObjectContext sont également exposées à travers l'objet ObjectContext.

Pour un contrôle indépendant de chaque indicateur, IContextState fournit une méthode permettant d'attribuer la valeur True ou False à l'indicateur « consistent » et une méthode permettant d'attribuer la valeur True ou False à l'indicateur Done. Ces méthodes sont respectivement SetMyTransactionVote et SetDeactivateOnReturn. L'interface IContextState comprend également des méthodes permettant de récupérer la valeur actuelle de chaque indicateur.

Lorsque vous attribuez la valeur TxCommit à la méthode SetMyTransactionVote, COM+ vérifie la présence d'une transaction. Si COM+ ne détecte pas une transaction, il génère une erreur que vous pouvez enregistrer dans un fichier journal. Par exemple, supposons que quelqu'un configure par inadvertance l'attribut de transaction de votre composant sur Non pris en charge, alors que vous vous attendiez à ce qu'il soit défini sur Requis. En définissant SetMyTransactionVote = TxCommit, vous pouvez identifier le conflit et prendre des mesures.

Le tableau suivant décrit les appels de méthode qui peuvent être utilisés pour définir les indicateurs Consistent et Done.

Indicateur Consistent Indicateur Done Méthode IObjectContext Méthodes 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

Remarque

La propriété auto-done, qui est définie au niveau de la méthode, peut affecter la manière dont les indicateurs consistent et done sont définis. Pour plus d'informations concernant la propriété auto-done, voir Activation de l'auto-done pour une méthode et Définition du bit Done.