Отправляет email-рассылки с помощью сервиса Sendsay

MS SQL Server

  Все выпуски  

MS SQL Server - дело тонкое...


Информационный Канал Subscribe.Ru


#188<<  #189

СОДЕРЖАНИЕ

1.СОВЕТЫ
1.1.SQL Server 2000 DTS. Часть 11. Задачи DTS Designer. Задача Message Queue
2.ССЫЛКИ НА СТАТЬИ
2.1.Новые и обновлённые технические статьи Microsoft
2.2.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа

СОВЕТЫ

SQL Server 2000 DTS. Часть 11. Задачи DTS Designer. Задача Message Queue

По материалам статьи Marcin Policht: SQL Server 2000 DTS Part 11 - DTS Designer Tasks - the Message Queue task

В Этой статье мы рассмотрим задачу - Message Queue. Однако, прежде чем мы приступим к описанию этой задачи, её особенностей и пример её использования, давайте сначала затратим немного времени на изучение понятия очередей сообщений и специфику реализации таких очередей в концепции Microsoft.
Главной целью при организации очередей сообщений является обеспечение надежного обмена данными между распределенным (включая гетерогенные) системами, которые не могут одновременно работать с одним и тем же ресурсом. Очереди применяются в тех случаях, когда необходимая для работы информация запрашивается из источника данных, но нет гарантии её доставки из-за возможных проблем со связью или временной недоступностью получателя данных. Так же, очереди позволяют преодолевать различия в механизмах обработки сообщений разными системами, и снижают риски чрезмерной утилизации ресурсов получателя сообщений из-за большого их числа. Управляемые очереди позволяют балансировать нагрузку в конфигурациях, где несколько получателей могут работать с одной очередью и обрабатывать любое сообщение из этой очереди.
Очереди сообщений появились в Windows NT 4.0 в составе дополнения Option Pack, а в Windows 2000 они уже были включены как стандартный компонент операционной системы (доступный в апплете Add/Remove Programs в Control Panel). Инсталляция очередей в Windows XP состоит из следующих элементов:

  • Active Directory Integration (для компьютеров, входящих в Active Directory домен Windows 2000/2003) - обеспечивает представление public - очередей сообщений (в противоположность private - очередям, которые не представлены в Active Directory) как узлов объектов, располагающихся под узлом Active Directory MSMQ.
  • Common - содержит основные функциональные возможности и распределяет локальную память для сообщений.
  • MSMQ HTTP Support - позволяет посылать и получать сообщения по протоколу HTTP (параметры настройки proxy с перестраиваемой в утилите proxycfg.exe конфигурацией). Эта опция использует расширение Message Queuing ISAPI, имеющееся в составе Internet Information Server (управляется посредством MMC консоли IIS Administrator).
  • Triggers - позволяет вызывать исполнение кода COM компонент (или исполнение программ) в ответ на полученное сообщение.

Инсталляция всех компонент создает две службы - 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.
Чтобы устанавливать Message Queuing на Windows 2003 сервере, запустите Windows Component Wizard (нажав кнопку Add/Remove Windows Components), входящий в утилиту Add or Remove Programs из состава Control Panel. В первом окне мастера перейдите на узел Application Server и нажмите кнопку Details, чтобы отобразились все его подкомпоненты, и там Вы сможете выбрать опцию Message Queuing. В дополнение к компонентам, доступным в Windows XP, для этой операционной системы Вы сможете установить:

  • Downlevel Client Support - обеспечивает поддержку Active Directory для клиентов не поддерживающих AD. Это может потребовать изменения разрешений в Active Directory, если служба Message Queuing такого клиента работает в контексте безопасности учетной записи локальной системы.
  • Routing Support - включает механизм промежуточного накопления и маршрутизации сообщений, использующий хранящуюся в Active Directory информацию.

Самым распространённым сценарием использования очередей сообщений в 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.
Далее, в SQL Server Enterprise Manager на SQL Server, используемый в качестве отправителя сообщений, запустите DTS Designer. Создайте новый пакет с именем "MQ Sender" и добавьте в него одну - единственную задачу Message Queue (из меню Task или перетащите с левой инструментальной панели). В диалоговом окне Properties задачи Message Queue Task, впишите описание (например "Send private"), из раскрывающегося списка Message выберете Send message, и укажите в качестве имени очереди: MRBIG\private$\SQLPrivate. В области Messages to be sent, создайте следующие типы сообщений:

  • String Message - обычно используется для уведомления получателя об определенных событиях. В нашем случае, просто напишите "Moe", как содержание сообщения.
  • Global Variable Message - обычно используется для обмена данными между двумя пакетами. В нашем случае, создайте новую глобальную переменную (кнопка "Create Global Variable" доступна в том же самом диалоговом окне) с именем gvMQPriv, типом String и значением "LARRY"
  • Data File Message - обычно используется для отсылки файлов компьютеру-получателю. В нашем случае, создайте текстовый файл в каталоге C:\Windows, и назовите его "Curly.txt". Для нашего примера, его содержание является несущественным.

Вы легко можете убедиться в том, что для каждого типа сообщений можно определить критерии фильтрации в получающем сообщения пакете, которые помогают определять, было ли получено ожидаемое сообщение. Сохраните пакет, выполните его и убедитесь, что Вы получили подтверждение его успешного исполнения. Повторно откройте узел Message Queuing в MMC консоли Computer Management и проверьте содержимое частной очереди SQLPrivate. Обратите внимание, что она содержит три сообщения, которые Вы определили в DTS пакете "Send private".
Вы легко можете создать необходимый для этого пакет (или использовать тот же пакет, только добавив ещё одну задачу Message Queue Task), которая будет посылать те же самые три типа сообщений в public - очередь. Чтобы сделать это, Вы должны определить получающую сообщения очередь как MRBIG\SQLPublic. Кроме того, в отличие от частных очередей, во время выполнения пакета Вы должны иметь возможность обращаться к информации, хранимой в Active Directory. Поэтому важно убедиться, что Вы имеете устойчивую связь с одним из контроллеров домена Windows 2000/2003.
Теперь, когда сообщения сохранены в соответствующих очередях, давайте рассмотрим способ их получения. Запустите DTS Designer в Enterprise Manager получающего сообщения SQL Server и создайте новый пакет с именем "MQ Receiver". Добавьте в него три задачи Message Queue Task. Для каждой из них выберите из раскрывающегося списка опцию "Receive messages", установите название очереди как MRBIG\private$\SQLPrivate, и укажите следующие описания и параметры конфигурации:

  • "Receive private string" - в списке Message type выберите "String Message". Вам будет предложено несколько вариантов фильтрации - None, Exact match, Ignore case и Containing. None не будет фильтровать ни какие принимаемые строки сообщения из частной очереди, которую Вы определили, в то время как остальные три будут сравнивать строки с текстом, указанным в текстовое поле Compare string. Вы можете экспериментировать с каждым из этих вариантов, набрав например: "Moe", "moe", "Mo", или выбрать None.
  • "Receive private global variable" - в списке Message type выберите "Global Variable Message". Здесь также имеется несколько вариантов фильтрации - No filter, From package и From Version. Последние два позволяют Вам подсоединяться к SQL Server, на котором был определен DTS пакет "Send private", выбрать хранилище пакетов (SQL Server, SQL Server Meta Data Services или Structured Storage File) и выбрать имя пакета или его необходимую версию. В нашем случае, просто выберите DTS пакет "Send private".
  • "Receive private file" - в списке Message type выберите "Data File Message", введите имя файла в текстовое поле "Save file as" (например: "CurlyOut.txt"), и пометьте переключатель, указывающий на то, должен ли конечный файл быть перезаписан, если такой уже существует. Вы увидите те же самые три варианта фильтрации, которые были у типа сообщений "Global Variable Message". Чтобы завершать настройку, укажите в качестве 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.

[В начало]

ССЫЛКИ НА СТАТЬИ

Статьи на русском языке

Кластеры SQL Server
Брайан Найт
Шесть шагов к созданию отказоустойчивой системы... Немного найдется вещей, которые беспокоят администраторов баз данных больше, чем кластеры SQL Server, отчасти потому, что кластеризация в SQL Server 7.0 и более ранних версиях была достаточно сложной...

[В начало]

Новые и обновлённые технические статьи Microsoft

BUG: You may receive an error message when you try to install SQL Server Desktop Engine (Windows) or SQL Server Desktop Engine SP2 or later
FIX: Internet Explorer may stop responding or you may receive an error message when you try to connect to Analysis Services by using HTTP or HTTPS
FIX: When you run a program or a Web browser script that uses the Command object in the ADO programming interface to run a SQL Server stored procedure, you may receive an "EXECUTE permission denied on object..." error message in SQL Server 2000
FIX: When you use Transact-SQL cursor variables to perform operations that have large iterations, memory leaks may occur in SQL Server 2000
FIX: You cannot exclude members of the computer Administrators group from the OLAP Administrators group
How to manually activate a report server instance by using Rsactivate
HOW TO: Control access to a database on a Web server in Windows Server 2003
HOW TO: Obtain and Install SQL Server 2000 Desktop Engine (MSDE 2000)
HOW TO: Replicate Between Computers Running SQL Server in Non-Trusted Domains or Across the Internet
INF: Frequently Asked Questions - SQL Server 7.0 - SQL Setup
INF: How to Monitor SQL Server 2000 Blocking
INF: How to Monitor SQL Server 7.0 Blocking
INF: The versions of Teradata that are supported by Analysis Services
INF: Understanding and Resolving SQL Server 7.0 or 2000 Blocking Problems
New naming schema for Microsoft SQL Server software update packages
PRB: Errors May Occur When You Use SQL Server 2000 to Save a DTS Package as a Visual Basic File
PRB: SQL Server 2000 Installation Fails with "...previous program installation..." Error Message
PRB: SQL Server Only Uses Two GB of Memory Even Though the AWE Option is Enabled
You may receive an error message when you try to restore a SQL Server 7.0 database backup on an instance of SQL Server 2000

[В начало]

Англоязычные статьи

Introduction to MSSQL Server 2000 Analysis Services: Putting Actions to Work in Regular Cubes
William Pearson
In this article, we will examine Actions, a powerful feature in MSAS that allows information consumers to go beyond the robust OLAP perspective offered by the application, and to "step outside" for related information, or to generate commands or initialize programs, without leaving their current analysis focus. As we shall see, Actions can be structured into the cube by the developer, to allow users to perform these extended activities from various vantage points, with a simple right-click of the mouse. This saves analysts and other consumers time, as the complementary information can be "linked" through the Action design for them, and, perhaps more importantly, because they can perform the Actions without leaving their current position within the analysis they are performing in MSAS
SQL Server 2000 DTS Part 11 - DTS Designer Tasks - the Message Queue task
Marcin Policht
It is finally time to complete our coverage of DTS tasks - the only remaining one that we have not presented yet is the Message Queue task. However, before we describe its features and provide an example demonstrating their use, let's first spend some time discussing the concept of message queuing and its Microsoft-specific implementation
Simplifying Your Application Development with the SQL MERGE Statement
Roman B. Melnyk and Paul C. Zikopoulos
Today's efficient businesses strive to balance the cost savings of a just-in-time (JIT) inventory system with the potential for lost sales resulting from stock-out situations. A common database design for a JIT procurement system is to have a "master" table that contains up-to-date information about a particular domain of the business. One example is a PARTS table that tracks inventory. When key performance indicators in this table fall below certain thresholds, business logic is invoked to replenish the stock, thereby avoiding stock-out conditions and lost sales. Another table (for example, an ORDERS table) handles transactions. This table contains the changes that must be applied to the master table to consolidate inventory levels for future sales. For example, a particular item was ordered and now the on-hand inventory must be decreased by one. The ORDERS table could also include returned product that was shipped from a different distribution center. This "not-on-hand" type of inventory must also be accounted for
Review of Programming Microsoft SQL Server 2000 with Microsoft Visual
James Travis
First let me say the book in my opinion is more for some who has almost no experience with SQL Server 2000 or Visual Basic .NET. It seemed like 704 pages of rehashed material from SQL BOL and MSDN library more than anything. The book was very repetitive of a number of the concepts and technical info and thou the back presents the book as "Solution Design/Coding/Implementing". I felt let down and disappointed
Dump SQL Permissions
Chad Miller
A few years I was troubleshooting an issue with share and NTFS permissions and I ran across a nice little utility called DumpSec from SomarSoft which generates reports on permissions and user accounts for an Windows based system. You can obtain DumpSec from SomarSoft (http://www.systemtools.com/somarsoft/) it’s a utility for auditing and reporting of NTFS and share security, users and groups, audit settings, registry permissions, and user rights assignment
A tutorial about using and creating JOINS and UNIONs
Goldmine Services
Each database management system (DBMS) offers an application that you can use to query the databases in your system. In Microsoft's SQL Server product, the SQL Query Analyzer application provides the environment for making SQL queries. Of course, in a production environment, you might not use these query tools to access the database. Instead, you will probably use custom applications, Web pages, or other front-end applications to perform your actual querying tasks
How to Perform a SQL Server Performance Audit
Brad McGehee
This lengthy article written by Brad, explains how to check the performance of your SQL Server

[В начало]

ФОРУМ SQL.RU

Самые популярные темы недели

Кто на чем пишет клиентов под SQL Server?
Новые упражнения на http://sql.ipps.ru
Хранимая процедура и память...Кто кого!?
Железо для SQL Server
Зависание транзакции....
Спорный вопрос о структуре MSSQL
Задачка для гуру
табличная переменная и тормоза
ОФФ: Ну вот я и MCP в категории програмирование MS SQL
дата - дата = интервал
непосильная логика в выборке
Триггер с проверкой уникальности
Collation
Пэйджирование
OFF: Скоко можно заработать на SQL?
Невозможно прочитать данные из DBF если эта таблица используется в другом прилож
Не выгружается DLL
innerjoin или where
Почему PHP не хочет коннектится на MS SQL?
Кто как формирует дату?

[В начало]

Вопросы остались без ответа

проблемы с работой через терминальный сервер
Как в DataSet добавить строку с Uniqueidentifier на VB.NET с MS SQL?
FTS: проблемы со словоформами (FORMSOF)
Поддержка ADOCE или OLE DB...
Как просче получить такую таблицу?
Проблемма с DTS Package
SQL-DMO - бока с коллекцией
Представляю Решение для подсунуть масив в Сохр. Procedure
SQL-DMO
VSS и его чистка
Древовидная структура репликации
смена пароля при активированной лои приложения
Параметры настройки SQL сервера
из строки получить число

[В начало]


Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Александру Гладченко на адрес: mssqlhelp@km.ru

sql.ru Описание рассылки

МИНИФОРМА
ПОДПИСКИ




http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное