|
По материалам статьи Marcin Policht: SQL Server 2000 DTS Part 11 - DTS Designer Tasks - the Message Queue task В этой статье мы рассмотрим задачу - Message Queue. Однако,
прежде чем мы приступим к описанию этой задачи, её
особенностей и пример её использования, давайте сначала
затратим немного времени на изучение понятия очередей
сообщений и специфику реализации таких очередей в концепции
Microsoft.
Инсталляция всех компонент создает две службы - Message
Queuing и Message Queuing Triggers, а также регистрирует
Message Queuing в базе данных Active Directory. Вы можете
увидеть это, открыв Active Directory Users and Computers, и
выбрав пункты "Advanced Features" и "Users, Groups, and
Computers as containers" в меню View, что бы отобразить на
экране состав объектов компьютера, на котором была установлена
поддержка очередей Message Queuing. Обратите внимание, что
компьютер, как объект, содержит подобъект MSMQ. Каждая public
- очередь сообщений, которую Вы определяете в поддерживающей
Message Queuing системе, будет иметь соответствующий объект
public - очереди, находящийся в узле MSMQ.
Самым распространённым сценарием использования очередей
сообщений в Data Transformation Services является
использование одного DTS пакета для формирования очереди
сообщений - Queue Sender, а другого пакета для получения
сообщений из очереди - Queue Receiver. Используется также
промежуточная система, обеспечивающая сервис Message Queuing.
Обычно каждый из этих компонент находится на отдельном
компьютере, но Вы можете разместить их всех и на том же
компьютере, где работает SQL Server 2000. Независимо от того,
какую Вы выбрали конфигурацию, компоненты Message Queuing
нужно установить на промежуточном сервере. Чтобы использовать
интеграцию с Active Directory и public - очереди, этот
компьютер должен быть в Active Directory домене. После
завершения инсталляции Message Queuing, откройте на локальном
компьютере MMC консоль Computer Management. Найдите узел
Message Queuing, который числится среди узлов Services and
Applications. Здесь Вы можете создавать private и public
очереди сообщений (если была установлена интеграция с Active
Directory). Для последующего ниже примера, создайте одну
public и одну private очередь, с именами SQLPublic и
SQLPrivate соответственно. Это можно сделать, нажав правую
кнопку мыши на папке верхнего уровня очередей (Public или
Private) и выбрав New в контекстном меню. Обратите внимание,
что public - очередь будет представляться простым именем (имя
компьютера), в то время как private имеет дополнительный
элемент (private$). Например, если сервер называется MRBIG,
очереди будут иметь имена MRBIG\SQLPublic и
MRBIG\private$\SQLPrivate. Также, Вы увидите опцию создания
транзакционной очереди, но в нашем случае, это не потребуется.
Создание public - очереди также приведет к тому, что в Active
Directory под узлом MSMQ компьютера MRBIG появится объект
SQLPublic.
Вы легко можете убедиться в том, что для каждого типа
сообщений можно определить критерии фильтрации в получающем
сообщения пакете, которые помогают определять, было ли
получено ожидаемое сообщение. Сохраните пакет, выполните его и
убедитесь, что Вы получили подтверждение его успешного
исполнения. Повторно откройте узел Message Queuing в MMC
консоли Computer Management и проверьте содержимое частной
очереди SQLPrivate. Обратите внимание, что она содержит три
сообщения, которые Вы определили в DTS пакете "Send
private".
Для каждого типа сообщений Вы можете определить необходимость удаления обработанных сообщений из очереди (мы будем использовать значение по умолчанию, которое предписывает удаление таких сообщений) и время ожидания, определяющее как долго DTS задача будет ожидать обработки и фильтрации сообщения, пред отказом (по умолчанию, не устанавливается никакого времени ожидания). Как только все задачи будут настроены, сохраните пакет, выполните его и проверьте, что он был успешно исполнен. Если Вы проверите содержимое частной очереди SQLPrivate в узле Message Queuing MMC консоли Computer Management, Вы увидите, что все сообщения были удалены (после установки флага "Remove from message queue" в диалоговом окне Properties задачи Message Queue Task, что мы только что настроили). В DTS, задача Message Queue Task не выполняет никакого преобразования (она предназначена для надежной передачи данных между базами) и обычно является дополнительным компонентом многозадачных DTS пакетов. Для рассмотрения более сложных примеров, обратитесь к Books Online. Также, Вы можете найти много полезной информации о Microsoft Message Queuing на сайте Microsoft Message Queuing Center. |
Перевод: Александра Гладченко 2004г. |