BizTalk BAM - Как отслеживать разделенные сообщения
Я хочу, чтобы BAM показывал
- IntegrationStart
- MessageType
- Наименование услуги
- ServiceStart
- ServiceEnd
- IntegrationDuration
Сообщения поступают с одного порта приема и передаются в оркестровку, по одному сообщению на оркестровку, которая отправляет их службе WCF.
Я знаю, как решить этот сценарий, если у меня есть одно входящее сообщение, которое проходит весь путь (другой InterchangeID), но у меня есть пакет, который конвейер приема разделяет на отдельные сообщения (с тем же InterchangeID).
Я не могу использовать уникальное значение в сообщении, поскольку в пакете может быть более одного значения.
Я думаю, мне нужно использовать отношения, но как?
Какой идентификатор я могу связать?
2 ответа
Я использовал корабль связей с interchangeID, и теперь все работает нормально.
Я также создал представление, поэтому мне не нужно было изменять уже созданные отчеты служб отчетов.
Когда у меня не было связи, я мог получить "Нарушение первичного ключа", потому что движок Bam пытался вставить записи с тем же ключом (после разделения в конвейере приема все сообщения имеют одинаковый interchangeID).
Посмотрите на это - http://generatetypedbamapi.codeplex.com/. Сгенерированный API имеет методы для создания отношений между действиями и сделает большую работу за вас...
Я бы посоветовал прочитать и эту книгу - http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470046422.html. Глава Даррена о БАМе особенно хороша и имеет четкие примеры...