КампутарыІнфармацыйныя тэхналогіі

Што такое транзакцыі? Сістэмы апрацоўкі транзакцый

У свеце, дзе ўсё змяняецца так імкліва, нельга ні на хвіліну спыняцца. Гэта датычыцца і атрымання новай інфармацыі. Невядомы тэрмін або апошняя версія праграмнага прадукту - гэта падстава папоўніць веды ў той ці іншай сферы. Сёння мы пагаворым аб тым, што такое транзакцыі, як гэта працуе.

Ўвядзенне ў тэрміналогію

Разнастайныя праграмныя прадукты аўтаматызацыі бізнес-працэсаў трывала абгрунтаваліся на рынку ў апошнія 15 гадоў. Гэта патрабуе ўмення працаваць з праграмным забеспячэннем на розных узроўнях ўзаемадзеяння: у якасці аператара, праграміста, бухгалтара і г.д. Таму так важна разуменне некаторых механізмаў працы праграмы. Для пачатку разбярэмся з такім часта сустракаюцца і страшным многіх тэрмінам, як транзакцыя. Часцей за ўсё за прыгожым запазычаным словам хаваецца далёка не такое складанае з'ява, як многія сабе ўяўляюць, прамаўляючы новы тэрмін, спрабуючы ягоную на слых. Давайце разбярэмся ў тым, што такое транзакцыі.

азначэнне паняцця

Гэта абазначэнне выкарыстоўваецца ў адносінах да любога прадукту, у якім рэалізавана праца з базай дадзеных. Некалькі аперацый, лагічна аб'яднаных у адно цэлае і выкананых па чарзе адзін за адным, і ёсць транзакцыя. У побыце транзакцыяй можна лічыць ланцужок працэдур накшталт "прачнуўся - памыўся - апрануўся - паснедаў - паехаў на працу".

Разгледзім азначанае паняцце на прыкладзе прадуктаў 1С. Транзакцыя - гэта такая ж непадзельная паслядоўнасць дзеянняў. Наглядным узорам можа паслужыць запіс пра адзінку тавару: адкрыццё патрэбнага даведніка, стварэнне новага элемента, запаўненне прадугледжаных палёў. Для таго каб усе гэтыя дзеянні прывялі да жаданага выніку, неабходна выконваць іх строга з першага і па апошнюю. Толькі пры такой умове працэдура будзе лічыцца паспяховай. У адваротным жа выпадку адбываецца адмена транзакцыі.

Разгляданыя працэсы могуць быць як аўтаматычнымі, то ёсць прадугледжанымі ў сістэме, так і дапісаў ўручную распрацоўшчыкам пасля куплі гатовага прадукту з мэтай зрабіць апошні больш зручным для карыстальнікаў канкрэтнага прадпрыемства. Акрамя таго, з аўтаматычнай рэжыму, калі паводзіны сістэмы рэгулюецца ўбудаванымі механізмамі, транзакцыі можна перавесці ў кіраваны.

Транзакцыі ў 1С: тонкасці убудаванага мовы

Што такое транзакцыі ў агульным выпадку, нам зразумела. Але паколькі кожная кампанія, якая займаецца распрацоўкай праграмнага забеспячэння, робіць гэта па-свойму, існуюць пэўныя адрозненні паміж транзакцыямі наогул і транзакцыямі ў 1С у прыватнасці. Напрыклад, укладзеныя (транзакцыя ўнутры транзакцыі) у 1С не падтрымліваюцца.

З пункту гледжання сінтаксісу аператары убудаванага мовы дастаткова простыя. Пачатак працэсу аб'яўляецца з дапамогай спецыяльнай працэдуры НачатьТранзакцию (). Працэдура ЗафиксироватьТранзакцию () выкарыстоўваецца для запісу зменаў у ходзе выканання дзеянняў. Калі ў працэсе выканання адбыўся збой, ёсць магчымасць ОтменитьТранзакцию () для адкату дасканалых зменаў.

Чаму выкарыстанне транзакцый пераважней? Таму што код у гэтых працэдурах выконваецца нашмат хутчэй. Менавіта да гэтага і імкнецца любой праграміст. Розніца ў хуткасці можа быць не так адчувальная, калі карыстальнікаў 1С ў офісе 1-2 супрацоўніка, але яе нельга не адчуць, калі гаворка ідзе пра цэлых аддзелах, адначасова выконваюць розную працу ў названай праграме.

падводныя камяні

Акрамя відавочнага плюсу, які складаецца ў сур'ёзным павелічэнні хуткасці чытання і запісы пры працы з базай, у транзакцый ёсць і свой мінус. Вернемся да прыведзенага раней прыкладу з жыцця. Што такое транзакцыі, што выконваюцца не адным чалавекам, а цэлай сям'ёй? Кожны спрабуе патрапіць у ванную, каб памыцца раней, усе тоўпяцца на кухні, таму што настаў час сняданку. У выніку члены сям'і незадаволеныя адзін адным. У лепшым выпадку гэта проста няўдалы пачатак дня, у горшым - спазненне на працу, вымову ад начальства, сарваныя планы.

У праграме адбываецца тое ж самае. Калі ўсё карыстальнікі пачнуць адначасова змяняць дадзеныя ў адным і тым жа дакуменце, якую версію лічыць апошняй? Якія дадзеныя захаваць раней? Каб не ўзнікала такой блытаніны, існуе механізм блакаванняў. Гэта значыць, што пакуль адзін карыстальнік працуе над дакументам, другі стаіць у віртуальнай чарзе і чакае. Пасля паспяховага завяршэння альбо адкату транзакцыі над дакументам можа працаваць наступны карыстальнік.

Быць ці не быць кіраваным блакаванням?

Паняцце транзакцыі не можа лічыцца цалкам разгледжаным без пытання аб залішніх блакаваннях. Што з'яўляецца вялікім злом: адсутнасць блакаванняў, якое прыводзіць да некарэктнага працэсу чытання і запісы з няправільнымі вынікамі на выхадзе, або іх занадта вялікая колькасць, якое тармозіць працу цэлага прадпрыемства?

Самае лепшае рашэнне - кіраваныя блакавання, якія з'яўляюцца залатой сярэдзінай. Пісьменны праграміст зможа наладзіць ўжо існуючы механізм пад патрэбы арганізацыі так, каб сапраўды важныя дакументы апрацоўваліся ў парадку чаргі. Па тых жа элементаў канфігурацыі, якія не маюць патрэбы ў блакаваннях, можна дазволіць свабоднае рэдагаванне.

Такім чынам, своечасовы аналіз транзакцый і правільнае стаўленне да блакаванням дазваляе ў поўнай меры выкарыстаць гнуткасць сістэмы "1С: Прадпрыемства" і аптымізаваць працу базы, звядучы да мінімуму часовыя страты.

Да чаго прыводзяць залішнія блакавання?

Пытанне зусім не рытарычнае. Калі прыбраць патрэбныя блакавання, будзе блытаніна і хаос. У базе пачнуць запасіцца няправільныя дадзеныя з-за адначасовага спісання рэшткаў або, наадварот, налічэння актываў. Але наступствы гэтыя такога роду, што выявяцца не адразу. Першы час праца будзе ісці хутка, ствараючы ілюзію правільнасці выбару адмовы ад блакаванняў. З іншага боку, непрадумана вялікая колькасць блакаванняў адразу выклікае паведамленні пра памылкі. "Не ўдаецца завяршыць абароненую транзакцыю", - папярэджвае нас сістэма. Што гэта значыць? Дзве транзакцыі ўзаемна заблакавалі адзін аднаго такім чынам, што ні адна не можа ні завяршыць пачатае, ні правесці адмену. Замкнёнае кола з "мёртвых" транзакцый будзе вісець у базе да выяўлення, прыкметна зніжаючы прадукцыйнасць сістэмы.

Лішнія аперацыі па адмене дзеянняў павялічваюць колькасць запісаў у часопісе. Акрамя таго, падобная сістэма нежыццяздольная, бо яшчэ большае павелічэнне карыстальнікаў проста павяслуе яе пад грузам "мёртвых" блакаванняў. Час прастою будзе нязменна расці. Як пазбягаць такіх сітуацый?

Ўзроўні ізаляцыі - яшчэ адзін спосаб не сесці на мель

Кажучы пра тое, што такое транзакцыі, мы згадвалі пра падводныя камяні. Працягваючы аналогію, можна з упэўненасцю сцвярджаць, што вар'іраванне ўзроўню блакаванняў - надзейны інструмент лоцмана ў падарожжы па моры 1С. Адрозніваюць два ўзроўні ізаляцыі: "толькі чытанне, без запісу" і "ні запісы, ні чытанні". У аўтаматычным рэжыме выбар недаступны. Але досыць перавесці прыкладанне ў кіраваны рэжым, і можна будзе ставіць "разумныя" абмежаванні, выбіраючы не толькі важныя дакументы, але і прызначаючы ім адпаведны ўзровень ізаляцыі.

Аднак пісьменна пастаўленая праца - гэта, перш за ўсё, прадухіленне аварыйных сітуацый, а не толькі своечасовая ліквідацыя ўжо здарыліся збояў. Памочнікам адміністратару базы дадзеных паслужаць сістэмы апрацоўкі транзакцый. Менавіта на падставе дадзеных пра тое, як прайшлі любыя аперацыі ў сістэме, ці былі яны паспяхова завершаны або адменены, можна прагназаваць далейшае паводзіны сістэмы і прадухіляць патэнцыйныя пагрозы.

Падводзім агульныя вынікі

Мы разабраліся з вызначэннем транзакцыі, разгледзелі алгарытм выканання працэсу знутры, азнаёміліся з рознымі спосабамі рэгулявання правядзення аперацый у рамках адной інфармацыйнай базы.

Як паказала практыка, механізм няпросты, але даступны для разумення і больш глыбокага вывучэння нават пачаткоўцам праграмістам і адміністратарам баз дадзеных. Спосабы рэгулявання могуць быць яшчэ не даведзены да дасканаласці, а пазбягаць праблем у цалкам аўтаматычным рэжыме таксама не ўяўляецца магчымым, але, тым не менш, з кожнай новай версіяй праграмнага забеспячэння жыццё распрацоўніка становіцца лягчэй.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.birmiss.com. Theme powered by WordPress.