Контрол на заключването на транзакцията. Превод за конфигуриране на управляваните ключалки Автоматичният режим на заключване е невалиден в транзакцията

Основните причини за прехода към управлявани ключалки:

  • Основната причина е 1C препоръка: експерт въз основа на показания или 1C: PC
  • Проблеми с паралелната работа на потребителите ()
  • Използвайте Oracle, PostgreSQL и.

Цена на работа:

Същност на контролираното блокиране

При работа в режим на автоматично управление на заключването 1C: компанията определя висока степен на изолация на данни в транзакцията на нивото на СУБД. Това прави възможно напълно да се премахне възможността за получаване на неопределените или неправилни данни без никакви специални усилия от прилаганите разработчици.

Това е удобен I. правилния подход за малко количество активни потребители. Цената на лекотата на развитие е определено количество излишно блокиране на нивото на СУБД. Тези ключалки са свързани както с характеристиките на прилагането на заключващите механизми в самата СОБ и така, че СУБД не могат да вземат под внимание (и не вземат под внимание) физическото значение и структура на метаданните обекти 1C: предприятия.

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

След прехвърляне на конфигурацията към контролирания режим в платформата се активира допълнителна функция "Мениджърът на заключването" и контролът върху целостта на данните не са от страната на СУБД, но на сървъра на сървъра. Това увеличава натоварването на желязото на IC сървъра (необходимите по-бързи процесори и повече памет) и всъщност прави дори малко забавяне (няколко процента), но много по-значимо подобрява ситуацията с ключалки (по-малко блокове поради запушвания към обекта, и не на комбинация от таблици, по-малко блок зона и в някои случаи по-малко спасяване на живота, т.е. не до края на транзакцията). Поради това общият паралелизъм се подобрява.


Новите конфигурации на 1с се изпълняват незабавно в режим на управление.

  • Въпрос: Възможно ли е първо да направите одит и след това да се прехвърлите в UB?

Отговор: Можете ли одитът да служи като допълнителна обосновка на осъществимостта на превод в контролирани ключалки и да оцени приноса на автоматичните ключалки към цялостното забавяне и дали са необходими допълнителни усилия, различни от превод.

  • Въпрос: За да прехвърлите в UB, какво точно за предоставяне на достъп - RDP, TeamViewer? Или можете да изпратите конфигурация на файла?

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

  • Въпрос: Имаме 10 редовни програмисти, които променят нещо на конференцията всеки ден. Използвана обща конфигурационна памет ". Как ще бъде организирана взаимодействието при прехвърляне на UB? Или всички програмисти трябва да бъдат изпратени на почивка?

Отговор: Като правило, нашите промени са направени в рамките на няколко дни. Останалата част от времето е да се проверят направените промени, включително от гледна точка на необходимата логика на определения бизнес, а не технически съображения. Ние Можем да направим промени отделен файл Конфигурация CF, а след това вашият програмист ще позволи в хранилището. На почивка всеки не може да бъде изпратен. В други опции за взаимодействие, просто трябва да се съгласите, че обектите планират да уловят разработчиците си, така че да изградим план за работа, удобно и за двете страни. Обикновено цялата конфигурация улавяне на разработчиците не се изисква или ни дават "волана" за нас.

Механизъм блокове за транзакции Използвани за конкурентоспособност на потребителския достъп до DBMS.
Транзакцията е определена неразривна работа, през която състоянието на основата се променя. Това е минимален размер на промяната: е невъзможно да се направи половин транзакция; Ако транзакцията не е завършена, базата се връща обратно към първоначалното състояние.
Тъй като транзакцията улавя множество данни, настъпването на достъп до този масив: например една транзакция променя данните, а другият се опитва да ги прочете. Резултатът от четенето може да бъде неправилен, защото няма да се включи последните промени. Следователно, на ниво СДБД, изолацията на транзакцията работи. Възможни са следните нива на изолация:

  • Прочетете Communmited - Докато една транзакция променя масива, другата не може да я промени, но може да чете. По-ниско ниво на изолация.
  • Прочетете. - докато една транзакция променя масива, другата не може да я промени, нито чете
  • Повторяем четене. - докато една транзакция чете масива, другата не може да я промени, но може да чете
  • Сериализурама - докато една транзакция чете масива, другата не може да я променя или да прочете. Всички операции са последователни. Максимално ниво на изолация.

Ако за конфигуриране 1С: инсталирани предприятия автоматичен режим на заключванеИзбрана е транзакцията, изолираща DBMS. В случай на MS SQL, той ще бъде повторяем чете или сериализиращи нива, т.е. изолацията на данни е близо до максимума. Това решава проблеми с верността на данните, но може да доведе до появата на ключалки на нивото на СУБД по време на интензивната работа на потребителите. Ето защо, в 1C: Компанията има своя собствена функционалност със ключалки, която се активира от включването на контролирани ключалки. В този случай нивото на изолиране на транзакцията за MS SQL ще бъде прочетено. Самата платформа ще изолира данните, без да разчита на СУБД.

Включването на контролирания режим на заключване възниква в конфигурационните свойства:

Също така, режимът на заключване може да бъде зададен за специфични обекти на конфигурацията:

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

За режима, автоматичен и управляем е един момент. Транзакция, един потребител може да бъде няколко транзакции от гледната точка на платформата. Например интерактивното поведение на регистъра прави дветранзакции - записване на самия документ и в рамките на тези редове за запис на транзакции за регистър. В зависимост от режима за управление на заключването за самия документ и за преместването на регистъра, са възможни четири ситуации:

  1. Режим на документи Автоматично, Регистрирайте се автоматичен режим -\u003e
  2. Режим на режим на документи, Регистрирайте Режим Управляван-\u003e Регистрирайте се в режим управляван режим
  3. Режим на документ Автоматично, Регистрирайте Режим Управляван -\u003e Регистрирайте се в автоматичен режим
  4. Режим на документ, регистър автоматичен регистър -\u003e Изключителна ситуация (грешка)

Въпрос 06.59 Изпит 1в: Професионален на платформата. При провеждане на документ във всеки регистър, ако документът има автоматичен режим на управление на транзакцията, и се управлява регистърът (в конфигурационните свойства се използва опцията "автоматична и управляема"), тогава такова поведение ще доведе:

Правилният отговор е вторият, дефинирай първата транзакция, ако е автоматично, тогава всичко е автоматично.

Въпрос 06.60 Изпит 1в: Професионален на платформата. При провеждане на документ за всеки регистър, ако документът има контролен режим за управление на транзакцията, и регистърът е автоматичен (в конфигурационните свойства се използва опцията "автоматична и управляема"), след това такова поведение ще доведе:

  1. до появата на погрешна ситуация
  2. цялата транзакция ще се извършва автоматично
  3. цялата транзакция ще бъде извършена в управлявания режим.

Правилният отговор е първият, дефинирайте на първата транзакция, ако се управлява, след това грешка.

Въпрос 06.61 Изпит 1в: Професионален на платформата. При провеждане на документ във всеки регистър, ако документът има автоматичен режим на управление на заключването на транзакции и се управлява регистърът (в конфигурационните свойства се използва "управляема" опция), тогава такова поведение ще доведе:

  1. до появата на погрешна ситуация
  2. цялата транзакция ще се извършва автоматично
  3. цялата транзакция ще бъде извършена в управлявания режим.

Механизъм за управление на данни В транзакцията ви позволява да блокирате данните за променливите, а не с помощта на използваната система за управление на базата данни и платформите. Такова управление на данните не се извършва по отношение на DBA данните и по отношение на зоната. Благодарение на това, ключалките са насложени "по-точно", а паралелизмът на потребителите се повдига.

Конфигурация 1C: Enterprise 8 може да работи в един от трите режима на управление на заключването в транзакцията:

  • автоматичен;
  • управляван - стандартен режим за нови конфигурации;
  • автоматично и управляемо.

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

Управляван режим Позволява ви да увеличите паралелността на потребителите в клиент-сървърната версия на работата чрез използването на по-ниско ниво на база данни с транзакционна изолация (прочетени). Когато пишете данни в транзакцията, вградените обекти автоматично блокират необходимите данни. Разработчикът е длъжен да управлява блокирането на данни в случаите, когато бизнес логиката изисква координирано и холистично четене на данни в сделката.

Автоматично и управляемо Режимът ви позволява да използвате възможността да контролирате ключалките в транзакцията само за някои конфигурационни обекти. Този режим може да се използва за оптимизиране на паралелемизма на потребителите с индивидуални обекти на приложение (например с няколко най-интензивно използвани документа) или за постепенно превод на големи конфигурации към режима за управление на заключването в транзакцията.

В обобщение на разликата по време на работа в режим на автоматично заключване и в режим на контролирано заключване вижте следната таблица:

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

Специално за това, наборът от записи на регистрите на натрупването и счетоводните регистри имат имот. Блокиране на възпаления.

Ако трябва да контролирате останките и след това да напишете движенията към същия регистър, тогава този имот трябва да бъде инсталиран, за да зададете записите на този регистър в имота. Движение.

Действието на този имот е подобно на това, как ако разработчикът е инсталиран независимо (регистриран в кода) необходимите контролирани ключалки 1C: Предприятия 8. Необходимата контролирана блокираща платформа ще се настрои автоматично при записване на този набор от записи. В резултат на това други управлявани транзакции, използващи подобни блокиране, няма да могат да започнат да четат този регистър до края на текущия сделки.

По-долу е дадено ръководство за блокиране на данни "Ръчно" при четене на данните за регистъра на натрупването. Счетоводство При обработката на документа Фактура. В този пример, контролирани ключалки се създават и инсталират изцяло чрез вградения език.

Системата "1c: Enterprise" ви позволява да използвате два режима на база данни: автоматичен режим на заключване в транзакцията и контролирани ключалки в транзакцията.

Фундаменталната разлика в тези режима е както следва. Режимът за автоматично заключване не изисква разработчик на каквито и да било действия за контрол на ключалките в транзакцията по ред. Тези правила се предоставят от системната платформа "1C: Enterprise", като се използват нива на изолация на транзакции в даден СУБД. Такъв начин на работа е най-прост за разработчика, но в някои случаи (например с интензивна едновременна работа. голямо число Потребители) Входното ниво на изолиране на транзакциите в СУБД не може да осигури достатъчно паралелизъм на работата, която се проявява под формата на голям брой конфликти на ключалки по време на работа на потребителите.

Когато работите с контролирани ключалки, системата "1c: Enterprise" използва много повече ниско ниво Изолация на транзакции в СУБД, което ви позволява значително да увеличите паралелизма на работата на приложеното решение. Въпреки това, за разлика от автоматичния режим на заключване, това ниво Изолирането на транзакции вече не може да изпълни всички правила за работа с данни в сделката. Следователно, когато работите в управляем режим, разработчикът се изисква самостоятелно да контролира ключалките, инсталирани в транзакцията.

В обобщение на разликата по време на работа в режим на автоматично заключване и в режим на контролирано заключване вижте следната таблица:

Настройване на заключването в конфигурацията

Конфигурацията има режим на управление на имота. Всяко приложение за конфигуриране също има режим на блокиране на данни.
Режимът за блокиране на данни за цялата конфигурация като цяло може да бъде настроен на автоматични стойности, управлявани (по подразбиране за нова конфигурация) и автоматично и управляемо. Стойностите са автоматични и управлявани означават, че съответният режим на заключване ще се използва за всички конфигурационни обекти, независимо от стойностите, зададени за всеки от обектите. Стойността е автоматична и контролирана означава, че режимът, който е посочен в неговия имот, е автоматичен или контролиран, ще се използва за конкретен обект на конфигуриране.
Трябва да се отбележи, че режимът на блокиране на данни, определен за обекта на метаданните, е зададен за транзакции, които са инициирани от системата "1c: Enterprise", когато работите с данните на този обект (например, когато променяте данните за обекта).
Ако например операцията за запис на обект се извършва в транзакция, иниция, инициирана от разработчика (методът на стартовата транзакция ()), режимът за управление на блока ще бъде определен от параметъра за блокиране
Методи Стартиране на напрежение (), а не стойността на свойствата на метаданните обект на режима на блокиране на данни.
По подразбиране параметърът за блокиране има стойност на регистрираните блокове. Автоматично, така за
За да използвате контролирани ключалки в изрична транзакция, трябва да зададете стойността на този параметър.
Разтърси ключалки .. продължава.

Работа с контролирани ключалки в вградения език

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

Условията са настроени на равенството на полевата стойност на определената стойност или да въведете стойността на полето в определения диапазон.
Условията могат да бъдат зададени по два начина:

  • използване на изрично посочване на името и стойността на полето (метод за настройка () обект на блокиране на елемента);
  • използване на източника на източника на данни, съдържащ необходимите стойности (собственост на изходния обект на блокирането на елемента).

За всеки блокиращ елемент може да се зададе един от двата режима на заключване:

  • разделен
  • изключителен.

Таблицата за съвместимост на контролираните ключалки е както следва.

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

Характеристики на работата в режим "Автоматичен и управляем"

Когато работите в режим на управление на заключването, трябва да се вземат предвид и автоматични и управлявани:

Независимо от режима, определен за тази сделка, системата ще създаде съответното управлявано
Ключалка.
Режимът за управление на заключването се определя от транзакцията на самата "горна" ниво. С други думи, ако друга транзакция, започнала от началото на транзакцията, началната транзакция може да бъде изпълнена само в режима, който е инсталиран за операцията, която вече работи.

Погледнете повече подробности.

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

Втората функция е, че режимът за управление на заключването, посочен за обекта на метаданните в конфигурацията или е посочен в началото на транзакцията изрично (като параметър на началото на стартовото напрежение ()), е само "желаният" режим. Реалният режим на управление на заключването, в който ще бъде изпълнена транзакцията, зависи от това дали това предизвикателство за началото на транзакцията е първо или по това време друга транзакция вече е започнала в тази сесия на системата "1c: Enterprise".

Например, ако искате да контролирате ключалките, когато записвате записите в регистъра, когато провеждате документ, контролираният режим на заключване трябва да бъде инсталиран както за самия регистър, така и за документа, тъй като записването на вписванията в регистъра ще бъде записано в сделката отворете при писане на документ.