Spring Boot යෙදුම් ලියන විට, දත්ත ගබඩා ක්රියාකාරකම් වල ආරක්ෂාව සහ නිරවද්යතාවය රැක ගැනීමට Transaction කියන සංකල්පය අත්යවශ්ය වේ. මේ ලිපියෙන් Transaction කුමක්ද, Spring ඒක ස්වයංක්රීයව කෙසේ පවත්වා ගන්නේද, සහ Isolation Levels, readOnly, timeout වැනි විශේෂාංග කෙළවරේදී කෙළින්ම අදාළ උදාහරණ සමඟ පැහැදිලි කරමු.
Transaction එකේ මූලික අදහස
ඔබ GTA 6 ගෙවීම් කරලා, ඒ සමඟම ගේම් එක ඔබේ ලයිබ්රරියට එකතු විය යුතුය. නමුත් ගෙවීම් වගුවට ඇතුළත් වුනත්, ලයිබ්රරියට ඇතුළත් කිරීම අසාර්ථක වුවහොත්, ඔබට “ගෙවීම් කරලා, ගේම් එක නැත” කියන තත්ත්වයක් ලැබේ. මෙය Atomicity නමින් හැඳින්වෙන, සියලු ක්රියාකාරකම් එකවර සාර්ථක විය යුතුද, නැත්නම් සියල්ලත් ආපසු පසුබැසිය යුතුද යන නීතියයි. Transaction තුළ Begin → Execute → Commit/Rollback යන පියවරයන් අනුගමනය වේ.
Spring හි @Transactional විශේෂාංගය
Spring, ඔබේ සේවා (service) බීන් එකට ප්රොක්සි (proxy) එකක් ගොඩක් කරයි. මෙය මූලිකව method එකට ඇමතුමක් ලැබෙන විට Transaction ආරම්භ කර, method එක ක්රියාත්මක කර, අවසානයේ commit හෝ rollback කරයි. ඔබේ කේතය වෙනස් නොකර, Spring සියලු transaction plumbing එක අභ්යන්තරයෙන් කළමනාකරණය කරයි.
Isolation Levels – සමකාලීන Transaction අතර සම්බන්ධතා
එකම පේළිය එකවර දෙදෙනෙකු වෙනස් කරන විට, කවුද ජයග්රහණය කරනවා, අනෙක් පාර්ශ්වයට කුමක් දක්නට ලැබේද යන්න Isolation Level මගින් නියම වේ. Spring, @Transactional(isolation = Isolation.READ_COMMITTED) වැනි අගයන් භාවිතා කර ඔබට අවශ්ය නීති තෝරා ගත හැක. READ_UNCOMMITTED (අධික අනියම්), READ_COMMITTED (පෙරනිමිය), REPEATABLE_READ, SERIALIZABLE (අතිඋච්ච) යන මට්ටම් පවතී. උදාහරණයක් ලෙස, මුදල් ගනුදෙනු වල SERIALIZABLE භාවිතා කරන්නේ අතිශය ආරක්ෂාව සඳහාය.
readOnly සහ timeout වැනි අතිරේක සැකසුම්
Query‑ම පමණක් කරන method එකකට @Transactional(readOnly = true) යොදා ගත හැක. මෙය Spring එකට entity dirty checking නොකරන්න, replica DB වලට පමණක් කියවීමට ඉඩ දේ. Timeout සකස් කරන්නේ @Transactional(timeout = 5) ලෙස, transaction එක 5 තත්පරය තුළ අවසන් නොවුවහොත් rollback වීමට.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණික සමාගම් සහ විශ්වවිද්යාල සිසුන්, Spring Boot භාවිතයෙන් මූලිකව Transaction කළමනාකරණය ඉගෙන ගැනීමෙන්, දත්ත අස්ථිර්ණතාව සහ ආරක්ෂිත ගනුදෙනු සැකසීමේ හැකියාව ලැබේ. මුදල්, බැංකු, e‑commerce වැනි ක්ෂේත්රවල වැඩ කරන සංවර්ධකයන්ට මේ මූලික කරුණු ඉතා ප්රයෝජනවත්. තවත්, readOnly flag භාවිතා කර read‑heavy සේවා වල performance වැඩි කර ගැනීමට, timeout මගින් system overload වැළැක්වීමට හැකි වේ. මේ සියල්ල, ශ්රී ලංකාවේ තාක්ෂණික ආර්ථිකය ශක්තිමත් කර, ජාත්යන්තර තලයේ තත්ත්වය අභිබවා යාමට දායක වේ.
Transaction ගැන මූලික අවබෝධයක් ලබා ගත් පසු, Spring Boot යෙදුම්වල එය නිවැරදිව ක්රියාත්මක කිරීම ඔබේ වැඩි දියුණු, ආරක්ෂිත, විශ්වාසනීය පද්ධති නිර්මාණයට මූලික පියවර වේ.