Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Транзакции связывают несколько задач вместе. Например, представьте, что приложение выполняет две задачи. Во-первых, он создает новую таблицу в базе данных. Затем он вызывает специализированный объект для сбора, форматирования и вставки данных в новую таблицу. Эти две задачи связаны и даже взаимозависимо, поэтому вы хотите избежать создания новой таблицы, если только вы не сможете заполнить ее данными. Выполнение обеих задач в пределах одной транзакции обеспечивает соединение между ними. Если вторая задача завершается ошибкой, первую задачу откатывают к тому моменту, когда новая таблица еще не была создана.
Чтобы обеспечить прогнозируемое поведение, все транзакции должны обладать основными свойствами ACID (атомарными, согласованными, изолированными и устойчивыми). Эти свойства укрепляют роль критически важных транзакций как предложений «всё или ничего». Дополнительные сведения о ACID см. в разделе "Свойства ACID". В заключении, ACID гарантирует, что набор связанных задач либо успешно завершается, либо терпит неудачу как единое целое. В терминологии обработки транзакций, транзакция либо фиксируется, либо прерывается. Для фиксации транзакции все участники должны гарантировать, что любые изменения данных будут постоянными. Изменения должны сохраняться даже в случае фатального сбоя системы или других непредвиденных событий. Если даже один участник не может гарантировать эту гарантию, вся транзакция завершается ошибкой. Все изменения данных в области транзакции откатываются к определенной заданной точке.
Транзакция может быть ограничена одним ресурсом данных, например базой данных или очередью сообщений. В этом сценарии локальная транзакция управляется диспетчером транзакций, предоставляемым System.Transactions , что приводит к повышению производительности. Управляемые ресурсом данных, эти транзакции являются эффективными и простыми для управления.
Транзакции также могут охватывать несколько ресурсов данных. Распределённые транзакции позволяют включать несколько отдельных операций, происходящих в разных системах, в единое действие, которое либо выполняется, либо отменяется. В этом сценарии транзакции координируются координатором распределенных транзакций Майкрософт (MSDTC), который находится в каждой системе.
При разработке транзакционного приложения с помощью классов, предоставляемых System.Transactions, вам не нужно беспокоиться о том, какие транзакции необходимы, или о диспетчере транзакций. Инфраструктура System.Transactions автоматически управляет ими.
При создании транзакции можно указать уровень изоляции, который применяется к транзакции. Уровень изоляции, задаваемый IsolationLevel перечислением, определяет уровень доступа других транзакций к данным, затронутым вашей транзакцией.
Можно создавать транзакции, используя ADO.NET, System.EnterpriseServices или модель программирования транзакций, предоставляемую пространством имен System.Transactions. В разделе "Функции, предоставляемые System.Transactions" , рассматриваются функции, которые можно использовать для записи транзакционного приложения с помощью System.Transactions пространства имен.