Задача «Очередь сообщений»
Задача «Очередь сообщений» позволяет использовать службу очередей сообщений Майкрософт для отправки и получения сообщений между пакетами служб SQL Server Службы Integration Services или для отправления сообщений в очередь приложений, которая обрабатывается пользовательским приложением. Эти сообщения могут принимать форму простого текста, файлов или переменных и их значений.
Используя задачу «Очередь сообщений», можно координировать операции по всему предприятию. Сообщения могут быть поставлены в очередь и доставляться позже, если назначение недоступно или занято; например, задача может ставить в очередь сообщения для работающих в режиме «вне сети» переносных компьютеров торговых представителей, которые получают сообщения при подключении к сети. Можно использовать задачу очереди сообщений для следующих целей:
Отсрочка выполнения задачи до тех пор, пока не будут возвращены другие пакеты. Например, после проведения ночного обслуживания в каждой точке продаж задача «Очередь сообщений» отправляет сообщение на корпоративный компьютер. Пакет, запущенный на корпоративном компьютере, содержит задачи «Очередь сообщений», каждая из которых ожидает сообщения от конкретного сайта продаж. Когда сообщение от сайта получено, задача передает данные из этого сайта. После получения сообщений от всех сайтов пакет вычисляет сводные итоги.
Отправка файлов данных на компьютер, который их обрабатывает. Например, данные кассы ресторана могут быть отосланы в корпоративную платежную систему, где вычисляются данные о чаевых каждого официанта.
Распределение файлов по предприятию. Например, пакет может использовать задачу «Очередь сообщений» для отправки файла пакета на другой компьютер. Пакет, запущенный на целевом компьютере, использует задачу очереди сообщений для получения и сохранения пакета локально.
При получении или отправке сообщений задача «Очередь сообщений» использует один из следующих типов сообщений: файл данных, строка, строковое сообщение в переменную или переменная. Тип сообщений строковое сообщение в переменную может использоваться только при получении сообщений.
Задача использует диспетчер соединений MSMQ для подключения к очереди сообщений. Дополнительные сведения см. в разделе Диспетчер соединений MSMQ. Дополнительные сведения о службе очередей сообщений см. в библиотеке MSDN.
Задача «Очередь сообщений» требует установки служб Службы Integration Services. Некоторые компоненты SQL Server, выбранные для установки на странице Компоненты для установки и Выбор компонентов мастера установки SQL Server, производят установку не всех компонентов служб Службы Integration Services. Эти компоненты полезны для определенных задач, но функциональность служб Службы Integration Services будет ограничена. Например, параметр среды SQL Server Data Tools (SSDT) устанавливает компоненты служб Службы Integration Services, необходимые для разработки пакета, но службы Службы Integration Services не будут установлены, следовательно, задача «Очередь сообщений» не будет работать. Для обеспечения полной установки служб Службы Integration Services необходимо выбрать службы Службы Integration Services на странице Компоненты для установки. Дополнительные сведения об установке и запуске задачи «Очередь сообщений» см. в разделе Установка служб Integration Services.
Примечание |
---|
Задача «Очередь сообщений» завершается неудачно при выполнении федерального стандарта обработки данных (FIPS) 140-2, если операционная система компьютера настроена в режим FIPS и задача использует шифрование. Если задача «Очередь сообщений» не использует шифрование, то задача выполняется успешно. |
Типы сообщений
Типы сообщений, предоставляемых задачей «Очередь сообщений», можно настроить следующими способами:
Сообщение Data file указывает, что файл содержит сообщение. При получении сообщений можно настроить задачу для сохранения файла, замены существующего файла и указания пакета, из которого задача может получать сообщения.
Сообщение String указывает, что сообщение является строкой. Можно настроить задачу так, чтобы при получении сообщений сравнивать полученную строку с пользовательской строкой и выполнять операции в зависимости от результатов сравнения. Сравнение строк может быть точным, учитывать или не учитывать регистр либо использовать подстроку.
Сообщение String message to variable указывает исходное сообщение как строку, которая отправляется в целевую переменную. Можно настроить задачу для сравнения полученной строки с пользовательской строкой, используя точное сравнение с без учета регистра или сравнение подстроки. Тип сообщений доступен, только если задача получает сообщения.
Сообщение Variable содержит одну или несколько переменных. Можно настроить задачу, указав имена переменных, включенных в сообщение. При получении сообщений можно настроить задачу, указав и пакет, откуда она может получать сообщения, и переменную, которая является назначением сообщения.
Отправка сообщений
При настройке задачи «Очередь сообщений» на отправку сообщений для шифрования сообщений можно использовать один из алгоритмов шифрования, которые в данный момент поддерживаются службой очередей сообщений (алгоритмы RC2 и RC4). Оба этих алгоритма шифрования считаются сегодня криптографически слабыми по сравнению с более новыми алгоритмами, которые служба очередей сообщений еще не поддерживает. Поэтому при отправке сообщений с помощью задачи «Очередь сообщений» необходимо тщательно учитывать требования криптографии.
Получение сообщений
При получении сообщений задача «Очередь сообщений» может быть настроена следующими способами:
Пропуск сообщения или удаление сообщения из очереди.
Указание периода ожидания.
Завершение со сбоем по истечении периода ожидания.
Замена существующего файла, если сообщение хранится в Data file.
Сохранение файла сообщения под другим именем, если сообщение использует тип Data file message.
Пользовательские сообщения для ведения журнала, доступные в задаче «Очередь сообщений»
В следующей таблице перечислены пользовательские записи в журнале для задачи «Очередь сообщений». Дополнительные сведения см. в разделах Ведение журналов в службах Integration Services (SSIS) и Пользовательские сообщения для ведения журнала.
Запись журнала |
Описание |
---|---|
MSMQAfterOpen |
Указывает, что задача завершила открытие очереди сообщений. |
MSMQBeforeOpen |
Указывает, что задача приступила к открытию очереди сообщений. |
MSMQBeginReceive |
Указывает, что задача приступила к получению сообщения. |
MSMQBeginSend |
Указывает, что задача приступила к отправке сообщения. |
MSMQEndReceive |
Указывает, что задача завершила прием сообщения. |
MSMQEndSend |
Указывает, что задача завершила отправку сообщения. |
MSMQTaskInfo |
Выводит описательные сведения об этой задаче. |
MSMQTaskTimeOut |
Указывает, что время ожидания выполнения задачи истекло. |
Настройка задачи «Очередь сообщений»
Значения свойств вы можете задавать с помощью конструктора Службы SSIS или программными средствами. Дополнительные сведения о свойствах, которые можно задать в конструкторе служб Службы SSIS, см. в следующих разделах.
Дополнительные сведения о задании этих свойств программными средствами см. в документации по классу Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask в руководстве для разработчиков.
Связанные задачи
Дополнительные сведения о задании этих свойств в конструкторе служб Службы SSIS см. в разделе Задание свойств задач или контейнеров.
См. также
|