Traitement des messages dans le désordre
Les services de workflow peuvent dépendre de l'ordre dans lequel sont envoyés les messages. Un service de workflow contient une ou plusieurs activités Receive et chaque activité Receive attend un message spécifique. Sans garanties particulières de remise par le transport, les messages envoyés par des clients peuvent être différés et par conséquent remis dans un ordre non prévu par le service de workflow. L'implémentation d'un service de workflow qui ne requiert aucun ordre particulier d'envoi des messages s'effectue en principe à l'aide d'une activité Parallèle. Pour un protocole d'application plus complexe, le workflow risque de se compliquer très rapidement. La fonctionnalité de traitement des messages dans le désordre dans Windows Communication Foundation (WCF) vous permet de créer un workflow de ce type, en évitant la complexité des activités Parallèles imbriquées. Le traitement des messages dans le désordre n’est possible que sur des canaux qui prennent en charge ReceiveContext, comme les liaisons MSMQ WCF.
Activation du traitement des messages dans le désordre
Le traitement des messages dans le désordre est activé en définissant la propriété AllowBufferedReceive à la valeur true
dans le WorkflowService. L'exemple suivant montre comment définir la propriété AllowBufferedReceive dans le code.
// Code: Opt-in to Buffered Receive processing...
WorkflowService service = new WorkflowService
{
Name="MyService",
Body = workflow,
AllowBufferedReceive = true
};
Vous pouvez également appliquer l'attribut AllowBufferedReceive
à un service de workflow en XAML, comme indiqué dans l'exemple suivant.
// Xaml: Opt-in to Buffered Receive processing...
<WorkflowService AllowBufferedReceive="True">
<!--the actual children activities -->
</Sequence>