¿Es posible garantizar la entrega ordenada cuando se usa WCF netMSMQbinding?Entrega ordenada con netMSMQbinding
Estamos colocando un comando de inserción seguido de una serie de comandos de actualización en la misma cola, y ocasionalmente una de las actualizaciones supera a la inserción.
Al haber agregado un registro extenso, está claro que se están agregando a la cola en el orden correcto y se están procesando en un orden diferente.
He logrado buscar en Google un par de artículos que afirman que se espera este comportamiento, pero parece que debe ser posible configurarlo de alguna manera.
Nuestros colas son transaccionales, por lo que no creo que la adición de números de secuencia y resecuenciación en el destino que se va a trabajar, ya que ello perder transaccionalidad
Si añado el atributo [DeliveryRequirements(RequireOrderedDelivery=true, QueuedDeliveryRequirements=QueuedDeliveryRequirementsMode.Require)]
me sale el siguiente error :
The DeliveryRequirementsAttribute on contract 'IService' specifies a QueuedDeliveryRequirements value of NotAllowed. However, the configured binding for this contract specifies that it does support queued delivery. A queued binding may not be used with this contract.
no tengo ni idea de por qué tenemos este error, ya que todo "parece" ser configurado correctamente. No he logrado encontrar ninguna confirmación de que esta configuración esté permitida para MSMQ, ya que parece ser una configuración de WS-RM, y AFAIK netMSMQBinding no es compatible con WS-RM.
que presentaron un error de conexión en este tema, no es exactamente el mismo problema que tenías, pero lo suficientemente cerca ... También tengo una solución en el error de conexión. Compruébelo aquí: https://connect.microsoft.com/VisualStudio/feedback/details/1107645/wcf-receives-messages-from-msmq-out-of-order –