ПЗ (1194062), страница 5

Файл №1194062 ПЗ (Конфигурирование и использование службы SERVICE BROKER MS SQL для асинхронного взаимодействия приложений с централизованной базой данных) 5 страницаПЗ (1194062) страница 52020-10-01СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

Рисунок 3.3 – Фора «Создать диалог»

На первом этапе создания нового диалога необходимо задать тип сообщений (Message type name), определяющий имя сообщения (AUTHORIZATION owner name) и проверку (VALIDATION), выполняемую Service Broker для сообщений с этим именем (рисунок 3.4).

Рисунок 3.4 – Форма «Создать новое сообщение»

Данная форма заменяет SQL-команды, применяемые в Service Broker для создания нового типа сообщения. Листинг 3.1 содержит код создания нового типа сообщений в Service Broker.

CREATE MESSAGE TYPE "Request msg"

VALIDATION = NONE

CREATE MESSAGE TYPE "Response msg"

VALIDATION = NONE

Листинг 3.1 – Создание нового типа сообщения

Выбрать один конкретный параметр проверки из группы пользователю позволяет элемент RadioButton. При подведении курсора к соответствующему элементу появляется всплывающая подсказка, вызванная элементом ToolTip, которая отображает информацию об интересующем объекте (рисунок 3.5).

Рисунок 3.5 – Всплывающая подсказка

Аргументы, используемые для создания нового типа сообщения:

  1. Message type name.

Имя создаваемого типа сообщений. Создается новый тип сообщений в текущей базе данных, которой владеет участник, указанный в предложении AUTHORIZATION. Не могут быть указаны имена сервера, базы данных и схемы. Аргумент message_type_name может иметь длину не более 128 символов.

  1. AUTHORIZATION owner_name.

Устанавливает указанного пользователя или роль базы данных в качестве владельца типа сообщений. Если текущим пользователем является dbo или sa, то аргумент owner_name может быть именем любого допустимого пользователя или роли. В противном случае аргумент owner_name должен быть именем текущего пользователя, именем пользователя, на которого у текущего пользователя есть разрешение IMPERSONATE, или именем роли, которой принадлежит текущий пользователь. Если это предложение опущено, тип сообщений будет принадлежать текущему пользователю.

  1. VALIDATION.

Указывает, как компонент Компонент Service Broker производит проверку текста сообщения этого типа.

  • NONE: указывает, что проверка не выполняется;

  • EMPTY: указывает, что текст сообщения должен быть NULL;

  • WELL FORMED XML: указывает, что текст сообщения должен содержать корректные XML-данные;

  • VALID XML WITH SCHEMA COLLECTION: указывает, что текст сообщения должен содержать XML-данные, которые соответствуют схеме в указанной коллекции схем.

После того, как определены типы сообщений, необходимо создать новый контракт. Контракт определяет типы сообщений, используемые в диалогах, а также определяет, какой из участников диалога может посылать сообщения этого типа. Другими словами, контракт определяет направление отправки каждого сообщения. С помощью элемента CheckBox пользователь так же может установить сообщение с типом по умолчанию (рисунок 3.6).

Рисунок 3.6 – Форма «Создать новый контракт»

Данная форма заменяет SQL-команды, применяемые в Service Broker для создания нового контракта. Листинг 3.2 содержит код создания нового контракта в Service Broker.

CREATE CONTRACT "Contract"

( "Request msg" SENT BY INITIATOR,

"Response msg" SENT BY TARGET )

Листинг 3.2 – Создание нового контракта

Аргументы, используемые для создания нового контракта:

  1. Contract name.

Имя создаваемого контракта. Новый контракт создается в текущей базе данных и передается во владение участнику, указанному в предложении AUTHORIZATION. Не могут быть указаны имена сервера, базы данных и схемы. Параметр contract_name может иметь длину не более 128 символов.

  1. AUTHORIZATION owner name.

Устанавливает в качестве владельца контракта определенного пользователя или роль базы данных. Если текущим пользователем является dbo или sa, то параметр owner name может быть именем любого допустимого пользователя или роли. В противном случае аргумент owner_name должен быть именем текущего пользователя, именем пользователя, на олицетворение которого текущий пользователь имеет разрешения, или именем роли, которой принадлежит текущий пользователь. Если это предложение опущено, контракт принадлежит текущему пользователю.

  1. Message type name.

Имя типа сообщений, включаемого в качестве части контракта.

  1. SENT BY.

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

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

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

  • ANY: указывает на то, что сообщения этого типа могут посылаться как инициатором, так и целью.

  1. [ DEFAULT ].

Указывает на то, что данный контракт поддерживает сообщения с установленным по умолчанию типом сообщений. По умолчанию во всех базах данных содержится тип сообщений с названием DEFAULT. Этот тип данных использует проверку типа NONE. В контексте данного предложения DEFAULT не является ключевым словом и должен быть отделен как идентификатор. Microsoft SQL Server также предоставляет контракт DEFAULT, указывающий тип сообщения DEFAULT.

После того, как определены соответствующие типы сообщений и контракты, необходимо создать очереди, в которых полученные сообщения будут сохраняться для дальнейшей обработки с помощью сервисной программы. Также необходимо указать сведения о хранимых процедурах, которые нужно активировать, чтобы начать обработку сообщений в этой очереди. Чтобы определить максимальное количество экземпляров хранимой процедуры активации, запускаемых очередью одновременно, был использован элемент DomainUpDown, который отображает единичное строковое значение, выбранное пользователем из списка элементов с помощью кнопок «вверх-вниз» элемента управления (рисунок 3.7).

Рисунок 3.7 – «Создать новую очередь»

Данная форма заменяет SQL-команды, применяемые в Service Broker для создания новой очереди. Листинг 3.3 содержит код создания новой очереди в Service Broker.

CREATE QUEUE InitiatorQueue

WITH

STATUS = ON,

RETENTION = ON,

ACTIVATION

(STATUS = ON,

PROCEDURE_NAME = procedure_name,

MAX_QUEUE_READERS = max_queue_readers

EXECUTE AS = OWNER )

ON filegroup

CREATE QUEUE TargetQueue

WITH

STATUS = ON

RETENTION = ON

ACTIVATION

(STATUS = ON

PROCEDURE_NAME = procedure_name

MAX_QUEUE_READERS = max_queue_readers

EXECUTE AS = OWNER )

ON filegroup

Листинг 3.3 – Создание новой очереди

Аргументы, используемые для создания новой очереди:

  1. STATUS (очередь).

Указывает, доступна очередь (ON) или нет (OFF). Когда очередь недоступна, нельзя ни добавлять в нее сообщения, ни удалять их из нее. Можно создать очередь в состоянии недоступности, чтобы сообщения не поступали в очередь до тех пор, пока очередь не будет сделана доступной с помощью инструкции ALTER QUEUE. Если это предложение опущено, значение по умолчанию равно ON, и очередь доступна.

  1. RETENTION.

Указывает параметр хранения для очереди. Если указано RETENTION = ON, то все сообщения, посылаемые или отправляемые во время диалогов, которые используют данную очередь, хранятся в очереди до окончания этих диалогов. Это позволяет хранить сообщения для аудита или выполнять компенсирующие транзакции в случае ошибки. Если это предложение не указано, параметр хранения по умолчанию установлен в OFF.

  1. ACTIVATION.

Указывает сведения о хранимых процедурах, которые нужно активировать, чтобы начать обработку сообщений в этой очереди.

  • STATUS (активация): указывает, запускает ли компонент Компонент Service Broker хранимую процедуру. Если параметр STATUS = ON, то очередь запускает хранимую процедуру, указанную параметром PROCEDURE_NAME. Если количество выполняемых в настоящий момент хранимых процедур меньше, чем значение MAX_QUEUE_READERS, и если сообщения прибывают в очередь быстрее, чем хранимые процедуры получают сообщения. Если параметр STATUS = OFF, то очередь не активирует хранимую процедуру. Если это предложение не указано, значение по умолчанию равно ON.

  • PROCEDURE NAME: указывает имя хранимой процедуры, которая должна быть активирована для обработки сообщений в данной очереди. Это значение должно являться идентификатором SQL Server.

  • MAX QUEUE READERS: определяет максимальное количество экземпляров хранимой процедуры активации, запускаемых очередью одновременно. Значение аргумента max_readers должно быть числом от 0 до 32767.

  • EXECUTE AS: указывает учетную запись пользователя базы данных SQL Server, от имени которого выполняется хранимая процедура активации. SQL Server должен быть в состоянии проверить разрешения для пользователя, когда очередь запускает хранимую процедуру. SELF указывает, что хранимая процедура выполняется как текущий пользователь. OWNER указывает, что хранимая процедура выполняется в контексте владельца очереди. 'user name' имя пользователя, от имени которого выполняется хранимая процедура. Аргумент user name должен быть именем допустимого пользователя SQL Server, указанным в виде идентификатора SQL Server.

  1. ON filegroup / [DEFAULT].

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

3.3 Редактирование и удаление диалога

Для того чтобы редактировать диалог было использовано дерево папок, которое представляет собой объект класса TreeView, в который программным образом загружается иерархическая файловая структура носителей информации Базы данных. Дерево файлов обеспечивает быстрый доступ к отдельным объектам файловой системы. Корнем дерева служит компонент «Service» (рисунок 3.8).

Рисунок 3.8 – Форма «Редактировать диалог»

Для удаления диалога также было использовано дерево папок (рисунок 3.9). Так как контракты зависят от одного или нескольких типов сообщения, а сервис зависит от очереди и может зависеть от одного или нескольких контрактов, то удаление определенного объекта влечет за собой удаление всех связанных с ним объектов.

Рисунок 3.9 – Форма «Удалить сообщение»

При подведении курсора к элементу, который необходимо удалить появляется всплывающая подсказка, вызванная элементом ToolTip, которая предупреждает об удаление связанных объектов.

3.4 Структура и состав программной оболочки

Характеристики

Список файлов ВКР

Конфигурирование и использование службы SERVICE BROKER MS SQL для асинхронного взаимодействия приложений с централизованной базой данных
Шановалова С
лист 1 .vsd
лист 2.vsd
лист 3.vsd
лист 4.vsd
лист 5.vsd
лист 6 .vsd
лист 7 .vsd
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7026
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее