Sono un novizio di SQL Server Service Broker e sto cercando di cogliere il modo migliore per impostare Service Broker per un (apparentemente) semplice caso d'uso: voglio creare una semplice coda di lavoro, dove una applicazione rilascia oggetti di lavoro nella coda e l'applicazione separata preleva gli articoli di lavoro da quella coda e li elabora. Non è necessario che la prima applicazione recuperi i messaggi di stato dal secondo. Voglio che la coda vada in una singola istanza di Sql Server.SQL Server Service Broker: come strutturare le conversazioni per uno scenario di coda semplice?
Ciò che più mi confonde è il modo in cui le conversazioni/i dialoghi si riferiscono a questa situazione. So che è possibile inviare/ricevere messaggi solo nel contesto di una conversazione/dialogo, ma poiché non vi sono chiacchiere tra le due applicazioni, mi sento perso quando è il momento giusto per creare una nuova conversazione. Le due alternative estreme sembrano essere:
- Ogni volta che accodamento di un oggetto di lavoro, inizio una nuova conversazione. Quindi ogni conversazione finisce per avere esattamente un messaggio al suo interno.
- Al momento della distribuzione, creo manualmente una singola conversazione con durata infinita. Quando è il momento di accodare un oggetto di lavoro, lo invio sempre come parte di quella singola conversazione.
Quali sarebbero le conseguenze di una di queste rotte?
Inoltre, nel primo caso, sembra che sia necessario eseguire alcune CONVERSAZIONI FINE, in modo che Sql Server sia in grado di pulire internamente le risorse. C'è qualche indicazione su quando sarebbe il posto giusto dove inserirli? (Oppure potrebbe essere preferibile affidarsi alla fine delle conversazioni?)
Sembra che tu stia parlando di una singola coda, ma ... http://stackoverflow.com/questions/14643015/why-do-i-need-two-sql-server-service-broker-code-for-a-simple-task – cja