Question

Le modèle dont j'ai besoin pour ma solution est donc le suivant:

Je dois interroger la base de données et, en fonction d'un résultat, créer une demande pour plus de données, obtenir la réponse et la transmettre à un groupe de ports, pour lequel, en fonction d'une propriété promue, un seul des ports agira.

Cela ressemble à ceci:

Toutefois, si vous affectez "Temp Out". à un groupe de ports d’envoi, le message est envoyé à tous les ports du groupe, quels que soient les filtres définis sur chaque port. À ma connaissance, il s’agit du comportement attendu (lisez ici ).

J'ai donc exploré d'autres options, telles que l'utilisation du routage basé sur le contenu (exemple CBR), comme dans le SDK. Vous pouvez afficher cet ici .

J'ai essayé cela et supprimé complètement l'orchestration (ce n'est vraiment pas nécessaire). Cependant, il existe des erreurs de routage / abonnement majeures et, à la suite de nouvelles recherches, il semble que vous ne puissiez pas le faire si vous avez des ports sollicitant une réponse. Quelques articles sur cette ici . J'ai à peu près le même problème avec cet utilisateur.

En fin de compte, peu importe si j'utilise une orchestration ou non. Cependant, j'ai besoin d'une solution dans laquelle je puisse transmettre le message à plusieurs ports d'envoi, et je ne peux avoir qu'un seul qui utilise réellement le message et l'envoie. Cela est nécessaire pour que je puisse facilement éditer et ajouter des ports sans avoir à modifier quoi que ce soit ou à prendre des décisions de code rigides dans l'orchestration.

Était-ce utile?

La solution 2

J'ai constaté que l'exemple de modèle de RBC fonctionnait effectivement. Le problème avec le routage étaient les abonnements. Si je devais abonner un port d'envoi à un port sollicit-réponse, je devais définir le filtre BTS.SPName (nom du port d'envoi) au lieu du filtre BTS.ReceivePort. En faisant cela, le message était correctement filtré. Votre réponse aurait aussi bien fonctionné, mais cela nécessite l'utilisation d'une orchestration que j'essayais d'éviter.

Autres conseils

Vous pouvez utiliser Liaison directe sur le port d'envoi de l'orchestration pour réinjecter le message. dans la boîte de message db. En utilisant plusieurs groupes de ports, chaque groupe de ports peut ensuite s'abonner directement au type de message souhaité et filtrer sur les propriétés promues.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top