Код за тази статия:Serving0400.exe (34KB)

visual

тук има много потенциални препятствия, с които да се справите, когато създавате приложение. Колкото повече парчета трябва да съберете, толкова по-истинско става това. Когато изграждате високопроизводително уеб приложение, обикновено комбинирате много технологии и компоненти, като ASP, Visual Basic®, COM и Microsoft® Transaction Services (MTS), плюс база данни и дори XML. Използването на тези технологии заедно може да доведе до много сложни въпроси.
В В В В В Този месец аз ще се потопя в програмната страна на MTS, за да можете по-добре да разберете какво може и какво не може да се направи във вашите уеб приложения. Тази колона е изградена от някои скорошни преживявания, които съм имал с MTS, и изследванията, които тези преживявания ме накараха да направя.

Обратно към Основите

След това можете да уведомите MTS, че вашият код е завършен и че нещата са наред:

Ако вашият код открие някакъв тип проблем, можете също да уведомите MTS, че трябва да прекрати транзакцията:

Това работи точно като CreateObject, с изключение на това, че Book сега се изпълнява в същия контекст като обекта, който го е инициирал. Имайте предвид, че същият мениджър на програмата посочи, че CreateInstance ще работи в COM +, но вече не е необходимо.
Друг проблем ще възникне, когато се опитате да прехвърлите указател към MTS обект. Често има моменти, когато клиентът ще изисква препратка към обект, създаден от вторично повикване в даден метод. Тъй като MTS съхранява контекстна информация за всеки екземпляр на активен обект, той трябва да бъде информиран, че препратка се връща на клиент.
Когато компонент иска да предаде самопрепратка към клиент или към друг обект, той винаги трябва първо да извика SafeRef и след това да предаде референцията, върната от това повикване. SafeRef се използва от обект, за да получи препратка към себе си, която може да бъде предадена безопасно извън неговия контекст. Синтаксисът изглежда така:

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

Работа с проблемите на MTS

MTS и държавни компоненти

Заключение

Кен Спенсър работи за 32X Tech Corporation (http://www.32X.com), която произвежда линия от висококачествен софтуер за програмисти. Кен също прекарва голяма част от времето си в консултации или преподаване на частни курсове.

От броя на списание MSDN от април 2000 г.