Управление состоянием
Приложение, которое хранит сведения о состоянии, обычно сохраняет состояние в таблицах базы данных. Поскольку каждая группа сообщений обладает уникальным идентификатором, этот идентификатор обычно используется в качестве ключа для таблицы состояний. Компонент Service Broker также обеспечивает хранение сообщений для приложений, которым необходимо сохранять точные копии полученных и отправленных сообщений.
Для многих приложений не нужны сведения о состоянии. Обычно приложение сохраняет сведения о состоянии, если в задаче участвует несколько сообщений, и имеются сведения о задаче, которые нельзя сохранить в текущих таблицах для базы данных.
Например, приложению, которое ищет и возвращает сведения о клиентах, не нужны сведения о состоянии, и оно не использует таблицу состояний. С другой стороны, приложение, управляющее выполнением заказов, создает запросы для нескольких других служб. Программа, которая координирует запросы к другим службам, часто использует таблицу состояний для отслеживания запросов. Приложение обновляет таблицы данных и очищает таблицу состояний, когда все запросы успешно выполняются. Если запрос возвращает ошибку, приложение повторно отправляет запрос или использует таблицу состояний, чтобы отправить компенсирующий запрос.
Приложение также может использовать таблицу состояний для аудита или ведения журнала. Приложение сохраняет в таблице состояний важные сведения о каждом запросе. В этом случае приложение не удаляет сведения в таблице состояний после завершения диалога.
Некоторым приложениям может понадобиться точная копия сообщений, отправленных и полученных за время, пока диалог был активным. Для таких случаев компонент Service Broker обеспечивает хранение сообщений.
См. также