Šį puslapį ar jo dalį reikia sutvarkyti pagal Vikipedijos standartus Jei galite sutvarkykite Transakcija loginis duomenų
Transakcija

Šį puslapį ar jo dalį reikia sutvarkyti pagal Vikipedijos standartus. Jei galite, sutvarkykite. |
Transakcija – loginis duomenų bazių darbo vienetas, veiksmų duomenų bazėje seka. Transakcija vykdoma iki galo, arba anuliuojama visiškai. Transakciją galima apibūdinti kaip duomenų bazės transformavimą iš vienos suderintos į kitą suderintą būseną, tačiau tarpiniuose taškuose duomenų bazė yra nesuderintoje būsenoje.
Jei transakcija nepavyko todėl, jog jos metu kompiuterinė sistema nustojo dirbusi, naujai paleidus sistemą joje neturi likti neužbaigtos transakcijos pėdsakų. Pavyzdžiui, pervedant banke pinigus, pervedama suma nuskaičiuojama nuo vienos sąskaitos ir pridedama prie kitos. Normaliam darbui būtina, jog, nepriklausomai nuo bet kokių aplinkybių turi būti atlikti arba abu šie veiksmai, arba nei vienas.
Teisingai dirbančioje duomenų bazių sistemoje transakcijai būdingos šios savybės:
- Atomiškumas – transakcijos operacijos pavyksta arba visos, arba nei viena.
- Stabilumas – tiek prieš transakciją, tiek ir po jos sistema yra normalioje darbo būsenoje.
- Izoliacija – tarpiniai transakcijos operacijos rezultatai yra nematomi. Matomas galutinis jos rezultatas, kuris iškart pakeičia pradinį duomenų bazės turinį.
- Ilgalaikiškumas – jei vartotojo programa gavo informaciją, jog transakcija pavyko, transakcijos rezultatai savaime išnykti nebegali.
Angliškai šie reikalavimai sutrumpintai užrašomi kaip (atomicity, consistency, isolation, durability).
Programuojant SQL, darbo su transakcija seka yra tokia:
- Sukurti transakciją.
- Įvykdyti vieną ar kelias darbo su duomenų baze komandas.
- Įvykdyti transakciją (tik tuomet iš tiesų bus pakeistas duomenų bazės turinys).
Duomenų bazė, palaikanti transakcijas, vadinama transakcine duomenų baze. Dauguma šiuolaikinių duomenų bazių yra transakcinės.
Taip pat yra ir transakcinių : (atviro kodo, skirta GNU/Linux) ir naujausios NTFS versijos (uždaro kodo, skirta Windows).
Transakcijos J2EE aplinkoje
Enterprise lygio aplikacijose būtina užtikrinti saugų, patikimą, atkuriamą duomenų prieinamumą ir manipuliaciją jais, todėl transakcijų palaikymas vienas iš pagrindinių J2EE architektūros elementų.
J2EE aplinkoje vienos transakcijos metu palaikoma kombinuota servlet ir JSP puslapių daugelio „enterprise“ komponentų („beans“) prieiga. Kiekvienas komponentas gali turėti kelis prisijungimus prie keleto resursų valdiklių (resource managers).
J2EE aplinka palaiko abiejų programinių ir vaizdžiai deklaruojamų transakcijų demarkaciją. Komponento teikėjas (provider) Java Transaction API pagalba gali programiškai atskirti transakcijos ribas komponentų programiniame kode. Enterprise komponentai (beans) palaiko vaizdžiai deklaruotiną transakcijos demarkaciją, ir Enterprise komponentų konteineriai automatiškai pradeda ir užbaigia transakcijas remdamiesi vykdymo aplinkos. Abiem atvejais, transakcijų valdymas vykdomas pačioje J2EE aplinkoje.
J2EE transakcijų valdymo komponentų ir aplikacijų kodas yra atviras. J2EE aplikacijų serveriui būtini žemo lygio operacijų protokolai, tokie kaip tarpusavio sąveikos tarp transakcijų valdiklio ir resursų valdiklių, transakcijų perdavimo ar dviejų fazių commit protokolai. J2EE aplinka palaiko tik vadinamąsias "plokščias" ("flat") transakcijas, t. y. transakcijos negali būti sudarytos iš vaikinių/įdėtinių (child/nested) transakcijų.
Aplikacija gali atlikti transakcijų paskirstymą todėl, kad valdiklio perduodamos transakcijos skirtingiems resursų valdikliams. Transakcijų valdikliai gali bendradarbiauti tarpusavyje paskirstydami keletą transakcijų perduodamų J2EE serverio ribose. Panašiai, kaip dideliame parduotuvių tinkle, vienos parduotuvės vadybininkas gali bendradarbiausi su kitos parduotuvės vadybininku (tos pačios įmonės viduje), suteikdamas galimybę klientams mokėti už prekę vienoje prekybos vietoje, o prekę gauti kitoje. Tokios transakcijų valdymo galimybės leidžia pasiekti aukštą integracijos lygį visoje įmonėje.
Kelerius ateinančius skyriai teikia pavyzdžius šių operacijų scenarijų, kuris apima keletą platinamos sandorio dalyviai. Žemiau pateikiama keletas tokių transakcijų valdymo galimybių pavyzdžių.
1 Prieiga prie daugelio resursų
Nuo 1.3 J2EE versijos, J2EE produktai vienos transakcijos metu palaiko prieigą prie:
- Vienos duomenų bazės (leidžiama keletas prisijungimų prie tos pačios duomenų bazės)
- Vieno Java Message Service (JMS) paslaugų teikėjo
- Keleto per resource adapters (Connectors), nurodant XATransaction transakcijų lygį
Prieiga prie kelių duomenų bazių ar palaikymas keleto JMS paslaugų teikėjo vienos transakcijos metu J2EE versijoje 1.3 nėra numatyta. Kai kurie produkto teikėjai gali numatyti savo produktuose šias nestandartines galimybes. Pavyzdžiui, J2EE prieiga prie kelių duomenų bazių vienos transakcijos metu palaikoma per XA-capable tvarkykles (drivers). 1.1 Pavyzdys: Transakcijos tarp keleto resursų valdiklių
Toks scenarijus iliustruoja J2EE operaciją, kuri apima daug išteklių valdiklių. Paveiksle 1, klientas iškviečia X komponento metodą. X komponentas inicijuoja prisijungimą prie duomenų bazės A naudojant sąsają. Tada enterprise komponentas X inicijuoja Y komponento metodo iškvietimą, kuris siunčia JMS pranešimą į kitą sistemą naudojant JMS paslaugų teikėją. Po to komponentas Y inicijuoja komponento Z metodo iškvietimą, kuris atnaujina duomenis ir grąžina duomenis iš išorinės EIS sistemos naudojans išteklių adapterį, kuris veikimas pagrystas J2EE Connector architektūra. Transakcijų valdiklis J2EE serveryje koordinuoja veiksmus su trimis resursų valdikliais. Serveris užtikrina, kad duomenų bazės prieiga būtų inicijuota X komponento, pranešimo perdavimo - Y komponento ir EIS sistemos operacija, atliekama Z komponento pagalba, ir visi veiksmai arba išsaugomi arba atšaukiami.
Pav. 1 A duomenų bazė, JMS paslaugų teikėjas, ir EIS vienos transakcijos metu
Aprašant aplikacijos komponentus papildomo kodo, nusakančio transakcijos veikimą ir eigą, rašyti nereikia. Enterprise komponentai X, Y ir Z pasiekia resursus naudojant atitinkamai , JMS ir J2EE Connector architektūra. J2EE serverio transakcijų valdiklis apjungia visas sistemas kaip vienos transakcijos dalis. Sėkmingos transakcijos pabaigoje, J2EE serverio ir resursų valdikliai atlieka dviejų etapų transakcijos užbaigimą (commit), užtikrinantį abiejų sistemų atnaujinimą.
2 Transakcijos tarp serverių
J2EE produktai gali palaikyti transakcijas tarp daugelio serverių. 2.2 Pavyzdys: Transakcijos tarp J2EE serverių
Paveiksle 2, klientas iškviečia komponentą X, kuris atnaujina duomenis enterprise informacinėje sistemoje A, tada iškviečia kitą komponentą Y, kuris patalpintas kitame J2EE serveryje. Komponentas Y atlieka skaitymą - rašymą enterprise informacinėje sistemoje B.
Pav. 2 Transakcija jungia keletą J2EE serverių
Kai X iškviečia Y, abu J2EE serveriai bendrauja tarpusavyje perduodami transakcijos kontekstą iš X į Y. Sėkmingos transakcijos pabaigoje, J2EE serveriai atlieka dviejų etapų transakcijos užbaigimą (commit), užtikrinantį abiejų sistemų atnaujinimą vienos transakcijos metu.
Programuojant J2EE aplinkoje, transakcijos EJB lygyje palaikomos automatiškai, tačiau tam reikia papildomai konfigūruoti J2EE serverį. Jei tenka kreiptis į duomenų bazę tiesiai iš , transakcijos automatiškai nepalaikomos, tačiau jas nesunku realizuoti kviečiant transakcijoms skirtus .
Daugiau informacijos adresu http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/transactions/transactions3.html#1049188
Autorius: www.NiNa.Az
Išleidimo data:
vikipedija, wiki, lietuvos, knyga, knygos, biblioteka, straipsnis, skaityti, atsisiųsti, nemokamai atsisiųsti, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, pictu, mobilusis, porn, telefonas, android, iOS, apple, mobile telefl, samsung, iPhone, xiomi, xiaomi, redmi, pornografija, honor, oppo, Nokia, Sonya, mi, pc, web, kompiuteris, Informacija apie Transakcija, Kas yra Transakcija? Ką reiškia Transakcija?
Sį puslapį ar jo dalį reikia sutvarkyti pagal Vikipedijos standartus Jei galite sutvarkykite Transakcija loginis duomenu baziu darbo vienetas veiksmu duomenu bazeje seka Transakcija vykdoma iki galo arba anuliuojama visiskai Transakcija galima apibudinti kaip duomenu bazes transformavima is vienos suderintos į kita suderinta busena taciau tarpiniuose taskuose duomenu baze yra nesuderintoje busenoje Jei transakcija nepavyko todel jog jos metu kompiuterine sistema nustojo dirbusi naujai paleidus sistema joje neturi likti neuzbaigtos transakcijos pedsaku Pavyzdziui pervedant banke pinigus pervedama suma nuskaiciuojama nuo vienos saskaitos ir pridedama prie kitos Normaliam darbui butina jog nepriklausomai nuo bet kokiu aplinkybiu turi buti atlikti arba abu sie veiksmai arba nei vienas Teisingai dirbancioje duomenu baziu sistemoje transakcijai budingos sios savybes Atomiskumas transakcijos operacijos pavyksta arba visos arba nei viena Stabilumas tiek pries transakcija tiek ir po jos sistema yra normalioje darbo busenoje Izoliacija tarpiniai transakcijos operacijos rezultatai yra nematomi Matomas galutinis jos rezultatas kuris iskart pakeicia pradinį duomenu bazes turinį Ilgalaikiskumas jei vartotojo programa gavo informacija jog transakcija pavyko transakcijos rezultatai savaime isnykti nebegali Angliskai sie reikalavimai sutrumpintai uzrasomi kaip atomicity consistency isolation durability Programuojant SQL darbo su transakcija seka yra tokia Sukurti transakcija Įvykdyti viena ar kelias darbo su duomenu baze komandas Įvykdyti transakcija tik tuomet is tiesu bus pakeistas duomenu bazes turinys Duomenu baze palaikanti transakcijas vadinama transakcine duomenu baze Dauguma siuolaikiniu duomenu baziu yra transakcines Taip pat yra ir transakciniu atviro kodo skirta GNU Linux ir naujausios NTFS versijos uzdaro kodo skirta Windows Transakcijos J2EE aplinkojeEnterprise lygio aplikacijose butina uztikrinti saugu patikima atkuriama duomenu prieinamuma ir manipuliacija jais todel transakciju palaikymas vienas is pagrindiniu J2EE architekturos elementu J2EE aplinkoje vienos transakcijos metu palaikoma kombinuota servlet ir JSP puslapiu daugelio enterprise komponentu beans prieiga Kiekvienas komponentas gali tureti kelis prisijungimus prie keleto resursu valdikliu resource managers J2EE aplinka palaiko abieju programiniu ir vaizdziai deklaruojamu transakciju demarkacija Komponento teikejas provider Java Transaction API pagalba gali programiskai atskirti transakcijos ribas komponentu programiniame kode Enterprise komponentai beans palaiko vaizdziai deklaruotina transakcijos demarkacija ir Enterprise komponentu konteineriai automatiskai pradeda ir uzbaigia transakcijas remdamiesi vykdymo aplinkos Abiem atvejais transakciju valdymas vykdomas pacioje J2EE aplinkoje J2EE transakciju valdymo komponentu ir aplikaciju kodas yra atviras J2EE aplikaciju serveriui butini zemo lygio operaciju protokolai tokie kaip tarpusavio saveikos tarp transakciju valdiklio ir resursu valdikliu transakciju perdavimo ar dvieju faziu commit protokolai J2EE aplinka palaiko tik vadinamasias plokscias flat transakcijas t y transakcijos negali buti sudarytos is vaikiniu įdetiniu child nested transakciju Aplikacija gali atlikti transakciju paskirstyma todel kad valdiklio perduodamos transakcijos skirtingiems resursu valdikliams Transakciju valdikliai gali bendradarbiauti tarpusavyje paskirstydami keleta transakciju perduodamu J2EE serverio ribose Panasiai kaip dideliame parduotuviu tinkle vienos parduotuves vadybininkas gali bendradarbiausi su kitos parduotuves vadybininku tos pacios įmones viduje suteikdamas galimybe klientams moketi uz preke vienoje prekybos vietoje o preke gauti kitoje Tokios transakciju valdymo galimybes leidzia pasiekti auksta integracijos lygį visoje įmoneje Kelerius ateinancius skyriai teikia pavyzdzius siu operaciju scenariju kuris apima keleta platinamos sandorio dalyviai Zemiau pateikiama keletas tokiu transakciju valdymo galimybiu pavyzdziu 1 Prieiga prie daugelio resursu Nuo 1 3 J2EE versijos J2EE produktai vienos transakcijos metu palaiko prieiga prie Vienos duomenu bazes leidziama keletas prisijungimu prie tos pacios duomenu bazes Vieno Java Message Service JMS paslaugu teikejo Keleto per resource adapters Connectors nurodant XATransaction transakciju lygį Prieiga prie keliu duomenu baziu ar palaikymas keleto JMS paslaugu teikejo vienos transakcijos metu J2EE versijoje 1 3 nera numatyta Kai kurie produkto teikejai gali numatyti savo produktuose sias nestandartines galimybes Pavyzdziui J2EE prieiga prie keliu duomenu baziu vienos transakcijos metu palaikoma per XA capable tvarkykles drivers 1 1 Pavyzdys Transakcijos tarp keleto resursu valdikliu Toks scenarijus iliustruoja J2EE operacija kuri apima daug istekliu valdikliu Paveiksle 1 klientas iskviecia X komponento metoda X komponentas inicijuoja prisijungima prie duomenu bazes A naudojant sasaja Tada enterprise komponentas X inicijuoja Y komponento metodo iskvietima kuris siuncia JMS pranesima į kita sistema naudojant JMS paslaugu teikeja Po to komponentas Y inicijuoja komponento Z metodo iskvietima kuris atnaujina duomenis ir grazina duomenis is isorines EIS sistemos naudojans istekliu adapterį kuris veikimas pagrystas J2EE Connector architektura Transakciju valdiklis J2EE serveryje koordinuoja veiksmus su trimis resursu valdikliais Serveris uztikrina kad duomenu bazes prieiga butu inicijuota X komponento pranesimo perdavimo Y komponento ir EIS sistemos operacija atliekama Z komponento pagalba ir visi veiksmai arba issaugomi arba atsaukiami Pav 1 A duomenu baze JMS paslaugu teikejas ir EIS vienos transakcijos metu Aprasant aplikacijos komponentus papildomo kodo nusakancio transakcijos veikima ir eiga rasyti nereikia Enterprise komponentai X Y ir Z pasiekia resursus naudojant atitinkamai JMS ir J2EE Connector architektura J2EE serverio transakciju valdiklis apjungia visas sistemas kaip vienos transakcijos dalis Sekmingos transakcijos pabaigoje J2EE serverio ir resursu valdikliai atlieka dvieju etapu transakcijos uzbaigima commit uztikrinantį abieju sistemu atnaujinima 2 Transakcijos tarp serveriu J2EE produktai gali palaikyti transakcijas tarp daugelio serveriu 2 2 Pavyzdys Transakcijos tarp J2EE serveriu Paveiksle 2 klientas iskviecia komponenta X kuris atnaujina duomenis enterprise informacineje sistemoje A tada iskviecia kita komponenta Y kuris patalpintas kitame J2EE serveryje Komponentas Y atlieka skaityma rasyma enterprise informacineje sistemoje B Pav 2 Transakcija jungia keleta J2EE serveriu Kai X iskviecia Y abu J2EE serveriai bendrauja tarpusavyje perduodami transakcijos konteksta is X į Y Sekmingos transakcijos pabaigoje J2EE serveriai atlieka dvieju etapu transakcijos uzbaigima commit uztikrinantį abieju sistemu atnaujinima vienos transakcijos metu Programuojant J2EE aplinkoje transakcijos EJB lygyje palaikomos automatiskai taciau tam reikia papildomai konfiguruoti J2EE serverį Jei tenka kreiptis į duomenu baze tiesiai is transakcijos automatiskai nepalaikomos taciau jas nesunku realizuoti kvieciant transakcijoms skirtus Daugiau informacijos adresu http java sun com blueprints guidelines designing enterprise applications 2e transactions transactions3 html 1049188 Vikizodynas