Pattern ama nasıl?

13 views
Skip to first unread message

Oğuzhan YILMAZ

unread,
May 20, 2012, 7:58:58 PM5/20/12
to altdotne...@googlegroups.com
Selamlar,

IIS 7.5 üzerinde geliştirme yapıyoruz. Bunu yaparkende yoğun bir şekilde IIS'in .Net API'sini kullanıyoruz (namespace: Microsoft.Web.Administration).

Microsoft.Web.Administration API'side gidip IIS'in applicationHost.config dosyasını yönetiyor. Bildiğimiz xml bir dosya bu.

fakat şöyle bir sorun var;

Bu Microsoft.Web.Administration API'si Thread'leri yönetmiyor, yani API'yi kullanarak bir işlem yaparken, aynı anda başka bir yerden API'ye çağrı yapılıp Commit edilirse "Cannot commit vs.vs." diye işlemi durduruyor. Doğruda yapıyor ama bizim işimize gelmiyor tabi.

Sistem yoğun kullanılmaya başlayınca bu hatayı sık almaya başladık ve şöyle bir geçici çözüme gittik.

            try
            {
                MakeChanges();
            }
            catch (COMException ex)
            {
                if (ex.ErrorCode == 898)
                    MakeChanges();
            } 

yani dosyayı başka bir thread istediğinde API malum hatayı fırlattığında işlemi yapana kadar uğraş gibilerinden bir çözüm...

Esas konuya gelirsek;

Bizim bu yapıdaki thread çakışmalarını yönetebileceğimiz ve munipule edeceğimiz bir tasarıma ihtiyacımız var. 
Bu tasarım artık queue mi olur?, caching mekanizmaları mı olur? yoksa temp bir dosyada tutup arada bir esas dosyaya yazmak mı olur? karar vereceğiz fakat bu tip durumla karşılaşan tecrübeli arkadaşlar varsa nasıl çözdüklerini ve ne derece başarılı olduklarını öğrenmek isterim.


Not: Microsoft.Web.Administration çağrılarını aynı application domain'den gönderdiğimiz gibi, Tamamen farklı bir appDomain'de çalışan farklı PID'li bir uygulamalarımızda gönderebiliyor. 

--
Oğuzhan

Muharrem CETINKAYA

unread,
May 21, 2012, 5:04:31 AM5/21/12
to altdotne...@googlegroups.com
API ye yapiracaginiz isleri bir kuyrukta toplasaniz, API de bu
kuyruktan isleri alip alip yapsa uymaz mi size ?
> --
> You received this message because you are subscribed to the Google Groups
> "altdotnetturkiye" group.
> To post to this group, send email to altdotne...@googlegroups.com.
> To unsubscribe from this group, send email to
> altdotnetturki...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/altdotnetturkiye?hl=en.
>
>

Oğuzhan YILMAZ

unread,
May 21, 2012, 5:18:26 AM5/21/12
to altdotne...@googlegroups.com
Selamlar,

Tabi olabilir matıklısıda bu görünüyor fakat Gerçek zamanlı ve şuandaki yapıyı külliyen değiştiremeyeceğimiz .Net'in bu tür ihtiyaca cevap verebilecek bir kütüphanesi varsada değerlendirelim diyoruz. Sonuçta bir ThreadPool'u yönetecek bir şey lazım gibi geliyor.


21 Mayıs 2012 12:04 tarihinde Muharrem CETINKAYA <muharrem....@gmail.com> yazdı:



--
Oğuzhan

Sidar Ok

unread,
May 21, 2012, 5:31:22 AM5/21/12
to altdotne...@googlegroups.com
MSMQ ThreadPool u yonetiyor.

2012/5/21 Oğuzhan YILMAZ <asp...@gmail.com>:
Sidar Ok

http://www.sidarok.com
http://www.twitter.com/sidarok
Reply all
Reply to author
Forward
0 new messages