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.