¿Alguien puede explicar grupos de conversación en el agente de servicios?Servidor Sql Service Broker Grupos de conversación
Actualmente, estoy usando service broker para enviar mensajes de un servidor SQL a otro. En el servidor de envío, intento correlacionar los mensajes para que se procesen en serie en el lado de recepción. Según la documentación, los grupos de conversación parecen ser los más adecuados para esto, pero en el servidor receptor, los mensajes se asignan a un grupo de conversación diferente al especificado al enviar el mensaje.
Tengo buscar en la web y vi que este comportamiento parece estar previsto (http://social.msdn.microsoft.com/forums/en-US/sqlservicebroker/thread/baf48074-6804-43ab-844a-cb28a6dce02b/), pero entonces estoy confundido acerca de la utilidad de la sintaxis de (http://msdn.microsoft.com/en-us/library/ms178624.aspx)
WAITFOR(
GET CONVERSATION GROUP @conversation_group_id FROM [dbo].[ReceiveQueue]
)
Si la conversación el grupo no se encuentra con el mensaje del remitente y los mensajes enviados con el mismo ID de grupo de conversación no tienen la misma identificación de grupo de conversación en el lado de recepción, ¿cuál es el punto del código anterior?
Gracias. Esa es la mejor explicación que pude encontrar en la web. Tal vez soy solo yo, pero la documentación de Microsoft MSDN sobre esta característica parece muy ambigua. ¿Alguna sugerencia sobre cómo serializar el procesamiento de mensajes en la cola de recepción? Estoy enviando mensajes que potencialmente pueden actualizar un solo registro en el lado de recepción. Estos mensajes provienen de diferentes fuentes y, como tal, no pueden formar parte de la misma conversación. Necesito asegurarme de que los mensajes que se relacionan entre ellos en el lado de recepción se procesen en orden y en serie. –
El objetivo puede agrupar conversaciones utilizando MOVE CONVERSATION. A continuación, puede mover cualquier conversación "nueva" al grupo adecuado.Otra alternativa es invertir la iniciación del diálogo: el 'back-end' inita los diálogos (y por lo tanto controla su agrupación en su lado) y el 'front-end' envía en el * end * endpoint de los diálogos. Si el back-end no puede conocer los nombres/ubicación finales anteriores, la 'iniciación' puede ser activada por el front-end enviando un mensaje con el significado 'subscríbeme por favor en esta dirección'. La solución adecuada depende de los detalles de su escenario. Envíame un correo electrónico. –
Sí, el enfoque de la conversación por movimiento es lo que estamos buscando en este momento. La preocupación es que, dado que la conversación de movimiento bloquea el grupo de conversación objetivo y que los mensajes de su grupo de conversación bloqueen el grupo de conversación asociado, podríamos encontrarnos en una situación de punto muerto. Estamos en medio de un POC tratando de resolver esa preocupación. Gracias por la visión. –