Transaction Nedir ?

05 Aralık 2008 – 21:00

Geliş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.

Bookmark and Share
  1. 2 Responses to “Transaction Nedir ?”

  2. Ç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

  1. 1 Trackback(s)

  2. Ara 5, 2008: Tahir MUTLU ‘ nun Günlüğü :) » Blog Archive » Transaction Nedir ?

Post a Comment

Subscribe without commenting