Transakční ovládání zámku. Konfigurace Překlad do spravovaného zámky Automatický zámek je neplatný v transakci

Hlavní důvody přechodu na řízené zámky:

  • Hlavním důvodem je doporučení 1C: Expert na základě čtení nebo 1C: PC
  • Problémy s paralelním provozem uživatelů ()
  • Použijte Oracle, PostgreSQL a.

Náklady na práci:

Řízené blokování

Při práci v režimu automatického ovládání zámku 1C: Společnost nastaví vysoký stupeň izolace dat v transakci na úrovni DBMS. To umožňuje zcela odstranit možnost získání non-holistických nebo nesprávných údajů bez zvláštního úsilí uplatňovaných vývojářů.

To je pohodlný I. správný přístup pro malé množství Aktivní uživatelé. Cena snadného vývoje je určité množství nadbytečných blokování na úrovni DBMS. Tyto zámky jsou spojeny jak s funkcemi implementace blokovacích mechanismů v samotném DBMS, a tak, aby DBMS nemůže brát v úvahu (a nebere v úvahu) fyzický význam a struktura metadatových objektů 1C: podniky.

Při práci s vysokou konkurencí pro zdroje (velký počet uživatelů) v určitém okamžiku, účinek snížení blokování je patrný z hlediska výkonu s paralelním režimu.

Po převodu konfigurace do řízeného režimu v platformě je aktivována další funkce "Správce zámku" a kontrola nad integritou dat není nyní na straně DBMS, ale na serveru Server 1C. To zvyšuje zatížení na železo 1C serveru (potřebné rychlejší procesory a další paměť) a ve skutečnosti vytváří i malé zpomalení (několik procent), ale mnohem významnější zlepšuje situaci se zámky (méně bloků kvůli blokádám na objekt a Ne do kombinace tabulek, menší blokové oblasti a v některých případech méně životnosti životnosti, tj. Ne až do konce transakce). Vzhledem k tomu se zlepší celkový paralelnost zlepšuje.


Nové konfigurace 1C jsou implementovány okamžitě ve zvládnutelném režimu.

  • Otázka: Je možné provést audit, a pak převést do UB?

Odpověď: Audit bude sloužit jako dodatečné zdůvodnění proveditelnosti překladu do kontrolovaných zámků a také posuzovat příspěvek automatických zámků na celkovou zpomalení dolů a zda je nutné další úsilí jiné než překlady.

  • Otázka: Přenos na UB, co přesně poskytne přístup - RDP, TeamViewer? Nebo můžete odeslat konfiguraci souboru?

Odpověď: Snažíme se omezit jednu specifickou technologii. vzdálený přístup, vhodné jakákoliv technologie vzdáleného přístupu. Pokud pro vás nezáleží, pak praktický RDP.
Můžeme provést optimalizaci souborem Sent Configuration Soubor, ale pak nebudeme moci ladit nějaké skutečné údaje a budete muset být pozorný k testování. Pokud provádíme optimalizaci na kopii základny, pak můžeme pečlivě testovat, než vám poskytneme výsledek práce.

  • Otázka: Máme 10 pravidelných programátorů, kteří každý den něco mění na konferenci. Použité obecné úložiště konfigurace ". Jak bude interakce organizována při přenosu do UB? Nebo všichni programátoři musí být zasláni na dovolenou?

Odpověď: Zpravidla jsou naše změny provedeny během několika dnů. Zbytek času je otestovat provedené změny, včetně z hlediska požadované logiky definovaných obchodních a ne technických úvah. my Můžeme provádět změny samostatný soubor Konfigurace CF a pak váš programátor povolí v úložišti. Na dovolenou nemůže být někdo odeslán. V jiných možnosti interakce se stačí souhlasit s tím, že objekty plánují zachytit své vývojáře, abychom budovali plán práce, pohodlné pro obě strany. Typicky, celá konfigurace zachycení vašich vývojářů, není nutné, nebo nám poskytne "volant" pro nás.

Mechanismus transakční bloky Slouží ke konkurenčnímu přístupu uživatele k DBMS.
Transakce je určitá neoddělitelná operace, během něhož se stav základů změní. To je minimální kvantová změna: není možné provést polovinu transakci; Pokud transakce nedokončila, základna se vrátí zpět do počátečního stavu.
Vzhledem k tomu, transakce zachycuje řadu dat, dochází k nuance na přístup k tomuto poli: Například jedna transakce změní data a druhá se snaží o ně přečíst. Výsledek čtení může být nesprávný, protože se nezapne nedávné změny. Proto na úrovni DBMS funguje izolace transakce. Jsou možné následující úrovně izolace:

  • Číst nezaměstnaní - Zatímco jedna transakce změní pole, druhá nemůže změnit, ale může číst. Nižší úroveň izolace.
  • Čtení spáchat. - Zatímco jedna transakce změní pole, druhá nemůže změnit, ani číst
  • Opakovatelné čtení. - Zatímco jedna transakce přečte pole, druhá nemůže změnit, ale může číst
  • Serializovatelná - Zatímco jedna transakce přečte pole, druhá nemůže změnit nebo číst. Všechny operace jsou konzistentní. Maximální izolační úroveň.

Pokud pro konfiguraci 1C: Instalováno podniky automatický zámekTransakce izoluje DBMS. V případě MS SQL bude opakovatelné čtení nebo serializovatelné úrovně, tj. Izolace dat je blízko maxima. To řeší problémy se správností dat, ale může vést k vzhledu zámků na úrovni DBMS během intenzivního díla uživatelů. Proto v 1C: Společnost má vlastní funkčnost se zámky, která je aktivována zahrnutím kontrolovaných zámků. V tomto případě bude přečtena úroveň izolace transakce pro MS SQL. Platforma sama o sobě izoluje data bez spoléhání se na DBMS.

Zahrnutí režimu řízeného zámku dochází v konfiguračních vlastnostech:

Režim zámku lze také nastavit pro konkrétní konfigurační objekty:

V případě, pro konfiguraci jako celek Auto režim Zámky, všechny transakce na všech registrech budou fungovat v automatickém režimu bez ohledu na režim, který je nastaven pro konfigurační objekt. Pokud je řízený podobný, budou všechny transakce v ovladatelném. Pokud je konfigurace automatická a řízená pro konfiguraci, pak bude režim pro každý objekt určen jeho nastaveními.

Pro režim je automatický a zvládnutý jeden bod. Transakce, jeden uživatel může být několik transakcí z pohledu platformy. Interaktivní chování dokumentu registru dvatransakce - záznam samotného dokumentu a uvnitř této transakční záznamové řádky pro registraci. V závislosti na režimu správy zámku pro samotný dokument a pohybující se registrace jsou možné čtyři situace:

  1. Režim dokumentu Automatický, registrovat automatický režim -\u003e
  2. Ovládaný režim dokumentu, režim Register Managed-\u003e Zaregistrujte se do spravovaného režimu
  3. Režim dokumentu Automatický režim Register Managed -\u003e Registrovat záznam v automatickém režimu
  4. Ovládaný režim dokumentu, registrovat automatický registr -\u003e výjimečná situace (chyba)

Otázka 06.59 Zkouška 1C: Profesionální na platformě. Při provádění dokumentu v libovolném registru Pokud má dokument automatický režim řízení transakčního zámku a registr je spravován (v konfiguračních vlastnostech, použije se volba "Automatická a spravovatelná"), pak takové chování povede:

Správná odpověď je druhá, definujte první transakci, pokud je automaticky automaticky.

Otázka 06.60 Zkouška 1C: Profesionální na platformě. Při provádění dokumentu v libovolném registru Pokud má dokument řízený režim ovládání transakčního zámku a registr je automatický (v konfiguračních vlastnostech, použije se volba "Automatická a spravovatelná"), pak takové chování povede:

  1. na vznik chybné situace
  2. celá transakce bude provedena automaticky
  3. celá transakce bude provedena ve spravovaném režimu.

Správná odpověď je první, definujte první transakci, pokud spravuje, pak chyba.

Otázka 06.61 Zkouška 1C: Profesionální na platformě. Při provádění dokumentu v libovolném registru Pokud má dokument automatický režim řízení transakčního zámku a registr je spravován (v konfiguračních vlastnostech, použije se volba "zvládnutelná"), pak takové chování povede:

  1. na vznik chybné situace
  2. celá transakce bude provedena automaticky
  3. celá transakce bude provedena ve spravovaném režimu.

Mechanismus správy dat V transakci umožňuje blokovat variabilní data, která nejsou pomocí používaného systému správy databáze a nástroje platformy. Takové správy dat dat není prováděn z hlediska dat DBA a z hlediska předmětu. Díky tomu jsou zámky superponovány "přesněji" a vzroste se paralelnost uživatelů.

Konfigurace 1C: Podnik 8 může pracovat v jednom ze tří režimů řízení zámku v transakci:

  • auto;
  • spravováno - standardní režim pro nové konfigurace;
  • automatické a zvládnutelné.

V automatický režim Management datových zámků používá opakovatelné čtení a serializovatelné transakční izolační úrovně poskytované systémem správy databáze. Tato úroveň izolace transakcí poskytují konzistentní a holistické čtení dat a vývojář nevyžaduje žádné další uzamčené akce správy.

Spravovaný režim Umožňuje zvýšit paralelnost uživatelů v oblasti práce klient-server prostřednictvím použití nižší úrovně databáze transakční izolace (přečtená spáchaná). Při psaní dat do transakce se vestavěné objekty automaticky blokují potřebná data. Vývojář je povinen řídit blokování dat v případech, kdy obchodní logika vyžaduje koordinované a holistické čtení dat v transakci.

Automatické a zvládnutelné Režim umožňuje používat schopnost ovládat zámky v transakci pouze pro některé konfigurační objekty. Tento režim může být použit pro optimalizaci paralelismu uživatelů s jednotlivými objekty aplikací (například s několika nejintenzivněji používanými dokumenty) nebo pro postupný překlad velkých konfigurací do režimu řízení zámku v transakci.

V souhrnu rozdílu během provozu v režimu automatického zámku a v režimu řízeného zámku naleznete v následující tabulce:

Nejčastěji se potřeba spravovat blokování dat v transakci dojde během dokumentů, pokud je třeba číst, a potom zapisovat změněné data do stejných tabulek. Pokud jsou například zbytky monitorovány při provádění dokumentu.

Zvláště pro to mají soubory záznamů akumulačních registrů a účetních registrů nemovitost. Blokové záněty.

Pokud potřebujete ovládat zbytky, a poté zapisovat pohyby do stejného registru, pak musí být tato vlastnost nainstalována tak, aby nahrála záznamy o tomto registru v majetku. Hnutí.

Činnost této nemovitosti je podobná tomu, jak se vývojář instalovat samostatně (registrovaný v kódu) nezbytné kontrolované zámky 1C: Podniky 8. Požadovaná kontrolovaná blokovací platforma se automaticky nastaví při nahrávání této sady záznamů. Výsledkem je, že ostatní spravované transakce používající podobné blokování nebudou moci tento registrovat, dokud aktuální transakční konec.

Níže je příkladem "manuálního" správy blokování dat při čtení dat akumulace registru. Účetnictví Při zpracování dokumentu Prodejní faktura. V tomto příkladu jsou řízené zámky vytvořeny a instalovány zcela prostřednictvím vestavěného jazyka.

Systém "1C: Enterprise" umožňuje používat dvě režimy databáze: režim automatického zamykání v transakci a řízené zámky v transakci.

Základní rozdíl těchto režimů je následující. Režim automatického zamykání nevyžaduje vývojáře všech akcí pro ovládání zámků v transakci v pořadí. Tato pravidla jsou poskytována systémovou platformou "1C: Enterprise" pomocí určitých úrovní izolace transakcí v daném DBMS. Takový způsob provozu je pro vývojáře nejjednodušší, ale v některých případech (například s intenzivní současnou prací. velké číslo Uživatelé) Vstupní úroveň transakční izolace v DBMS nemůže poskytnout dostatečnou paralelnost díla, která se projevuje ve formě velkého počtu konfliktů zámků během operace uživatele.

Při provozu v řízených zámkům, systém "1C: Enterprise" používá mnohem více nízká úroveň Izolace transakcí v DBMS, která umožňuje výrazně zvýšit paralelnost díla aplikovaného roztoku. Nicméně, na rozdíl od režimu automatického zamykání, tato úroveň Izolace transakce již nemůže splnit všechna pravidla pro práci s daty v transakci. Proto je při práci ve zvládnutelném režimu, vývojář je nutný pro nezávisle ovládat zámky instalované v transakci.

V souhrnu rozdílu během provozu v režimu automatického zámku a v režimu řízeného zámku naleznete v následující tabulce:

Nastavení režimu zámku v konfiguraci

Konfigurace má režim ovládání zámku vlastností. Každá konfigurační aplikace má také režim blokování dat.
Režim blokování dat pro celou konfiguraci jako celek lze nastavit na automatické hodnoty, spravované (výchozí pro novou konfiguraci) a automatické a ovladatelné. Hodnoty jsou automatické a spravovány znamenají, že odpovídající režim zámku bude použit pro všechny konfigurační objekty bez ohledu na hodnoty nastavené pro každou z objektů. Hodnota je automatická a řízená znamená, že režim, který je uveden v jeho vlastnosti, je automatický nebo řízen, bude použit pro konkrétní konfigurační objekt.
Je třeba poznamenat, že režim blokování dat zadaný pro objekt metadat je nastaven pro transakce, které jsou iniciovány systémem "1C: Enterprise" systém při práci s daty tohoto objektu (například při úpravě dat objektů).
Pokud například operace záznamu objektu provádí v transakci iniciovaném vývojářem (metoda spouštění transakce ()), režim řídicího bloku dat bude určen parametrem režimu blokování
Metody spuštění napětí () a ne hodnotu vlastností objektu metadat režimu blokování dat.
Ve výchozím nastavení má parametr režimu blokování hodnotu registrovaných bloků. Automatické, tak pro
Aby bylo možné používat řízené zámky v explicitní transakci, měli byste určit hodnotu tohoto parametru.
Houpané zámky .. Pokračování.

Práce s řízenými zámky v vestavěném jazyce

Vestavěný blok blokujícího jazyka je navržen tak, aby řídil zámky v transakci. Instance tohoto objektu lze vytvořit pomocí konstruktoru a umožňuje popsat potřebné uzamčené mezery a blokování režimy. Chcete-li nainstalovat všechny vytvořené zámky, metoda se používá k blokování () blokování objektu. Pokud se tato metoda provádí v transakci (explicitní nebo implicitní), je nainstalován zámek a konec transakce se automaticky odstraní. Pokud je metoda blokována () se provádí mimo transakci, zámek nebude instalován.

Podmínky jsou nastaveny na rovnost hodnoty pole zadané hodnoty nebo zadat hodnotu pole do zadaného rozsahu.
Podmínky lze nastavit dvěma způsoby:

  • použití explicitně určování názvu a hodnoty pole (metoda nastavení () Objekt blokování prvků);
  • použití zdroje zdroje dat obsahujícího potřebné hodnoty (vlastnost zdroje objektu blokování prvků).

Pro každý blokovací prvek lze zadat jeden ze dvou režimů zámku:

  • rozdělený
  • výjimečný.

Kompatibilita tabulka řízených zámků je následující.

Režim oddělitelného blokování předpokládá, že blokovaná data nelze změnit jinou transakcí, dokud nebude dokončena aktuální transakce.
Výjimečný režim zámku znamená, že blokovaná data nelze změnit jinou transakcí až do konce aktuální transakce a nelze číst jinou transakcí, která nastavuje oddělené blokování těchto dat.

Vlastnosti práce v režimu "Automatické a zvládnutelné"

Při práci v režimu správy zámku by měly být zohledněny dva funkce automaticky a spravovány:

Bez ohledu na režim specifikovaný pro tuto transakci systém vytvoří odpovídající spravovaný
Zámek.
Režim ovládání zámku je určen transakcí "horní" samotnou úrovní. Jinými slovy, pokud jiná transakce začala začátkem transakce, může být spouštěcí transakce provedena pouze v režimu, který je nainstalován pro transakci již spuštěnou.

Zvažte uvedené funkce podrobněji.

Prvním znakem je, že i když je transakce používána automatický režim automatického ovládání zámku, systém bude instalovat navíc a odpovídající ovládané zámky při zápisu dat v této transakci. Z toho vyplývá, že transakce prováděné v řízených zámcích mohou být v rozporu s transakcemi, které jsou prováděny v režimu automatického ovládání zámku.

Druhou vlastností je, že režim ovládání zámku zadaný pro objekt metadat v konfiguraci nebo indikován na začátku transakce explicitně (jako parametr spuštění spuštění napětí ()), je pouze "požadovaný" režim. Skutečný režim ovládání zámku, ve kterém bude transakce provedena, závisí na tom, zda je tato výzva zahájení transakce nejprve, nebo do této doby již v této relaci "1C: Enterprise" již začala zahájena další transakce.

Pokud chcete například ovládat zámky při záznamu položek registru při provádění dokumentu, musí být režim řízený zámek instalován jak pro samotný registr, tak pro dokument, protože záznam záznamů registru bude zaznamenán v transakci otevřete při psaní dokumentu.