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


Задача «Очередь сообщений»

Задача «Очередь сообщений» позволяет использовать службу очередей сообщений Майкрософт для отправки и получения сообщений между пакетами служб SQL Server Integration Services или для отправления сообщений в очередь приложений, которая обрабатывается пользовательским приложением. Эти сообщения могут принимать форму простого текста, файлов или переменных и их значений.

Используя задачу «Очередь сообщений», можно координировать операции по всему предприятию. Сообщения могут быть поставлены в очередь и доставляться позже, если назначение недоступно или занято; например, задача может ставить в очередь сообщения для работающих в режиме «вне сети» переносных компьютеров торговых представителей, которые получают сообщения при подключении к сети. Можно использовать задачу очереди сообщений для следующих целей:

  • Отсрочка выполнения задачи до тех пор, пока не будут возвращены другие пакеты. Например, после проведения ночного обслуживания на каждом сайте продаж задача «Очередь сообщений» посылает сообщение на корпоративный компьютер. Пакет, запущенный на корпоративном компьютере, содержит задачи «Очередь сообщений», каждая из которых ожидает сообщения от конкретного сайта продаж. Когда сообщение от сайта получено, задача передает данные из этого сайта. После получения сообщений от всех сайтов пакет вычисляет сводные итоги.

  • Отправка файлов данных на компьютер, который их обрабатывает. Например, данные кассы ресторана могут быть отосланы в корпоративную платежную систему, где вычисляются данные о чаевых каждого официанта.

  • Распределение файлов по предприятию. Например, пакет может использовать задачу «Очередь сообщений» для отправки файла пакета на другой компьютер. Пакет, запущенный на целевом компьютере, использует задачу очереди сообщений для получения и сохранения пакета локально.

При получении или отправке сообщений задача «Очередь сообщений» использует один из следующих типов сообщений: файл данных, строка, строковое сообщение в переменную или переменная. Тип сообщений строковое сообщение в переменную может использоваться только при получении сообщений.

Также можно настроить задачу для использования формата сообщений SQL Server 2000.

Задача использует диспетчер соединений MSMQ для подключения к очереди сообщений. Дополнительные сведения см. в разделе Диспетчер соединений MSMQ. Дополнительные сведения о службе очередей сообщений см. в библиотеке MSDN.

Задача «Очередь сообщений» требует установки служб Integration Services. Некоторые компоненты SQL Server, выбранные для установки на странице Компоненты для установки и Выбор компонентов мастера установки SQL Server, производят установку не всех компонентов служб Integration Services. Эти компоненты полезны для определенных задач, но функциональность служб Integration Services будет ограничена. Например, параметр среды Business Intelligence Development Studio устанавливает компоненты служб Integration Services, необходимые для разработки пакета, но службы Integration Services не будут установлены, следовательно, задача «Очередь сообщений» не будет работать. Для обеспечения полной установки служб Integration Services необходимо выбрать службы Integration Services на странице Компоненты для установки. Дополнительные сведения об установке и запуске задачи «Очередь сообщений» см. в разделах Вопросы установки служб Integration Services и Особенности работы служб Integration Services в 64-разрядной среде.

ПримечаниеПримечание

Задача «Очередь сообщений» завершается неудачно при выполнении федерального стандарта обработки данных (FIPS) 140-2, если операционная система компьютера настроена в режим FIPS и задача использует шифрование. Если задача «Очередь сообщений» не использует шифрование, то задача выполняется успешно.

Типы сообщений

Типы сообщений, предоставляемых задачей «Очередь сообщений», можно настроить следующими способами:

  • Сообщение Data file указывает, что файл содержит сообщение. При получении сообщений можно настроить задачу для сохранения файла, замены существующего файла и указания пакета, из которого задача может получать сообщения.

  • Сообщение String указывает, что сообщение является строкой. Можно настроить задачу так, чтобы при получении сообщений сравнивать полученную строку с пользовательской строкой и выполнять операции в зависимости от результатов сравнения. Сравнение строк может быть точным, учитывать или не учитывать регистр либо использовать подстроку.

  • Сообщение String message to variable указывает исходное сообщение как строку, которая посылается в целевую переменную. Можно настроить задачу для сравнения полученной строки с пользовательской строкой, используя точное сравнение с без учета регистра или сравнение подстроки. Тип сообщений доступен, только если задача получает сообщения.

  • Сообщение Variable содержит одну или несколько переменных. Можно настроить задачу, указав имена переменных, включенных в сообщение. При получении сообщений можно настроить задачу, указав и пакет, откуда она может получать сообщения, и переменную, которая является назначением сообщения.

Отправка сообщений

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

Получение сообщений

При получении сообщений задача «Очередь сообщений» может быть настроена следующими способами:

  • Пропуск сообщения или удаление сообщения из очереди.

  • Указание периода ожидания.

  • Завершение со сбоем по истечении периода ожидания.

  • Замена существующего файла, если сообщение хранится в Data file.

  • Сохранение файла сообщения под другим именем, если сообщение использует тип Data file message.

Другие связанные задачи

Службы Integration Services содержат задачу, которая рассылает сообщения электронной почты.

Дополнительные сведения об этой задаче см. в разделе:

Пользовательские сообщения для ведения журнала, доступные в задаче «Очередь сообщений»

В следующей таблице перечислены пользовательские записи в журнале для задачи «Очередь сообщений». Дополнительные сведения см. в разделах Реализация ведения журналов в пакетах и Пользовательские сообщения для ведения журнала.

Запись журнала

Описание

MSMQAfterOpen

Указывает, что задача завершила открытие очереди сообщений.

MSMQBeforeOpen

Указывает, что задача приступила к открытию очереди сообщений.

MSMQBeginReceive

Указывает, что задача приступила к получению сообщения.

MSMQBeginSend

Указывает, что задача приступила к отправке сообщения.

MSMQEndReceive

Указывает, что задача завершила прием сообщения.

MSMQEndSend

Указывает, что задача завершила отправку сообщения.

MSMQTaskInfo

Выводит описательные сведения об этой задаче.

MSMQTaskTimeOut

Указывает, что время ожидания выполнения задачи истекло.

Настройка задачи «Очередь сообщений»

Свойства задаются через конструктор служб SSIS или программно.

Дополнительные сведения о свойствах, которые можно задать в конструкторе служб SSIS, см. в следующих разделах:

Дополнительные сведения об установке этих свойств в конструкторе служб SSIS см. в следующем разделе:

Программная настройка задачи «Очередь сообщений»

Дополнительные сведения об установке этих свойств программным способом см. в следующем разделе.

Значок служб Integration Services (маленький) Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загружать новейшую документацию, статьи, образцы и видеоматериалы от корпорации Майкрософт, а также лучшие решения от участников сообщества, посетите страницу Integration Services на сайтах MSDN или TechNet:

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.