Transaction Nedir ?
05 Aralık 2008 – 21:00Geliştirmekte olduğumuz uygulamalarımızda bir takım olaylar vardır ki, birbirine bağımlıdır ve bir bütün olarak hareket etmelidirler. Bu tarz küçük parçalara ayrılamayan işlemlere transaction denir. İşlemlerin tamamı gerçekleşmediği sürece tekil olarak çalışan işlemler çalışmamış kabul edilir. Bir örnek vermek gerekirse , geliştirdiğiniz uygulama bir bankanın internet şubesine yönelik ise, döviz bozdurma işlemi bir müştiriden döviz alımı yapıldığında dövizin miktarı kadar kasadaki döviz miktarını aktarmalı ve dövizin miktarına tekabül eden YTL kasadan düşülmelidir. Bu işlem yapılırken kişinin hesabına YTL aktarımı yapıldıktan sonra eğer bir problem olursa ve bu işlemleri birbirine bağımlı hale getirmez isek dövizde müşteride kalır yada tam terside olabilir.
bu işlemi uygulamızdaki stored procedure de :
| BEGIN TRANSACTION
UPDATE tblYtlHesap SET bakiye=bakiye + @dovizMiktari*@dovizKuru WHERE hesapNo=@musteriHesapno IF @@ERROR<>0 ROLLBACK RETURN 0 UPDATE tblDovizHesap SET bakiye=bakiye - @dovizMiktari WHERE hesapNo=@musteriHesapno IF @@ERROR<>0 ROLLBACK RETURN 0 COMMIT RETURN 1 |
SQL serverin sağladığı 3 farklı transaction vardır.
1- Auto Commit : eğer herhangi bir mod belirlenmedi ise standart olarak gelen türdürç
2 - Harici(Explicit) Transaction : kullanıcı tarafından begin tran ile başladıtılıp commit ve rollback işlemlerini belirlediğimiz moddur.
3- Dahili(Implict) Transaction : belirli ifadelerde otomatik olarak transaction başlamasını sağlar fakat, rollback ve commit işlemlerini bizim yapmamız gerekir.


2 Responses to “Transaction Nedir ?”
Çok güzel bir konuya değinmişsin, çok önemli bir makale. Aslında pek dikkate alınmayan bir konu ama yazılımcılar bir çok baş ağrısından kurtarabilir. Teşekürler makale için
By Mehmet KORDACI on Ara 6, 2008