Asp - разбиране на сделките

В търговски приложения, често трябва да стартирате скриптове и компоненти в рамките на сделката. Операцията е набор от операции, извършвани за сървъри с една операция, която е или е изпълнена успешно като цяло или не извършва (например, създаването на поръчки, проверете инвентаризация и фактуриране). Ако създадете скрипт, който ще се изпълнява на сървър в сделка, грешката е в част от нея ще отмени цялата сделка.

ASP обработка на транзакции среда, основана на компонент сделка обслужване, което е система за обработване на транзакции за разработването и внедряването на висока производителност, мащабируеми и надеждни сървърни приложения в рамките на предприятието, в Интернет и корпоративни интранет, както и да ги контролира. Тази среда определя модела на сделка програмиране за разпределени приложения съставни основа. Това също е начин за разгръщането и управлението на тези приложения.

Уеб сървърът има вградени функции, които ви позволяват да се създаде по сделката ориентирани сценарии. При инсталиране на компоненти на услуги могат да бъдат създадени пакети от компоненти, които ще бъдат изпълнени в рамките на една сделка.

Операцията е операция, която може да се извърши успешно или не само като едно цяло. Надежден актуализация на базата данни може да се постигне само въз основа на обработка на транзакции. При извършване на голям брой взаимосвързани промени в базата данни или актуализиране на няколко бази данни трябва да бъдат гарантирани точност на всички операции за смяна на данните. Грешката на всеки етап от промяна трябва да доведе до възстановяване на първоначалното състояние на таблиците в базата данни.

Себереализация на такъв механизъм ще изисква скриптове и компоненти, които ще наблюдава на необходимите промени и да се възстанови първоначалните данни при възникване на грешка. Въпреки това, компонентите на заявление за услуги могат значително да опрости тази задача. Просто обявим изпълнение на скриптове и компоненти в рамките на сделки. След това, те ще се координира автоматично обработка компоненти услуги. концепция обработка на транзакции е приложима само за работа с бази данни. Компонент на услугите не подкрепят възстановяването на първоначалното състояние след промяна на файловата система или други ресурси, с които механизма на сделката не работи. Приложенията могат да работят само с бази данни, които се поддържат от Component Services. В момента това е възможно да се работи с SQL база данни сървър, а също и на други бази данни, в които се осъществява, приложени протокол подкрепа XA (разработен от X / Open консорциум). В бъдеще, компонента на услугите ще бъде в състояние да подпомага и други системи за бази данни.

С методи Server.Transfer и Server.Execute в операции могат да участват множество ASP страници. След като нарече сценарии, при които има директива @TRANSACTION на стойност «Задължително», чрез метод Server.Transfer или Server.Execute. Тя продължава със сделката, бягане файл, наречен «.asp» (ако последният е включен в сделката). Ако «.asp» файл в сделката все още не са участвали, когато той се нарича новата сделка ще бъде създадена автоматично.

Следният пример показва старт сценарий транзакция.

Въпреки това, в следния сценарий, има повикване от друг скрипт и сделката, която поражда.

Комбинираният ефект на двете е само един ще бъде сключена сделката скриптове. За повече информация относно създаването на скриптове с Server.Transfer екипи и Server.Execute, вижте Изпращане на съдържание на уеб браузър.

За повече информация относно стойността на аргумента, даден в сертификата за директива @TRANSACTION.

директива @TRANSACTION трябва да е на първа линия на страницата. Ако не е, не е в състояние на грешка. Настоящата директива следва да се добавят към всяка от участващите в страницата на сделката. Завършването на сегашната сделка се случва едновременно с края на сценария.

Ако сделката се провали, компоненти на услуги възстановява състоянието преди началото на промените на всички ресурси, с подкрепата на сделка. В момента, пълна поддръжка на сделка се предоставя само на сървъри за бази данни като безопасна работа с тези данни се отдели специално внимание при разработването на приложения за организации. Компонент на услугите не поддържа възстановяване от промените в файловата система на вашия твърд диск, променливи кандидатстване и сесия ASP или семейства. Въпреки това, както ще бъде показано по-долу, има възможност за създаване на скриптове, които ще използват транзакциите механизъм за решаване на горните проблеми. Така, че е възможно да се развие сценарий, в който сделката ще бъде успешно завършен или прекъснат, в резултат на грешки на работа (например запис на данни във файл).

Наблюдавайки изпълнение на сделката, компонента на услугите за определяне на резултата от изпълнението му - успешен или не успя. Сценарият може да бъде изрично обявена cancelability ObjectContext.SetAbort сделка чрез процедура се обажда. Например, такава операция завършване е възможно, когато компонент грешка в резултат на нарушения на финансови данни, правилата за обработка (например отрицателен баланс по сметката), или когато грешка в операции не са свързани с транзакцията (например записва или чете във файл). Сделката насилствено прекратен, ако времето за чакане за страницата изтича преди изтичането на сделката.

В резултат на сделката не може да се определя от сценарий. Тази цел се постига с помощта на събития, които могат да бъдат причинени при нормална или принудени завършването на транзакцията. Помислете примерна ситуация, в която се изпълнява операцията средства, постъпили по банковата сметка. Да предположим, че в зависимост от състоянието на сделката, потребителят трябва да се върне в друг уеб страница. Това може да стане с помощта на OnTransactionCommit и OnTransactionAbort събития.

За да участвате в компонент прехвърлянето трябва да бъде регистриран в COM + приложението и конфигуриран като изискващи обработка на транзакции. Така, за да се обади за обработка на сценарии съответните компоненти за осъвременявания на базата данни инвентаризация и информация за плащане и двете от тези компоненти трябва да се извърши в рамките на контекста на сделка. В случай на грешка, изпълняващо някоя от тези компоненти предоставяне на услуги за възстановяване на първоначалното състояние на базата данни и отмяната на цялата поръчка. За отделните компоненти, например Ad ротатор, операции не са необходими.

Регистрирайте се и конфигуриране на компоненти с подкрепата сделка с помощта на мениджъра на Компонент услуги. Компоненти трябва да бъдат регистрирани в приложение COM + на. Въпреки това, не добавяйте компоненти в интериора за прилагане IIS COM + на, за тази цел трябва да създадете свое собствено приложение COM +. Като правило, всички потребителски компоненти са настанени в една единствена библиотека приложение. Библиотека компоненти за кандидатстване могат да се използват в различни приложения и ASP извършва в развиват своя процеси.

Съставки с подкрепата на сделка, могат да бъдат регистрирани в сървъра на приложения - приложение COM +, която се извършва винаги като отделен процес на сървъра. Сървърни приложения с компоненти, които поддържат операции се използват за гарантиране на сигурността, ролята на основата на достъп до компонентите или приложения, които работят на отдалечени компютри на.

Работа с компонента услуги е необходимо инсталирането на компоненти на услуги.

Като цяло, не е необходимо да се съхраняват предмети, които са създадени от COM-компонент в приложение или сесия обекти ASP. Действие COM обект се прекратява автоматично след приключване на транзакцията. Тъй като обекти на сесия и приложение, предназначени за отделни случаи, които могат да се използват от няколко страници, ASP, те не трябва да съдържат обекти са освободени в края на сделката.

ASP скрипт е корен или в началото обявена сделка. Всеки предмет на общата организация на пазара, които се използват на страница транзакциите на ASP, се счита за част от сделката. След приключване на операцията на страницата използва от COM обекти са с увреждания; Това важи и за тези от тях, които са били съхранявани в обекта Session или приложение. Всички последващи опити да се наричат ​​един обект, чийто обхват е ограничен до сесията или приложението, от друга подкрепа на страница сделката ще бъде обречен на неуспех.

При актуализиране на базата данни на отдалечен сървър може да забави работата и дори принудително прекратяване сделка, свързана с закъснения и грешки в мрежата. Тъй като сделката трябва да се извършва като единен процес, кандидатури ще бъдат временно преустановени до отдалечения сървър съобщава неговия успех или принудително изключване. Една сделка може да бъде принуден да прекрати поради невъзможност за изпращане на данни за актуализиране на базата данни.

За тези актуализации, които трябва да се извършват по едно и също време, е препоръчително да се прекрати или отложи сделката толкова дълго, тъй като няма възможност да се извърши всички негови компоненти. Например, заявление за издаване на билет в същото време трябва да завърши сделката задължаване на банкова сметка на клиента и внесени по сметката на банката авиокомпания. Ако се появи актуализацията в контекста на дадена сделка, но може да се извърши като последна инстанция, клиентът не може да чака за завършване на този процес. В примера на сделка заповед билет можете също така да изпрати специално искане до снабдяването с храна или актуализиране на информацията по отношение на обхвата. Тези операции трябва да се извършват, но спешността е ниска.

Включва един или повече новини изпратени на отдалечен сървър сделки съобщения позволяват на услугата Message Queuing. Използването им гарантира доставката на актуализации на отдалечения сървър, дори и в случаите, когато сървъра или мрежата е временно недостъпна. След съобщението за кандидатстване е получен на успешното приключване на тази операция, сделка, може да се продължи.