ObjectARX, AutoCAD. Среда программирования библиотеки C++

       

Краткий обзор управления транзакциями


Операционная модель формирует множественные операции на множественных объектах несколькими клиентами, поскольку одна атомная операция вызвала транзакцию. Внутри операционной границы, клиенты могут получить объектные указатели от объекта IDs. Объектные указатели, таким образом полученные имеют силу, пока транзакция не закончена или прервана клиентом. Если транзакция закончена успешно, операции на объектах совершены{*переданы*}. Если транзакция прервана, операции на объектах отменены.

Действие на объектах, использующих эту парадигму имеет несколько преимуществ по регулярному открытому и близкому механизму, описанному в главе 5, “ Объекты Базы данных. ” Открытый и близкий механизм подходящий для простых операций на единственном{*отдельном*} объекте или маленькой группе объектов. Однако, имеются некоторые ограничения на открывающиеся объекты этот путь. Например, если объект открытый для чтения, Вы не можете открывать это для записи в то же самое время. Если объект открытый для записи, Вы не можете открывать это для записи второй раз. Для списка ошибок конфликта, связанных с открытым и близким механизмом, см. главу 5, “ Объекты Базы данных. ” Операционная модель более снисходительна, и получение объектных указателей от объекта IDs для специфического режима обычно преуспевает, если объект связан с транзакцией.

В зависимости от вашего приложения, могут иметься другие недостатки к использованию открытого и закрывать механизм. Если ваше приложение открывает и закрывает тот же самый объект неоднократно в ходе одной операции — например, команда — вы будете нести серьезные неэффективность из-за этого множителя, открывает и закрывается. Множество отнимающих много времени операций связано с закрытием объекта. Если Вы открываете объект для записи, измените это, и затем закройтесь, это, записи отмены модификации совершено{*передано*} файлу отмены, графика для объекта сгенерирована, и уведомления обстреляны. Все эти операции

Выполненный каждый раз объект закрыт. Если Вы проводите вашу операцию и получаете указатель на объект, используя транзакцию, все действия, упомянутые выше случаются только однажды, в конце транзакции. Результат - улучшенная эффективность и меньший файл отмены, потому что число записей, входящих в файл отмены уменьшен.

Также, если Вы имеете сложную сеть, где объекты обращаются{*относятся*} к друг другу объектом ID, Вы хотите быть способными получить указатель на объект в любом модуле вашей программы без того, чтобы волноваться, если другой модуль или другое приложение открывают тот объект. Эти действия - только возможное использование операционная модель потому что операции группы транзакций и позволяют получать указатели от объекта IDs поперек границ модуля.



Содержание раздела