Domanda

Quindi il modello di cui ho bisogno per la mia soluzione è il seguente:

Devo eseguire il polling del database e in base a un risultato, creare una richiesta al database per ulteriori dati, ottenere la risposta e passarla a un gruppo di porte, per le quali in base a una proprietà promossa, solo una delle porte agirà.

Sembra così:

Tuttavia, se assegni " Temp Out " a un gruppo di porte di trasmissione, il messaggio viene inviato a tutte le porte del gruppo, indipendentemente dai filtri impostati su ciascuna porta. Da quanto ho capito, si tratta di un comportamento previsto (leggi qui ).

Quindi ho esplorato altre opzioni come l'uso del Content Based Routing (esempio CBR) come nell'SDK. Puoi visualizzare questo qui .

Ho provato questo e ho rimosso completamente l'orchestrazione (non è davvero necessario). Tuttavia, ci sono importanti errori di routing / abbonamento e, dopo ulteriori ricerche, sembra che non sia possibile farlo se si dispone di porte sollecita-risposta. Alcuni articoli su questo qui . Ho praticamente lo stesso problema questo utente

.

Alla fine non mi importa se uso o meno un'orchestrazione. Tuttavia, ho bisogno di una soluzione in cui posso passare il messaggio a più porte di trasmissione e posso avere solo una effettivamente utilizzare il messaggio e inviare. Questo è necessario in modo che io possa modificare e aggiungere facilmente le porte senza dover modificare nient'altro o decisioni sul codice fisso nell'orchestrazione.

È stato utile?

Soluzione 2

Ho scoperto che il modello di esempio CBR funziona davvero. Il problema con il routing erano gli abbonamenti. Se dovessi sottoscrivere una porta di trasmissione a una porta di risposta sollecitazione, avrei dovuto impostare il filtro BTS.SPName (Nome porta di invio) anziché il filtro BTS.ReceivePort. In questo modo, il messaggio è stato filtrato correttamente. Anche la tua risposta avrebbe funzionato, ma richiede l'utilizzo di un'orchestrazione che stavo cercando di evitare.

Altri suggerimenti

Puoi usare Direct Binding sulla porta di invio dell'orchestrazione per iniettare il messaggio indietro nella finestra di messaggio db. Utilizzando più gruppi di porte, ciascun gruppo di porte può quindi iscriversi direttamente al tipo di messaggio desiderato e filtrare le proprietà promosse.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top