Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Изменения: 5 декабря 2005 г.
В образце System.Transactions демонстрируется управление транзакциями с использованием управляемых API-интерфейсов, находящихся в пространстве имен System.Transactions. В частности, класс System.Transactions.TransactionScope используется для установления границ транзакций. Это делается, чтобы не допустить изменения числа единиц на складе в тех случаях, когда товара на складе недостаточно для выполнения запроса. В случае, если товара достаточно, с помощью этой функции обеспечивается атомарность перемещения товара из одного места в другое. Автоматическая регистрация в распределенной транзакции демонстрируется путем записи изменений товаров в базу данных аудита, хранящуюся на отдельном сервере.
Образец должен быть установлен в виде двух отдельных частей на двух физических компьютерах: основном сервере образцов и сервере аудита.
Каталог установки: «диск:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\Transaction\»
Сценарий
Джейн — разработчик компании Adventure Works Cycles. Ей необходимо отследить перемещения товаров из одного места в другое с сохранением согласованности транзакций и участвовать в аудите любых изменений товаров.
Языки
Transact-SQL, Visual C# и Visual Basic.
Возможности
В образце System.Transactions используются следующие функции SQL Server.
| Часть образца | Возможности |
|---|---|
Все части |
Среда CLR, транзакции, распределенные транзакции, ADO .NET, MSDTC |
Предварительные условия
Перед запуском данного образца необходимо убедиться, что установлено следующее программное обеспечение.
- Microsoft SQL Server 2005 или Microsoft SQL Server 2005 Express Edition (SQL Server Express). SQL Server Express можно получить бесплатно на веб-узле «Документация и образцы SQL Server 2005 Express Edition».
- База данных AdventureWorks, включенная в поставку SQL Server 2005, также доступна на веб-узле центра разработки SQL Server.
- Образцы компонента SQL Server 2005 Database Engine. Данные образцы входят в комплект SQL Server 2005. Последнюю версию образцов можно загрузить на веб-узле центра разработки SQL Server.
- Пакет .NET Framework SDK 2.0 или среда Microsoft Visual Studio 2005. Пакет .NET Framework SDK можно получить бесплатно. См. раздел Установка пакета .NET Framework SDK.
- Координатор распределенных транзакций Майкрософт (MSDTC). Настройки MSDTC должны разрешать входящие и исходящие клиентские соединения. Необходимо установить и настроить MSDTC на обоих серверах, используемых для данного образца. Дополнительные сведения см. в документации по службам компонентов.
Прежде чем запустить этот образец, настройте следующие компоненты.
- Если на каком-либо из используемых серверов включен брандмауэр Windows, настройте его на обоих серверах на разрешение соединений SQL Server и MSDTC. Дополнительные сведения см. в документации по брандмауэру Windows.
- Используйте средство настройки контактной зоны SQL Server для разрешения удаленного доступа SQL Server 2005 к серверу аудита.
Построение образца
Если файл ключа ExternalSampleKey.snk для строгого имени еще не создан, создайте его следующим образом.
Создание файла ключа для строгого имени
Откройте командную строку среды Microsoft Visual Studio 2005. В меню Пуск последовательно укажите Все программы, Microsoft Visual Studio 2005, Средства Visual Studio и выберите пункт Командная строка Visual Studio 2005.
— или —
Откройте командную строку Microsoft .NET Framework. Нажмите кнопку Пуск, последовательно укажите Все программы, Microsoft .NET Framework SDK v2.0 и выберите пункт Командная строка пакета SDK.
Для перехода из текущей папки в папку Samples в командной строке используйте команду смены каталога (CD).
Примечание.Для определения папки, в которой находятся образцы, нажмите Пуск, последовательно выберите Все программы, Microsoft SQL Server 2005, Документация и учебные материалы и выберите пункт Каталог образцов. Если использовался каталог установки по умолчанию, образцы будут расположены в каталоге «<системный_диск>:\Program Files\Microsoft SQL Server\90\Samples». Для создания файла ключа выполните следующую команду в командной строке:
sn -k ExternalSampleKey.snk
Важно!Дополнительные сведения о паре ключей для строгого имени см. в разделе «Краткие сведения о безопасности: Строгие имена и безопасность в .NET Framework» в центре для разработчиков .NET в MSDN.
Построение образца System.Transactions
Измените файл CS\Transaction\InventoryMover.cs, указав в качестве значения строковой константы auditConnectionString точное имя сервера, на котором будут храниться данные аудита для этого образца. Сервер аудита должен быть установлен на компьютере, физически независимом от компьютера, используемого для установки основной части этого образца. Создайте пробную учетную запись с использованием проверки подлинности SQL Server на сервере аудита, а затем укажите в качестве значения строки auditConnectionString имя пользователя и пароль, присвоенные этой учетной записи.
Скомпилируйте образец в среде Visual Studio 2005 с использованием предоставляемого решения Visual Studio или программы Microsoft MSBuild, которая включена в пакет .NET Framework SDK 2.0. В окне командной строки выполните следующую команду:
msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\Transaction.slnУбедитесь, что база данных AdventureWorks установлена.
Если образцы ядра SQL Server не установлены в папку по умолчанию, то следует изменить путь в части сценария CREATE ASSEMBLY в файлах Scripts\InstallCS.sql и Scripts\InstallVB.sql для изменения ссылки на местоположение установленных образцов.
Если вы не являетесь администратором используемого экземпляра сервера SQL Server, то для завершения установки необходимо, чтобы администратор предоставил разрешение CreateAssembly.
Откройте в среде Microsoft Management Studio файл scripts\installCS.sql или scripts\installVB.sql (в зависимости от типа скомпилированного проекта: Visual C# или Visual Basic). Выполните сценарий, содержащийся в файле, поддерживая подключение к основному серверу образца, или выполните команду, подобную следующей, в командной строке на основном сервере образца:
sqlcmd -E -I -i Scripts\InstallCS.sqlОткройте файл scripts\installDB.sql в среде Microsoft Management Studio. Выполните сценарий, содержащийся в файле, поддерживая подключение к серверу аудита, или выполните команду, подобную следующей, в командной строке на сервере аудита:
sqlcmd -E -I -i Scripts\InstallDB.sql
Запуск образца
Запуск образца System.Transactions
Откройте файл scripts\test.sql file в среде Management Studio. Выполните содержащийся в файле сценарий или выполните в окне командной строки следующую команду:
sqlcmd -E -I -i Scripts\test.sql
Удаление образца
Удаление образца System.Transactions
В среде Management Studio откройте файл scripts\cleanup.sql. Выполните сценарий, содержащийся в файле, на основном сервере образца, или выполните следующую команду в командной строке на основном сервере образца:
sqlcmd -E -I -i Scripts\cleanup.sqlВ среде Management Studio откройте файл scripts\cleanup.sql. Выполните сценарий, содержащийся в файле на сервере аудита или выполните следующую команду в командной строке на сервере аудита:
sqlcmd -E -I -i Scripts\cleanupDB.sql
Примечания
Чтобы этот образец работал правильно, в SQL Server 2005 или SQL Server Express должна быть включена поддержка среды CLR.
Образцы предназначены только для обучения. Они не предназначены для использования в рабочей среде и не тестировались в ней. Корпорация Майкрософт не предоставляет техническую поддержку для этих образцов. Образцы приложений и сборок не следует соединять или использовать с рабочей базой данных SQL Server или с сервером отчетов без разрешения системного администратора.