Поделиться через


Управление пересылкой сообщений (компонент Service Broker)

Механизм пересылки сообщений позволяет экземпляру SQL Server пересылать сообщения компонента Service Broker между другими двумя или более экземплярами SQL Server. При управлении экземпляром SQL Server, выполняющим пересылку сообщений, следует учитывать несколько факторов.

Обрабатывая пересылаемые и входящие сообщения, компонент Service Broker использует маршруты, указанные в базе данных msdb. После изменения маршрутов доставки пересылаемых сообщений нужно создать резервную копию базы данных msdb.

SQL Server хранит пересылаемые сообщения в памяти, в структуре данных, называемой очередью пересылаемых сообщений. Параметр конечной точки MESSAGE_FORWARDING_SIZE определяет максимальный объем памяти (в мегабайтах), которую SQL Server может использовать для хранения пересылаемых сообщений. SQL Server выделяет память для хранения пересылаемых сообщений по мере необходимости вплоть до достижения заданного предела. Получив сообщение, занесение которого в очередь пересылаемых сообщений приведет к превышению заданного предела, SQL Server отбрасывает его. Однако если крупное сообщение было фрагментировано, экземпляр SQL Server, выполняющий пересылку, не восстанавливает сообщение, а пересылает адресату фрагменты. Это позволяет успешно пересылать сообщения, объем которых превышает заданное для экземпляра SQL Server значение параметра MESSAGE_FORWARDING_SIZE.

Экземпляр SQL Server, пересылающий сообщения, часто выполняет функцию моста между двумя сетями. В этой конфигурации параметру MESSAGE_FORWARDING_SIZE конечной точки компонента Service Broker иногда нужно присвоить довольно большое значение, так как через экземпляр SQL Server проходит весь трафик, передаваемый между двумя сетями.

Сведения о хранимых сообщениях, подлежащих пересылке, выводятся в динамическом административном представлении sys.dm_broker_forwarded_messages.