Я не уверен, что я делаю это правильно.Пользовательское подтверждение для входящих сообщений
Наша оркестровка выглядит следующим образом:
ReceiveOrder
TryScope (Long Running)
AcknowledgementScope (Atomic)
ConstructOrderAckMessage
TransformOrderToAck (using a map)
SendOrderAckToMessageQueue
AtomicWebServiceScope
ImportOrderToDBExpression
Construct and send message to another process
CatchException
ConstructErrorExpression
HandleExceptionStartOrchestration
Когда мы проверили это около 6000 заказов, мы заметили, что все они привели в сообщении подтверждения (SendOrderAckToMessageQueue
). Подтверждение представляет собой простой XML, основанный на схеме, предоставленной экипажем, который отправляет заказ на эту оркестровку.
Однако не все из них были импортированы в базу данных (ImportOrderToDBExpression
) (около 45). На самом деле, нет ошибок или сбоев или приостановленных экземпляров любого рода. В заказах, которые не импортировались, нет ничего необычного. Если это не удавалось, оно делало это тихо.
Обратите внимание, что часть AcknowledgementScope
- это что-то добавленное недавно; до этого все заказы были успешно импортированы.
Это потому, что у меня есть область, установленная неправильно в этой оркестровке? Где еще может быть проблема? Есть ли лучший способ отправить подтверждение в дурацкое доказательство? Спасибо за любой совет.
Как выполняется InportOderToDBExpression? Это через порт отправки или вы что-то делаете в коде? – Dijkgraaf
Также вы отправляете сообщение Ack перед вставкой. Также почему вы используете Atomic? – Dijkgraaf
Спасибо @Dijkgraaf. ImportOrder выполняется с использованием SP, вызванного из .DLL, на который ссылается проект приложения BizTalk. Не задействован порт отправки. Все это делается с помощью кода в этом выражении. Требование было отправить подтверждение, как только поступило входящее сообщение. Нет особых причин для атомной сферы. – FMFF