Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Webmaster Kaynaklari » Sunucu Tabanlı Programlama (Server Side) » ASP » Transaction & ASP


Yanıt
 
LinkBack Seçenekler
Old 02.04.2005   #1 (permalink)
 
delizeka's Avatar
 
Üyelik Tarihi: 22.04.2003
Yer: İstanbul
Yaş: 26
Mesaj: 112
Transaction & ASP


Çok fazla modülleri olan bir uygulama üzerinde çalışmaktayım. Her modül, veritabanında kendilerine ait tablolarda yer alan verileri işleyerek değişik işlem sıralarını gerçekleştirmekteler. Hazırladığım sistem kullanıcıların yüklü miktarda girdiği verileri işleyerek sonuçlar elde eden, elde ettiği sonuçlar üzerinde işlem yapan bir uygulama. Sistemin altyapısı şu anda ASP + MySQL.

Uygulamada bir işlem yapılabilmesi için, kullanıcının minumum 2-3 ayrı formu sıra ile doldurması gerekiyor. Gerekli formların, hepsinin istenen kriterlere ait doldurulduğundan emin olana dek hiçbir verinin veritabanına eklenmemesini sağlamaya çalıştım. Bunun için kullandığım yöntemde, her formdan bir sonrakine geçerken verilerin istenen formatta olup olmadığını kontrol ettirdiğim gibi, formlardan aldığım tüm verileri geçici olarak işaretliyorum. Eğer son formdaki veriler de doğru olarak gelirse tüm veritabanındaki ilgili satırların tümündeki geçici ifadesini kaldırarak sistem tarafından kullanılabilir hale getiriyorum.

Burdaki problem, kullanıcıların aradaki bir formda sistemden çıkması, Explorer penceresini kapatması ya da internetinin kesilmesi, vs gibi durumlarla işlemi yarıda bırakması ya da bırakmak zorunda kalması ve sonuç olarak veritabanında geçici olarak işaretlenmiş verilerin boşu boşuna yer tutması.

Bu yarıda kalmış verileri tabii ki zaman zaman çalıştırdığım bir script ile temizleyebilir ya da herhangi bir kişi sitenin istediğim bir sayfasına tıkladığında başlatılan bir işlem olarak çalıştırabilirim. Ancak çok sağlıklı bir çözüm olmayacaktır bence.

Az önce bir ASP.net kitabını karıştırırken kodlardan birinde MS SQL server da yapılan bir işlem için yazılan transaction işlemini gördüm. Sonra ASP ile MySQL server ile yapılıp yapılamayacağını araştırmaya başladım. ASP ile kod tabanlı bir transaction yapılabildiğini öğrendim, hatta çok sayfalı bir işlem sırasını server.transfer ve server.execute gibi metotların yardımı ile transaction kontrolü yapabileceğimi öğrendim. Yukarda bahsettiğim formdan bilgi alma işlemini tek bir transaction olarak kontrol edip edebileceğimi düşündüm.

Bunları öğrendikten sonra aklıma şu sorular takıldı ve net bir cevap bulamadım. Bu konularda bilgi verebilirseniz sevinirim.

1 - Bir kaynakta, transaction işlemi commit edilene kadar cliente bir response.write ile HTML gönderilemeyeceği yazıyordu. Bu durumda ilk formunb yer aldığı sayfada başlatılan bir transaction objesi ile tüm formlardan bilgi alınana kadar olan veri alışverişini kontrol edemeyecek miyim? Verileri geçici olarak işaretlemeden veritabanına yazmayı, formları server.transfer ile aktarmayı ve hata oluştuğunda tüm işlemi transaction ile roll back yapabileceğimi düşünmüştüm ama ilk form onaylandığında transaction'ı başlatırsam client a diğer formları gösteremeyeceğim?

2 - ASP de kullanabildiğimiz transactionı bir hata durumunda ObjectContext.SetAbort ile iptal ettiğimizde, server sadece veritabanı işlemlerini mi iptal ediyor yoksa transaction başlatıldığında script ile yapılan (mesela FSO ile bir dosya yazdırma) tüm işlemleri mi roll back yapıyor.

3 - Database server'ın ASP ile yapabileceğimiz transaction dışında bir transaction özelliği var mı? Var ise ASP + MySQL sisteminde MySQL yönünde bu transaction ı kullanabilir miyim? (sadece veritabanı üzerindeki işlemler geri alınsın ya da tamamlansın)

4 - Transaction kullanmanın işlem hızı veya başka bir konuda eksisi var mıdır?

Uzun sorum ve açıklamalarım için özür diliyor, yukardaki sorularımla ilgili kaynak gösterebilecek, yardımcı olabilecek arkadaşlardan yardımlarını rica ediyorum.

İyi günler.
delizeka şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Sponsorlu Bağlantılar
Zoque.Forum
Reklam
Yanıt

Etiketler

asp , transaction



 
Zoque'a hoşgeldiniz!
Zoque 27.02.1999 tarihinde yayın hayatına başlamış, paylaşıma dayalı bir oluşumdur. Tasarım, teknoloji, web, kültür ve sanat ana başlıkları altında bilgi paylaşımı ve benzer değerlere sahip katılımcıların birbirleriyle iletişime girmelerine imkan sağlar. "Az ama Öz" sloganından yola çıkarak, kaliteli ve nitelikli katılımı temel alır.

Saygın ve ciddi bir ortamda yardımlaşmak, haberleşmek, kendi bildiklerini diğer katılımcılarla paylaşmak isteyen, oluşumumuza düzenli katılımda bulunacağı inancını taşıyan konuklarımızı üye olmaya davet ediyoruz. [ » ]


Üye Girişi:

UslanmaM baktabul.com TEKplatform TEKplatform

En popüler ilk 100 etiket
Tag Cloud
acil adsl ajax almak arama araniyor ariyorum ariyoruz asp bilen bilgi bilgisayar blog calisma css dijital div domain dosya eleman film firefox flash font form forum fotograf freelance google gore grafik grafiker hakkinda hangi hata hatasi hosting html ilgili ilk image internet istanbul istiyorum java javascript karakter kayit kisisel kullanimi link logo mac mail menu muzik mysql nasil neden nedir online oyun photoshop php problemi program programi reklam resim satilik sayfa script server ses sistemi site sitesi son soru sorun sorunsali sorunu sql swf tasarim tasarimci tasarimcisi tasarimi turk turkce veri video web windows wordpress xml yardim yazi yeni zoque
Zoque RSS Aboneliği
Son eklenen konuları e-posta ile haber verelim mi?

Forum Yazılımı: vBulletin® Version 3.7.3 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

Arayüz/Skin "Güneş" © www.zoque.com / net. Copyright © 1999 - 2008
Forum Saati GMT +2. Şu anda saat: 05:58.