Brava të menaxhuara në 1s 8.3. Menaxhimi i bllokimit të transaksioneve

Mekanizmi bravat e transaksionit përdoret për akses të njëkohshëm të përdoruesit në DBMS.
Një transaksion është një lloj operacioni i pandashëm gjatë të cilit ndryshon gjendja e bazës së të dhënave. Kjo është sasia minimale e ndryshimeve: nuk mund të bësh gjysmë transaksioni; nëse transaksioni nuk është përfunduar, atëherë baza e të dhënave do të kthehet në gjendjen e saj fillestare.
Meqenëse një transaksion kap një grup të dhënash, ka një nuancë në aksesin në këtë grup: për shembull, një transaksion ndryshon të dhënat, ndërsa një tjetër përpiqet t'i lexojë ato. Rezultati i leximit mund të jetë i pasaktë, sepse. nuk do të përfshijë ndryshimet e fundit. Prandaj, izolimi i transaksioneve funksionon në nivelin DBMS. Nivelet e mëposhtme të izolimit janë të mundshme:

  • Lexoni të paangazhuar- ndërsa një transaksion ndryshon grupin, tjetri nuk mund ta ndryshojë atë, por mund ta lexojë. Niveli më i ulët i izolimit.
  • Lexoni të përkushtuar- ndërsa një transaksion ndryshon grupin, tjetri nuk mund ta ndryshojë dhe as ta lexojë atë
  • Lexim i përsëritur- ndërsa një transaksion lexon grupin, tjetri nuk mund ta ndryshojë atë, por mund ta lexojë atë
  • E serializueshme- ndërsa një transaksion lexon grupin, tjetri nuk mund ta ndryshojë dhe as ta lexojë atë. Të gjitha operacionet janë të njëpasnjëshme. Niveli maksimal i izolimit.

Nëse konfigurimi 1C: Enterprise është vendosur në modaliteti i kyçjes automatike, atëherë niveli i izolimit të transaksionit zgjidhet nga DBMS. Në rastin e MS SQL, ky do të jetë nivele të leximit të përsëritur ose të serializueshëm, domethënë, izolimi i të dhënave është afër maksimumit. Kjo zgjidh problemet me korrektësinë e të dhënave, por mund të çojë në bllokim në nivelin DBMS gjatë punës intensive të përdoruesit. Prandaj, 1C: Enterprise ka funksionalitetin e vet të bllokimit, i cili aktivizohet duke aktivizuar modalitetin e bllokimit të menaxhuar. Në këtë rast, niveli i izolimit të transaksionit për MS SQL do të angazhohet në Read. Vetë platforma do të izolojë të dhënat pa u mbështetur në DBMS.

Modaliteti i bllokimit të menaxhuar aktivizohet në vetitë e konfigurimit:

Gjithashtu, mënyra e bllokimit mund të vendoset për objekte specifike të konfigurimit:

Nëse konfigurimi në tërësi është vendosur në modalitetin e kyçjes automatike, atëherë të gjitha transaksionet për të gjithë regjistrat do të funksionojnë saktësisht në modalitetin automatik, pavarësisht nga mënyra që është vendosur për objektin e konfigurimit. Nëse Menaxhohet - atëherë në mënyrë të ngjashme, të gjitha transaksionet do të jenë të menaxhuara. Nëse modaliteti i konfigurimit është vendosur në Automatik dhe menaxhohet, atëherë modaliteti për çdo objekt do të përcaktohet nga cilësimet e tij.

Ka një moment për modalitetin automatik dhe të kontrolluar. Një transaksion i vetëm për një përdorues mund të përfaqësojë disa transaksione nga pikëpamja e platformës. Për shembull, rrëshqitja në mënyrë interaktive e një dokumenti nëpër një regjistër bën dy transaksionet - një regjistrim i vetë dokumentit, dhe brenda këtij transaksioni një rekord i një grupi vargjesh sipas rastit. Në varësi të mënyrës së menaxhimit të bllokimit për vetë dokumentin dhe regjistrit që ai lëviz, katër situata janë të mundshme:

  1. Modaliteti i dokumentit Automatik, modaliteti i regjistrimit Automatik ->
  2. Modaliteti i dokumentit i menaxhuar, modaliteti i rastit të menaxhuar-> Regjistrimi i rastit i menaxhuar
  3. Modaliteti i dokumentit Automatik, modaliteti i rastit i menaxhuar -> shkrimi i rastit në modalitetin automatik
  4. Modaliteti i dokumentit i menaxhuar, modaliteti i rastit automatik -> përjashtim (gabim)

Pyetja 06.59 e provimit 1C: Platforma profesionale. Kur postoni një dokument në ndonjë libër, nëse dokumenti ka të vendosur modalitetin e menaxhimit të bllokimit automatik të transaksioneve dhe libri ka modalitetin e menaxhuar (opsioni "Automatik dhe i menaxhuar" përdoret në vetitë e konfigurimit), një postim i tillë do të rezultojë në:

Përgjigja e saktë është e dyta, ne përcaktojmë nga transaksioni i parë, nëse është automatike, atëherë gjithçka është automatike.

Pyetja 06.60 e provimit 1C: Platforma profesionale. Kur postoni një dokument në çdo regjistër, nëse dokumenti ka një modalitet të menaxhimit të bllokimit të transaksionit dhe regjistri ka modalitet automatik (në vetitë e konfigurimit, përdoret opsioni "Automatik dhe i menaxhuar"), atëherë një postim i tillë do të çojë në:

  1. në një situatë gabimi.
  2. i gjithë transaksioni do të kryhet automatikisht
  3. i gjithë transaksioni do të ekzekutohet në një mënyrë të menaxhuar

Përgjigja e saktë është e para, ne përcaktojmë nga transaksioni i parë, nëse kontrollohet, atëherë një gabim.

Pyetja 06.61 e provimit 1C: Platforma profesionale. Kur postoni një dokument në ndonjë libër, nëse dokumenti ka të vendosur modalitetin e menaxhimit të bllokimit automatik të transaksioneve dhe libri ka modalitetin e menaxhuar (opsioni "Menaxhuar" përdoret në vetitë e konfigurimit), një postim i tillë do të rezultojë në:

  1. në një situatë gabimi.
  2. i gjithë transaksioni do të kryhet automatikisht
  3. i gjithë transaksioni do të ekzekutohet në një mënyrë të menaxhuar

Sistemi 1C:Enterprise ju lejon të përdorni dy mënyra të punës me bazën e të dhënave: mënyrën e kyçjeve automatike në një transaksion dhe mënyrën e bllokimeve të menaxhuara në një transaksion.

Dallimi themelor midis këtyre mënyrave është si më poshtë. Modaliteti i kyçjes automatike nuk kërkon që zhvilluesi të bëjë asgjë për të menaxhuar bravat në një transaksion për ta bërë këtë. Këto rregulla sigurohen nga platforma e sistemit 1C: Enterprise përmes përdorimit të niveleve të caktuara të izolimit të transaksioneve në një DBMS të veçantë. Kjo mënyrë funksionimi është më e thjeshta për zhvilluesin, megjithatë, në disa raste (për shembull, kur një numër i madh përdoruesish punojnë intensivisht në të njëjtën kohë), niveli i izolimit të transaksionit të përdorur në DBMS nuk mund të sigurojë paralelizëm të mjaftueshëm, i cili manifestohet. në formën e një numri të madh të konflikteve të bllokimit kur përdoruesit punojnë.

Kur vepron në modalitetin e bllokimit të menaxhuar, sistemi 1C:Enterprise përdor një nivel shumë më të ulët të izolimit të transaksionit në DBMS, i cili mund të rrisë ndjeshëm paralelizmin e punës së përdoruesve të zgjidhjes së aplikacionit. Megjithatë, ndryshe nga mënyra e bllokimit automatik, ky nivel i izolimit të transaksionit nuk mund të sigurojë më në vetvete që të plotësohen të gjitha rregullat për të punuar me të dhënat në një transaksion. Prandaj, kur punoni në modalitetin e menaxhuar, zhvilluesi duhet të menaxhojë në mënyrë të pavarur bravat e marra në transaksion.

Në një formë përmbledhëse, ndryshimet midis punës në modalitetin e bllokimit automatik dhe në mënyrën e bllokimit të menaxhuar tregohen në tabelën e mëposhtme:

Lloji i bllokimit Niveli i izolimit të transaksionit
Bllokimet automatike
Skedari DB tabelat E serializueshme
Serveri MS SQL Regjistrimet
IBM DB2 Regjistrimet Leximi i përsëritur ose i serializueshëm
PostgreSQL tabelat E serializueshme
Baza e të dhënave Oracle tabelat E serializueshme
Bllokimet e menaxhuara
Skedari DB tabelat E serializueshme
Serveri MS SQL Regjistrimet Lexoni të përkushtuar
IBM DB2 Regjistrimet Lexoni të përkushtuar
PostgreSQL Regjistrimet Lexoni të përkushtuar
Baza e të dhënave Oracle Regjistrimet Lexoni të përkushtuar

Vendosja e modalitetit të kyçjes në konfigurim
Konfigurimi ka një veti . Çdo objekt i konfigurimit të aplikacionit ka gjithashtu një veti Modaliteti i kontrollit të bllokimit të të dhënave.
Modaliteti i kontrollit të bllokimit të të dhënave për të gjithë konfigurimin mund të vendoset në Automatik , Menaxhuar (i caktuar si parazgjedhje për një konfigurim të ri) dhe Automatik dhe i kontrolluar. Vlerat "Automatic" dhe "Menaxhuar" nënkuptojnë që mënyra e duhur e bllokimit do të përdoret për të gjitha objektet në konfigurim, pavarësisht nga vlerat e vendosura për secilin prej objekteve. Kuptimi Automatik dhe i kontrolluar do të thotë që për një objekt të caktuar konfigurimi, do të përdoret mënyra e specifikuar në vetinë e tij Modaliteti i kontrollit të bllokimit të të dhënave: Automatik ose i drejtuar .
Duhet të theksohet se mënyra e menaxhimit të bllokimit të të dhënave të specifikuar për një objekt metadata është vendosur për ato transaksione që inicohen nga 1C: Enterprise kur punoni me të dhënat e këtij objekti (për shembull, kur modifikoni të dhënat e objektit).
Nëse, për shembull, operacioni i shkrimit të një objekti kryhet në një transaksion të iniciuar nga zhvilluesi (metoda Fillimi i Transaksionit ()), atëherë mënyra e kontrollit të bllokimit të të dhënave do të përcaktohet nga vlera e parametrit Mënyra e bllokimit metodë Fillimi i Transaksionit (), jo vlera e vetive të objektit të meta të dhënave Modaliteti i kontrollit të bllokimit të të dhënave.
Cilësimi i parazgjedhur Mënyra e bllokimit ka kuptimin DataLockControlMode.Automatic, pra për
Për të përdorur modalitetin e bllokimit të menaxhuar në një transaksion të qartë, duhet të specifikoni vlerën e këtij parametri
DataLockControlControlMode.I kontrolluar (Ka kuptim të vendosni këtë parametër nëseVetia e konfigurimit të modalitetit të kontrollit të bllokimit të të dhënave është caktuar në Automatik dhe i menaxhuar) .

Puna me bravë të menaxhuar duke përdorur gjuhën 1C:Enterprise
Objekti i gjuhës së integruar ka për qëllim të menaxhojë bllokimet në një transaksion LockData. Një shembull i këtij objekti mund të krijohet duke përdorur konstruktorin dhe ju lejon të përshkruani hapësirat e nevojshme të kyçjes dhe mënyrat e kyçjes. Për të vendosur të gjitha bllokimet e krijuara, përdorni metodën Lock() të objektit LockData. Nëse kjo metodë ekzekutohet në një transaksion (të qartë ose të nënkuptuar), bravat merren dhe do të lirohen automatikisht kur transaksioni të përfundojë. Nëse metoda Lock() ekzekutohet jashtë një transaksioni, nuk do të vendosen bllokime.

Janë vendosur kushtet për barazinë e vlerës së fushës me vlerën e specifikuar ose për shfaqjen e vlerës së fushës në intervalin e specifikuar.
Kushtet mund të vendosen në dy mënyra:

● duke specifikuar në mënyrë eksplicite emrin dhe vlerën e fushës (metoda Vendos vlerën() Objekt ElementLockData);
● duke specifikuar një burim të dhënash që përmban vlerat e nevojshme (vetia DataSource e ElementLockData).

Çdo elementi bllokues mund t'i caktohet një nga dy mënyrat e bllokimit:

● të përbashkëta,
● të jashtëzakonshme.

Tabela e përputhshmërisë së bllokimit të menaxhuar duket kështu

Bllokimi i përbashkët do të thotë që të dhënat e kyçura nuk mund të ndryshohen nga një transaksion tjetër deri në fund të transaksionit aktual.
Modaliteti ekskluziv i kyçjes do të thotë që të dhënat e kyçura nuk mund të ndryshohen nga një transaksion tjetër deri në fund të transaksionit aktual dhe gjithashtu nuk mund të lexohen nga një transaksion tjetër që vendos një bllokim të përbashkët në këto të dhëna.

Karakteristikat e punës në modalitetin "Automatik dhe i kontrolluar".

Ka dy gjëra që duhen mbajtur parasysh kur veproni në modalitetin e kontrollit automatik dhe të menaxhuar të bllokimit:

● Pavarësisht nga mënyra e specifikuar për një transaksion të caktuar, sistemi do të vendosë menaxhimin e duhur
duke bllokuar.
● Mënyra e menaxhimit të bllokimit përcaktohet nga transaksioni i nivelit "të lartë". Me fjalë të tjera, nëse një transaksion tjetër ka filluar në kohën e fillimit të transaksionit, atëherë transaksioni që po fillon mund të ekzekutohet vetëm në modalitetin që është vendosur për transaksionin tashmë në ekzekutim.

Le t'i shqyrtojmë këto karakteristika në më shumë detaje.
Karakteristika e parëështë se edhe nëse përdoret mënyra e menaxhimit të bllokimit automatik për transaksionin, sistemi do të vendosë shtesë të përshtatshme brava të menaxhuara kur shkruani të dhënat në këtë transaksion. Nga kjo rezulton se transaksionet që ekzekutohen në modalitetin e bllokimit të kontrolluar mund për t'u përballur me transaksione
ekzekutimi në modalitetin e menaxhimit të bllokimit automatik.
Karakteristika e dytëështë se mënyra e menaxhimit të bllokimit është specifikuar për objektin e meta të dhënave në konfigurim ose specifikuar në mënyrë eksplicite në fillim të transaksionit (si parametër i metodës Fillimi i Transaksionit ()) është vetëm një mënyrë "e dëshiruar". Modaliteti aktual i menaxhimit të bllokimit në të cilin do të ekzekutohet transaksioni varet nga fakti nëse thirrja e dhënë për të filluar transaksionin është i pari ose një transaksion tjetër ka filluar tashmë në seancën e dhënë 1C: Enterprise deri në këtë moment.
Për shembull, nëse dëshironi të menaxhoni bllokimet kur shkruani grupe të regjistrave të librit kur postoni një dokument, atëherë modaliteti i bllokimit të menaxhuar duhet të vendoset si për vetë librin ashtu edhe për dokumentin, pasi shkrimi i grupeve të regjistrave të librit do të kryhet në transaksionin e hapur kur dokumenti është i shkruar.

Ju keni zbritur në faqen e duhur! Me shumë mundësi, në mëngjes zbuluat se 1C 8.3 juaj i preferuar nuk fillon me mesazhin: " Fillimi i një sesioni me një bazë informacioni është i ndaluar. Për të kryer një kopje rezervë…».

Gjëja e parë që duhet bërë tani është lejojini urgjentisht përdoruesit të punojnë. Pas kësaj, lexoni me qetësi artikullin deri në fund dhe zbuloni pse ndodhi kjo dhe çfarë është "Bllokimi dhe zhbllokimi nga baza e informacionit 1C 8.3".

Përvoja ime sugjeron që ju jeni një përdorues (jo një administrator sistemi ose një programues) dhe baza juaj e informacionit është një bazë informacioni skedarësh (nëse baza e të dhënave është SQL, specialistët tashmë po merren me problemin tuaj). Të fillosh ju duhet të kuptoni se në cilën dosje (disaktori) ndodhet dhe të fshini një skedar në këtë dosje - 1Cv8.cdn(Nuk keni pse ta ruani skedarin, nuk do t'ju duhet më).

*Nëse jeni specialist i IT-së, mund të vazhdoni me siguri të lexoni seksionin "Bllokimi dhe zhbllokimi i bazës së informacionit 1C".

Në dritaren me listën e bazave të informacionit, gjeni bazën tuaj (numri 1 në ilustrimin më poshtë) dhe klikoni mbi të një herë (dhe vetëm një!) me miun. Pastaj klikoni butonin "Ndrysho" (numri 2).

Mund të ketë vetëm një bazë në listë, kështu që kjo dritare mund të jetë e njohur për ju si "dritarja e nisjes 1C". Në këtë rast, thjesht klikoni butonin Ndrysho.

Nëse shihni se baza e informacionit ndodhet në këtë kompjuter ose në rrjet lokal- Përvoja ime nuk zhgënjeu - baza e të dhënave është skedar, dhe ne bëjmë gjithçka siç duhet. Kopjo këtë rrugë ( numrat 3 dhe 4).

Tani shkoni te kjo dosje.

Për çdo rast, këtu janë disa opsione për nisjen e File Explorer:

  • Ju keni Windows XP ose Windows 7. Klikoni Start, Run, ngjitni vendndodhjen e bazës së informacionit të kopjuar më parë. Eksploruesi i skedarëve hapet.
  • Ju keni Windows 7. Por nuk ka asnjë artikull Run. Ngjitni vendndodhjen menjëherë pasi të klikoni Start. Eksploruesi i skedarëve hapet.
  • Keni Windows 8 ose Windows 10. Klikoni Start, klikoni në zmadhuesin në këndin e sipërm djathtas, ngjitni vendndodhjen e bazës së informacionit të kopjuar më parë, shtypni Enter. Eksploruesi i skedarëve hapet.

  • Gjeni disketën e verdhë në shiritin e detyrave dhe klikoni mbi të. Ngjit vendndodhjen e infobazës në shiriti i adresave në krye të dritares së Explorer. (Klikoni me të djathtën në shiritin e adresave, Ndrysho adresën, kliko me të djathtën përsëri në shiritin e adresave, Paste).

  • Një mënyrë për të gjithë versionet e Windows dhe cilësimet e tij. Shtypni butonin e flamurit në tastierë dhe, pa e lëshuar, shtypni latinishten R (ose rusisht K) në tastierë. Dritarja "Run" do të hapet, ngjisni vendndodhjen e kopjuar më parë të bazës së informacionit atje dhe klikoni OK.

Duke përdorur një nga opsionet e sugjeruara, do të çoheni te dritarja e eksploruesit me vendndodhjen e bazës së informacionit.


Në dritaren e eksploruesit, gjeni skedarin 1Cv8.cdn në listën e skedarëve, kliko me të djathtën mbi të, zgjidhni "Fshi", siç tregohet në figurën e mëparshme.

Gati! "1C: Kontabiliteti" ose "1C: Menaxhimi i listës së pagave dhe burimeve njerëzore" ose "1C: Menaxhimi i tregtisë" do të lançohen sërish.

Bllokimi dhe zhbllokimi nga baza e informacionit 1C. Ne shkatërrojmë mitet.

Në këtë seksion, do të gjeni informacione unike për punën me bravë, si dhe do të merrni një përgënjeshtrim të keqkuptimeve të zakonshme në lidhje me "Bllokimi i të dhënave".

Si të vendosni një bllokim?

Mekanizmi i bllokimit të bazës së informacionit është krijuar për të përfunduar sesionet aktuale të hapura dhe për të parandaluar lidhjet e reja. Vendndodhja e funksionalitetit të kyçjes në meny mund të ndryshojë në varësi të konfigurimit. Për shembull, në UT, botimi 11 (11.3.3.163), ky është NSI dhe administrata, [Shërbimi] Bllokimi i punës së përdoruesit. Opsioni alternativ: NSI dhe administrimi, Mbështetja dhe mirëmbajtja, Bllokimi i punës së përdoruesit. Në UT, versioni 10.3 (10.3.21.2) ky është Shërbimi, Përdoruesit, Bllokimi i krijimit të lidhjeve me bazën e informacionit.

*Ka konfigurime specifike për industrinë ku kyçja do të duket ndryshe për sa i përket ndërfaqes dhe mekanizmit nga sa përshkruhet në këtë artikull. Meqenëse po shqyrtojmë një mekanizëm standard për shumicën e konfigurimeve 1C, nuk do të prekim konfigurime të veçanta specifike për industrinë.


Zgjedhja e këtij artikulli do të hapë kutinë e dialogut "Lock Users", në të cilën duhet të futni një mesazh për përdoruesit, kohën e fillimit dhe përfundimit të bllokut dhe kodin për t'u zhbllokuar.


Meqenëse futni fillimin dhe fundin e veprimit të bllokimit, duhet të jeni jashtëzakonisht të kujdesshëm në këtë dialog dhe të futni informacionin në mënyrë eksplicite. Nëse dialogu kishte aftësinë për të futur një fillim bllokues "pas 15 minutash" me një kohëzgjatje prej "20 minutash", ose të paktën këto vlera shfaqeshin për referencë bazuar në kohën absolute të fillimit dhe përfundimit të bllokimit, atëherë do të ishte e vështirë të vendosni një bllokim me një kohëzgjatje prej një viti, si kjo mund të ndodhë kur futni një gabim datë-kohë.

Parametri "Ora e fillimit" rekomandohet të caktohet si data/ora aktuale + koha e nevojshme që përdoruesit të përgatiten për dalje gjatë ruajtjes së dokumenteve të redaktuar. Për shembull, është 9:50 e mëngjesit, duke u dhënë përdoruesve 10 minuta për të ruajtur rezultatet e tyre. Koha totale e fillimit të bllokimit duhet të jetë ora 10:00.

Koha e përfundimit - nuk mund të futni, në këtë rast bllokimi i objektit do të vendoset për një kohë të pacaktuar (përgjithmonë).

Kodi i zhbllokimit është një "fjalëkalim" një herë për të filluar nga e para, pavarësisht bllokimit, i cili mund të jetë i nevojshëm në disa raste (do të diskutohet më vonë). Sigurohuni që të hyni dhe mbani mend. Ky parametër në rastin e versionit SQL të infobazës është i dukshëm në skedarin "Administrimi i serverëve të ndërmarrjeve 1C" dhe quhet "Kodi i lejes" atje.

Në rastin e versionit SQL të infobazës, kërkohet autorizim shtesë i administratorit të bazës së informacionit ose administratorit të grupit.


Pra, pasi të klikoni butonin "Vendos bllokimin" dhe një përgjigje pozitive për konfirmimin ...


…do të ktheheni në kutinë e mëparshme të dialogut, pamjen e cila ka ndryshuar:


Në këndin e poshtëm djathtas, do të shfaqet një mesazh që thotë se është planifikuar një bllokim i punës së përdoruesit. Vetëm ju do ta shihni këtë mesazh.


E planifikuar? Ndoshta ka të bëjë me detyrat rutinë?

A do të funksionojë bllokimi i planifikuar i punës së përdoruesit nëse vendoset bllokimi i detyrave të planifikuara? Po, do të funksionojë. Mekanizmi bllokues nuk përdor punë të planifikuara.

Çfarë do të shohin përdoruesit dhe unë?

Përpara fillimit të bllokimit, përdoruesit aktivë do të marrin përkujtues "të sjellshëm" për t'u mbyllur. Në këtë dialog, "Po" aktivizohet nga skadimi, kështu që përdoruesit që mungojnë nga vendi i punës do të dalin me sukses nga sesioni 1C.


Iniciatori i bllokimit merr një mesazh tjetër:


Pas fillimit të bllokimit, do të jetë e pamundur të hyni në infobazë në mënyrën e zakonshme. Si të hyni, megjithatë, do të përshkruhet më poshtë. Ju lutemi vini re se dialogu nuk përmban një tregues automatik të kohës së përfundimit të bllokimit, kështu që detyra e informimit të përdoruesve për rifillimin e punës i takon Administratorit. Ky informacion mund të specifikohet në një mesazh drejtuar përdoruesit.



Bomba shpërthen pikërisht në kohën e caktuar. Sirena vajton derisa shpërthen.

Ndryshe nga besimi popullor se seancat e përdoruesve aktivë ndërpriten me butësi, pas një paralajmërimi që mund të injorohet dhe puna vazhdon, në fakt, përfundimi, ose më mirë "prerja" e seancave aktive ndodh pikërisht sipas planit, të vështirë dhe me humbje të të gjithëve. rezultate të paruajtura. Të gjitha paralajmërimet lëshohen në intervalin nga koha kur shtypet butoni "Vendos bllokimin" deri në kohën kur fillon bllokimi, pas së cilës seanca aktive do të përfundojë pa asnjë njoftim dhe 1C do të hyjë në ciklin e përpjekjeve për të filluar përsëri konfigurimin , me një interval prej 1 minutë.

Nuk ka përjashtime për mënyrat e hyrjes së vlerave të referencës, në të cilat futet një vlerë që nuk është në referencë - nuk mund të dilni nga mënyra e hyrjes (për shembull, mbyllni 1C me një kryq), por kjo nuk do t'ju pengojë të plotësoni puna. Me interes më domethënës është modaliteti i dialogut modal, kështu që ne do të flasim për të në më shumë detaje.

*Përfundimi i seancave të përdoruesit në konfigurimet e vjetra ndodh pak më vonë se koha e caktuar, sepse. përdoruesit fillimisht marrin një alarm "Sistemi po mbyllet".

A do të shpërthejë vërtet?

Për të filluar, vërejmë se në konfigurimet e vjetra, bllokimi për iniciatorin e bllokimit mund të mos funksionojë. Dhe tani le të kalojmë në shqyrtimin e çështjes për platformën 8.3.

Një skedar ËSHTË përdorues që vendos, për shembull, të fshijë një dokument dhe më pas të shkojë në drekë, duke lënë dialogun "Shëno dokumentin për fshirje?" në ekran, do ta mbajë të hapur lidhjen me bazën e informacionit. Sigurisht, seanca e tij do të përfundojë pas drekës, pasi ai të përgjigjet "Po" ose "Jo", por deri atëherë do të shihni që ka përdorues aktivë. Në këtë rast, iniciatori i bllokimit do të shohë mesazhin e mëposhtëm:


Një mesazh gabimi i kohës së ekzekutimit do të shfaqet në regjistër, i cili nuk duhet të interpretohet si një gabim i kohës së ekzekutimit, por si "jo të gjithë përdoruesit i kanë përfunduar seancat e tyre":


Dhe kjo nuk është e vetmja arsye pse bllokimi mund të mos funksionojë. (Shihni seksionet e mëtejshme "Nga ora e kujt?" dhe "Por çfarë ndodh me përdoruesit e mi në Vladivostok?").

Dialogu modal në versionin SQL të një infobaze në format e menaxhuara

Serveri i aplikacionit 1C ka aftësinë të fshijë një seancë pavarësisht nga modaliteti i dialogut modal. Ndërfaqja 1C dhe dialogu modal do të mbeten në ekranin e përdoruesit, duke krijuar pamjen e një sesioni jo të plotë, por në fakt sesioni do të fshihet dhe lidhja me IB do të ndërpritet në kohën e duhur. Kur përpiqet të vazhdojë të punojë, përdoruesi do të shohë një mesazh gabimi "Seanca mungon ose është fshirë" ose "Seanca e përfunduar nga Administratori", në varësi të nuancave.



Dialogu modal në versionin SQL të infobazës në forma të rregullta

Seancat e përdoruesve përfundojnë.

Pas vendosjes së kyçjes, është më mirë të mos largoheni nga dialogu, sepse kur rihyni në këtë dialog përpara se të fillojë bllokimi, shfaqet një mesazh i pavërtetë se bllokimi është vendosur tashmë (edhe pse vetëm gjysma), ka zero seanca aktive (jo e vërtetë). Në të njëjtën kohë, procesi i mbylljes së përdoruesve vazhdon (kundërshton zero seanca aktive + jo plotësisht e vërtetë, sepse përdoruesit "përfundojnë veten"). Megjithëse kodi për bllokimin e punës së përdoruesit nuk është ideal, në fund të fundit, ai nuk do t'ju pengojë të vendosni bllokimin dhe të përfundoni sesionet aktive, por do të çorientojë Administratorin e Infobase.



A do të funksionojë bllokimi nëse vendosni bllokimin dhe mbyllni dialogun?

A do të funksionojë kyçi nëse vendosni një bllokim dhe dilni menjëherë nga 1C (d.m.th. përfundoni seancën 1C përpara se të fillojë bllokimi)?

Po. Mekanizmi për t'iu përgjigjur një blloku të caktuar nuk parashikon ndërveprim midis iniciatorit të bllokut dhe përdoruesve të tjerë. Seancat e përdoruesve kontrollojnë në mënyrë të pavarur nëse mund të funksionojnë.

Me orën e kujt do të funksionojë bllokimi nëse koha në kompjuterë është paksa e ndryshme?

Problem me orën jashtë sinkronizimit

Me skedarin IB, çdo kompjuter kontrollon nëse IB ka një interval kohor të caktuar bllokues dhe e krahason atë me orën e tij lokale. Varet nga saktësia e orës së tij nëse mundet këtë kompjuter përfundoni seancën saktësisht në kohën e duhur. Nëse baza bllokohet nga ora 10:00, për një kompjuter ky moment do të vijë më herët, dhe për tjetrin më vonë.

Në një mjedis domeni dhe me punën e përsosur të administratorëve të sistemit, koha në të gjithë kompjuterët sinkronizohet me kontrolluesin e domenit. Por për arsye të ndryshme, koha mund të rrëzohet: sinkronizimi i kohës me kontrolluesin e domenit nuk është konfiguruar, sinkronizimi i kohës është konfiguruar me një server të jashtëm me kohë të saktë që nuk është më i disponueshëm, dështimet e shërbimit të rrjetit ose domenit, mungesa e të drejtave për të ndryshuar koha e sistemit etj.

Duket se mund të flasim për sekonda, në raste ekstreme, minuta. Por në fakt, kompjuteri mund të mos ketë të instaluar një përditësim, për shembull. sistemi operativ, i cili mbështet kalimin në kohën sezonale (dimër / verë), dhe gabimi mund të jetë tashmë jo sekonda, por orë. Është e lehtë për të kryer një eksperiment të tillë: caktoni një bllok për 10 të mëngjesit për gjysmë ore, dhe në një nga kompjuterët vendosni kohën përpara një orë - blloku nuk do të ndikojë në të.

Prandaj, përpara se të vendosni një bllokim, kontrolloni me kujdes kohën në këndin e poshtëm të djathtë të kompjuterit me orën e dorës dhe gjithashtu kontaktoni paraprakisht administratorin e sistemit tuaj me një pyetje nëse sinkronizimi i kohës funksionon në infrastrukturën tuaj të IT.

Por çfarë ndodh me përdoruesit e mi në Vladivostok?

Problem absolut i kohës me përdorues nga zona të ndryshme kohore

Gama kohore e bllokimit ruhet në bazën e informacionit. Shikoni përmbajtjen e skedarit bllokues 1Cv8.cdn (i cili është krijuar në versionin e skedarit të IB), ai përmban kohën e fillimit të bllokimit më 17/07/2017 13:59 në formatin YYYYMMDDHHMMSS pa asnjë tregues të zonës kohore:


Pa specifikuar zonën kohore, do të ishte e qartë se për cilën orë absolute po flasim nëse ora do t'i referohej gjithmonë një zone specifike kohore, për shembull UTC + 0. Por ora lokale ruhet në bazën e të dhënave sipas orës së kompjuterit që ka iniciuar bllokimin. Nga cila zonë kohore ishte ky kompjuter nuk dihet, që do të thotë se koha absolute e bllokimit është e panjohur.

Nëse në Moskë, në një IB të centralizuar, ju bllokoni në orën 13:59, dhe ky moment kohor për përdoruesit e Moskës është në të ardhmen, atëherë për përdoruesit e së njëjtës IB në Vladivostok, 13:59 ishte 7 orë më parë. Dhe në varësi të zgjidhjes teknike, në përputhje me të cilën kryhet puna me sigurinë e informacionit të përdoruesve të Vladivostok, bllokimi i këtyre përdoruesve ose do të funksionojë ose jo.

Çfarë zgjidhje teknike mund të ketë në të cilat bllokimi nuk do të funksionojë siç duhet për përdoruesit e Vladivostok? Ato në të cilat klienti pjesa e 1C do të marrë kohë në Vladivostok, dhe jo në Moskë. Për shembull, zyrat janë të lidhura me një rrjet lokal përmes VPN, dhe pjesa e klientit 1C fillon me kompjuter lokal, duke pasur kohë UTC+10. Por nëse ata punojnë me bazën e të dhënave përmes një lidhjeje RDP ose në modalitetin RemoteApp në një server të Moskës, duke ekzekutuar pjesën e klientit 1C në këtë server, gjithçka do të jetë mirë, sepse. do të ketë kohë UTC+3.

A ka probleme të desinkronizimit të orës dhe zonës kohore në rastin e versionit SQL të infobazës?

Nr. Në këtë opsion, ekziston një "ora e serverit", e cila merret si referencë.

A do të më përjashtojnë nga Konfiguruesi nëse do të isha në të dhe bllokimi filloi të hynte në fuqi?

A do të jetë e mundur të hyni në Konfigurator pas fillimit të veprimit të bllokimit?

është e ndaluar! Kontrollimi i mundësisë së punës me konfiguruesin kryhet vetëm në fillim dhe nuk kryhet gjatë funksionimit. Prandaj, nëse një bllokues është vendosur për punë të mëvonshme në konfigurues, është shumë më e lehtë ta nisni atë së pari sesa të anashkaloni ndalimin e nisjes më vonë.

Si të hiqni bllokimin?

Në të njëjtin dialog në të cilin u vendos kyçi. Ju kujtojmë se pas vendosjes së kyçjes, në vend të butonit "Vendos bllokimin", në të ndodhet butoni "Shkyç".

Në rastin e versionit SQL të IS, zhbllokimi është gjithashtu i mundur në skedarin "Administrimi i Serverëve të Ndërmarrjeve 1C". (Shikoni më poshtë)

Për çfarë shërben kodi i zhbllokimit?

Për të hyrë në IB në momentin kur bllokimi është në fuqi. Situatat ku kjo është e nevojshme:

  • Pas vendosjes së kyçjes, seanca IS u ndërpre (me dorë ose si rezultat i bllokimit që vepron mbi vetë iniciatorin) dhe duhet të fillojë një seancë e re;
  • Koha e përfundimit të bllokimit gabimisht nuk u plotësua fare;
  • Koha e përfundimit të bllokimit është plotësuar gabimisht (për shembull, muaji ose viti tjetër është futur aksidentalisht);
  • Baza e informacionit është në versionin SQL dhe për të anuluar një bllokim të vendosur gabimisht, është e pamundur të fshini skedarin 1Cv8.cdn në drejtorinë e bazës së informacionit.

Në këtë rast, përdorni këshillën që jepet në fillim. ato. në dritaren me listën e bazave të informacionit, klikoni "Ndrysho" dhe futni Opsione shtesë linja e ekzekutimit:

ENTERPRISE /F"Z:\Exchange\UT 11" /CAllowUsers /UC12345

... duke marrë parasysh drejtorinë e vendndodhjes dhe kodin e shkyçjes.


Është më mirë ta kopjoni këtë rresht në kujtesën e fragmenteve dhe ta korrigjoni atë në dialogun "Redakto infobazën". Nëse ngatërroni llojin e thonjëzave ose rusisht "C" dhe latinisht, do të shihni një mesazh gabimi:



Në rast të hyrjes së saktë dhe nisjes së mëvonshme të 1C në modalitetin e ndërmarrjes, 1C do të zhbllokojë automatikisht dhe do të përfundojë punën e tij. Pas kësaj, do të jetë e mundur të hiqni parametrat shtesë dhe të ekzekutoni 1C si zakonisht.

Çfarë duhet të bëj nëse nuk kam vendosur një bllokim, por baza e të dhënave SQL është e bllokuar nga dikush? Megjithatë, unë nuk e di kodin e zhbllokimit.

Bllokimi i bazës së informacionit mund të vendoset nga vetë konfigurimi për kohëzgjatjen e krijimit të kopjes rezervë. Nëse procesi i krijimit nuk ka përfunduar normalisht, baza e të dhënave SQL mund të mbetet në një gjendje të bllokuar. Në këtë rast, kërkohet qasja në tastierë (më saktë, një snap-in) "Administrimi i serverëve 1C: Enterprise".

Ku ta kërkojmë?

Snap-in 1C: Enterprise Server Administration shpesh instalohet në të njëjtin server ku është vendosur Serveri SQL, si dhe ku është vendosur vetë "Serveri 1C" (ose "Serveri i Aplikimit 1C"). Edhe pse kjo nuk është e nevojshme: SQL mund të instalohet në një kompjuter, serveri i aplikacionit 1C në një tjetër dhe snap-in mund të vendoset në stacionin tuaj të punës. Me një probabilitet të lartë suksesi, mund të arrini duke bërë sa më poshtë:

  • Lidhuni nëpërmjet RDP me serverin e specifikuar në linjën Srvr=... duke përdorur hyrjen dhe fjalëkalimin e domenit tuaj. Nëse nuk mund të lidheni, pyesni administratori i sistemit t'ju shtojë në grupin e përdoruesve të desktopit në distancë. (Në rast të mohimit të të drejtave të tilla, vendosni dhe konfiguroni skedarin "Administrimi i Serverëve të Ndërmarrjeve 1C" në stacionin e punës);

  • Në server, gjeni snap-in 1C: Enterprise Server Administration;
  • Ekzekutoni snap-in, zgjeroni pemën në nyje me bazën tuaj të informacionit;

  • Në veçoritë e bazës së informacionit, zgjidhni kutinë "Bllokimi i fillimit të sesionit është aktivizuar" ose korrigjoni oraret e fillimit dhe përfundimit të bllokimit, ose shikoni "kodin e lejes" për të futur IB (aka "kodi i zhbllokimit" në dialogun e bllokimit).

Çfarë duhet të bëni nëse të gjithë përdoruesit e informacionit Bazat e të dhënave SQL doli, por ende nuk mund ta nisësh Konfiguratorin, sepse a ka përdorues aktivë?

Në nyjen "Lidhjet" të bazës së informacionit, në anën e djathtë të ekranit, mund të fshini lidhjet ekzistuese.


Këto janë larg nga të gjitha pyetjet që lidhen me temën e bllokimit të infobazës.

Nëse keni ndonjë pyetje:

  • A është e mundur të punoni në kohën e Moskës nëse merrni me qira një server në Evropë dhe nuk dëshironi të vareni nga zona e tij kohore?
  • Si të gjeni serverin e aplikacionit 1C nëse nuk dihet se ku është instaluar?
  • Si të vendosni skedarin shtesë të Administrimit të Serverit 1C:Enterprise dhe si ta konfiguroni atë?
  • Nëse ka disa serverë aplikacionesh në një rrjet lokal, çfarë duhet bërë?
  • Si të jeni në rast të një sistemi grupor? etj.

Konsulentët tanë të certifikuar të teknologjisë 1C do të jenë të lumtur t'u përgjigjen atyre.

Arsyet kryesore për kalimin në bravë të menaxhuar janë:

  • Arsyeja kryesore është rekomandimi i 1C: Ekspert i bazuar në dëshmi ose 1C: TsUP
  • Probleme me punën paralele të përdoruesve ()
  • Duke përdorur Oracle, PostgreSQL dhe.

Kostoja e punës:

Thelbi i bravave të menaxhuara

Kur punoni në modalitetin e menaxhimit të bllokimit automatik, 1C: Enterprise vendos një shkallë të lartë të izolimit të të dhënave në një transaksion në nivelin DBMS. Kjo bën të mundur që të përjashtohet plotësisht mundësia e marrjes së të dhënave jo integrale ose të pasakta pa ndonjë përpjekje të veçantë nga ana e zhvilluesve të aplikacioneve.

Kjo është një qasje e përshtatshme dhe korrekte me një numër të vogël përdoruesish aktivë. Çmimi i lehtësisë së zhvillimit është një sasi e caktuar bllokimesh të tepërta në nivelin DBMS. Këto bravë lidhen si me veçoritë e zbatimit të mekanizmave të kyçjes në vetë DBMS, ashtu edhe me faktin që DBMS nuk mund (dhe nuk e merr) parasysh kuptimin fizik dhe strukturën e objekteve të meta të dhënave 1C: Enterprise.

Kur punoni me grindje të lartë për burime (një numër i madh përdoruesish), në një moment ndikimi i tepricës së bllokimit bëhet i dukshëm për sa i përket performancës në modalitetin paralel.

Pasi konfigurimi të transferohet në modalitetin e menaxhuar, funksionaliteti shtesë i "menaxherit të bllokimit" aktivizohet në platformë dhe kontrolli i integritetit të të dhënave tani kryhet jo në anën e DBMS, por në anën e serverit 1C. Kjo rrit ngarkesën në harduerin e serverit 1C (duhen procesorë më të shpejtë dhe më shumë memorie), dhe në fakt sjell edhe një ngadalësim të lehtë (disa përqind), por përmirëson shumë më tepër situatën me bravat (më pak bllokime për shkak të bravave për objekt, dhe jo për kombinim tabelash, më pak zonë bllokuese dhe në disa raste më pak se jetëgjatësia e bllokimeve të leximit, pra jo deri në fund të transaksionit). Kjo përmirëson paralelizmin e përgjithshëm.


Konfigurimet e reja të kompanisë 1C zbatohen menjëherë në një mënyrë të kontrolluar.

  • Pyetje: A është e mundur që fillimisht të bëhet një audit, e më pas të transferohet në UB?

Përgjigje: Është e mundur që auditimi të shërbejë si një justifikim shtesë për përshtatshmërinë e kalimit në brava të menaxhuara, si dhe për të vlerësuar kontributin e bravave automatike në ngadalësimin e përgjithshëm dhe nëse nevojiten përpjekje shtesë përveç transferimit.

  • Pyetje: Për të transferuar në UB, çfarë lloj aksesi duhet të sigurohet - RDP, TeamViewer? Apo mund të më dërgoni skedarin e konfigurimit?

Përgjigje: Ne përpiqemi të mos kufizohemi në një teknologji specifike akses në distancë, mirë çdo teknologji aksesi në distancë. Nëse nuk ka rëndësi për ju, atëherë RDP është më praktik.
Ne mund të optimizojmë sipas skedarit të konfigurimit të dërguar, por atëherë nuk do të jemi në gjendje të korrigjojmë disa të dhëna reale dhe do të duhet të provoni më me kujdes. Nëse kryejmë optimizim në një kopje të bazës, atëherë mund të testojmë plotësisht përpara se t'ju dërgojmë rezultatin e punës.

  • Pyetje: Kemi 10 programues me kohë të plotë që ndryshojnë diçka në konferencë çdo ditë. Dyqani i konfigurimit të përbashkët është duke u përdorur." Si do të organizohet ndërveprimi gjatë transferimit në UB? Apo duhet të dërgohen të gjithë programuesit me pushime?

Përgjigje: Si rregull, ndryshimet tona bëhen brenda disa ditësh. Pjesa tjetër e kohës bie në testimin e ndryshimeve të bëra, duke përfshirë nga pikëpamja e logjikës së kërkuar të përcaktuar nga biznesi dhe jo nga konsideratat teknike. ne ne mund të bëjmë ndryshime në një skedar të veçantë konfigurimi cf , dhe më pas programuesi juaj do të kontrollojë në depo. Nuk keni pse të dërgoni askënd me pushime.. Në opsionet e tjera të ndërveprimit, ju vetëm duhet të bini dakord se cilat objekte planifikojnë të kapin zhvilluesit tuaj, në mënyrë që ne të ndërtojmë një plan pune që është i përshtatshëm për të dyja palët. Si rregull, zhvilluesit tuaj nuk kanë nevojë të kapin të gjithë konfigurimin, ose të na japin "timonin" për një ditë.

Përshpejtoni 1S duke shtypur butona të shumtë 2. Kyçet e menaxhuara. 4 shtator 2011

Nëse lexoni metodologjinë për transferimin e konfigurimit në bravë të menaxhuar nga 1C, mund të gjeni shumë gjëra interesante dhe të frikshme atje. Në fakt, gjithçka është e thjeshtë: Në vetitë e konfigurimit, ndryshoni modalitetin e bllokimit të të dhënave - "Menaxhuar". Gjithçka. Urime - sapo keni kaluar te bravat e menaxhuara. Në fakt, gjithçka është disi më e ndërlikuar - por jo shumë.

Për të filluar, një digresion i vogël teorik - pse nevojiten bravat: Kush ka akses, natyrisht, mund të lexohet këtu: http://kb.1c.ru/articleView.jsp?id=30 1C u kujdes të shkruante në mënyrë të drejtë artikull i arritshëm për bllokimet e të dhënave. Kush nuk ka akses me pak fjalë do të përshkruaj se për çfarë janë flokët:

Shembulli 1. Nëse, pasi të keni ndezur bravat e menaxhuara, nuk bëni asgjë dhe në të njëjtën kohë filloni të postoni 2 dokumente paralelisht (në fund të fundit, njëri prej tyre është ende një pjesë e sekondës më herët), atëherë marrim afërsisht figurën e mëposhtme:

Transaksioni 1 Transaksioni 2 Gjendja e mbetur
Filloni | 1 PC
| Filloni 1 PC
| | 1 PC
Leximi i mbetjeve | 1 PC
| Leximi i mbetjeve 1 PC
| | 1 PC
Fshirja nga bilancet | 0 copë
| Fshirja e bilanceve -1 PC
Përfundimi |
Përfundimi

Çfarë nuk shkon këtu? Kontrolli i mbetjeve dështoi. Dokumenti i dytë arriti të lexonte mbetjet përpara se i pari të arrinte t'i shkruante ato. Në të njëjtën kohë, pashë që kishte 1 copë në mbetje dhe i shkrova me qetësi pas të parës. Vlen të theksohet se në fakt bllokimi do të jetë ende këtu. 2 dokumente nuk do të jenë në gjendje të fshijnë bilancet në të njëjtën kohë, kjo është e nevojshme për integritetin logjik të bazës së të dhënave, por për të zgjidhur një problem të aplikuar në ky shembull vështirë se ndihmon.

Tani le të përpiqemi të rregullojmë situatën - në kodin e postimit të dokumentit, ne do të shkruajmë vendosjen e një bllokimi ekskluziv të menaxhuar menjëherë përpara se të lexojmë pjesën tjetër:

Epo, tani që kuptuam pse nevojiten bravat, mbetet vetëm të vendosim bravat e menaxhuara aty ku nevojiten: domethënë - vetëm aty ku kontrollohen mbetjet. Nëse menaxheri në bazën tuaj të të dhënave ka të drejtë të postojë një dokument, pavarësisht nëse ka një produkt (para) në bilanc apo jo, atëherë pse keni nevojë për bravë? Ju thjesht nuk mund t'i instaloni ato, ose të regjistroheni dhe të komentoni deri në momente më të mira. Nëse kontrolloni bilancet, atëherë si rregull janë 3-4 regjistra, mirë, maksimumi 10. Kontrolli mund të varet si në procedurat dhe funksionet e përgjithshme, ashtu edhe në modulet e grupit të të dhënave PH. Kodi është jashtëzakonisht i thjeshtë, hapni asistentin e sintaksës - shikoni:

duke bllokuar = NewDataLock;
LockElement = Kyç. Shto( "Regjistri i akumulimit. Mallrat ne magazina") ;
ElementLock. SetValue("Cilësia" , Referencat. Cilësia. FindByCode("1") );
ElementLock. Modaliteti = DataLockMode. Të jashtëzakonshme;
ElementLock. Burimi i të Dhënave = DocumentObject. Paketim i kthyeshëm;
ElementLock. UseFromDataSource("Nomenklatura", "Nomenklatura");
ElementLock. UseFromDataSource("Depo" , "Depo" );
Bllokimi. Blloku();

Në fakt, gjithçka është menjëherë e qartë - ne bllokojmë "mallrat në magazina", vendosim 1 matje në një formë të qartë, marrim vlerat e 2 të tjerave nga burimi i të dhënave - PM-ja e dokumentit.

Ata që lexojnë libra në 8.2 ndoshta e mbajnë mend "logjikën e re të postimit" - kur kontrolli i bilancit kryhet pasi të regjistrohen lëvizjet e dokumentit. Pyes veten pse është kjo? Por ne do të rivizatojmë të njëjtën pllakë në mënyrë që kontrolli i mbetjeve dhe bllokimi të bëhet pas regjistrimit të lëvizjeve:

Transaksioni 1 Transaksioni 2 Gjendja e mbetur
Filloni | 1 PC
| Filloni 1 PC
| | 1 PC
Fshirja nga bilancet | 0 copë
| Fshirja nga bilancet -1 PC
duke bllokuar | -1 PC
Leximi i mbetjeve Përpjekje për të bllokuar -1 PC
| Duke pritur në bllok -1 PC
| Duke pritur në bllok -1 PC
Përfundimi Duke pritur në bllok -1 PC
duke bllokuar -1 PC
Leximi i mbetjeve -1 PC
| -1 PC
Refuzimi 0 copë

Dallimi nuk është i rëndësishëm në pamje - marrim një rritje të performancës për faktin se në momentin e shlyerjes së bilanceve (regjistrimi i tyre në bazën e të dhënave, gjë që në fakt kërkon kohë) nuk ka ende një bllokim. Bllokimi ndodh më vonë drejt fundit të transaksionit, ku hiqet kontrolli i bilanceve negative, kjo plotëson plotësisht logjikën e biznesit të aplikacionit.

Duke ditur se për çfarë shërbejnë bravat, mund t'i menaxhoni vërtet ato bazuar në detyrat e biznesit që zgjidhni. DBMS janë zhvilluar bazuar në supozimin e sigurimit të mbrojtjes maksimale të të dhënave. Nëse ju, për shembull, kryeni transaksione bankare, bllokimi duhet të jetë kudo dhe në nivelin maksimal. Është më mirë të bllokohen të dhënat e tepërta sesa të lejohet mospërputhja e të dhënave.

Nëse jeni duke shitur topuz ose stilolapsa, ndoshta nuk keni nevojë për kaq shumë bravë. Nga martesa dhe riorganizimi për shkak të fajit njerëzor, ju humbni qindra herë më shumë se sa mundeni nëse dy përdorues kryenin njëkohësisht dy dokumente identike transporti.

Për të ndryshuar mes këtyre detyra të ndryshme DBMS shpiku nivelet e izolimit. Duke vendosur nivelin e izolimit të transaksionit, ju mund t'i tregoni DBMS-së se cilat bllokime duhet të vendosin në raste të ndryshme (kur shkruani dhe lexoni në një transaksion), në raste të ndryshme, S (ju mund të lexoni nuk mund të shkruani) ose X (nuk mund të lexoni as shkruaj) imponohen bravë.

Pra, në modalitetin automatik, pothuajse gjithmonë do të keni nivelin e izolimit SERIALIZueshëm, i cili do të vendosë X bravë ku është e nevojshme dhe ku nuk nevojitet, të cilat do t'ju prishin ndjeshëm jetën

Dhe në një të menaxhuar, ju do të keni READ COMITED, i cili do të imponojë dhe lëshojë menjëherë bllokimin S kur lexoni, dhe X vetëm kur shkruani. Niveli më i ndërlikuar. Bllokimi S i vendosur shpejt thjesht ju lejon të kontrolloni nëse një bllokim X është vendosur në këto të dhëna, gjë që siguron që të lexohen vetëm të dhëna të qëndrueshme, siç është zakon për një nivel të caktuar izolimi, dhe nëse keni lexuar dhe kryer veprimet e rekomanduara në artikulli i mëparshëm, atëherë nuk do të ketë as bllokime S gjatë leximit, kështu që në nivelin DBMS vetëm shkrimet do të bllokohen gjatë shkrimit - gjë që është e saktë dhe e nevojshme për konsistencën e të dhënave.

Mënyra se si do të merreni me bravat e menaxhuara varet nga ju. Por unë do të rekomandoja të mos nxitoni për t'i instaluar ato. Takova kompani që kishin një modalitet bllokimi automatik, ndërsa fjala “bllokim i torturuar” kumbonte edhe nga goja e CEO-së dhe njëkohësisht u çaktivizua kontrolli i bilanceve negative....



Artikuj të ngjashëm: