Pages

Wednesday, November 10, 2010

Workflows ile Hataların Yakalanması


Umulmadık koşullar,tıpkı prosedüler kodlarda olduğu gibi "workflows" kuraldışı bir durum oluşturmasına neden olabilirler.Örneyin Sistemde mevcut olan "workflow",sistemde mevcut bir veri tabanı servisi "offline" olması durumunda bu veri tabanı ile iletişim kurmak isterse,bu durumda "workflow" için kuraldışı bir durum oluşturabilir.Ve "WF" ,bu gibi kural dışı durumları yakalaya bilmemiz için bazı aktiviteleri bünyesinde barındırır durumdadır.

1-FaultHandlersAktivity:

Bir "workflow"da aşağıda belirtilen şıklarda ki gibi bir kuraldışı olay ortaya çıkabilir.

.Bir geçiş ,zaman aşımına uğrayabilir.

."ThrowActivity" kullanarak kural dışı bir durumu devreden çıkarabiliriz.

.Kod aktivitelerinde veya özel aktivitelerde bulunan kod bir kuraldışı olayı devreden çıkarabilir.

.Dıştaki bileşenler kural dışı durumu devreden çıkarabilir.

Bir kural dışı durum bir aktivitede ortaya çıkarsa, "Runtime" problemin çözümlenmesi için kural dışı bir durumu "parent activity"ye gönderir."runtime" ise "workflow" hiyerarsini entepe noktaya veya uygun bir "FaultHandlersActivity" duruma ulaşıncaya kadar kural dışı bir olayı transfer etmek için sistem içinde ilerler.Herbir "FaultHandlersActivity" ,bir veya daha çok durumda ki "FaultHandlerActivity" nesnesini kapsar.

2-FaultHandlerActivity:

Bir "FaultHandlerActivity" içinde ki herbir "FaultHandlerActivity",".NET Framework" kuraldışı durum tipi ile birleştirilir ve kural dışı durumu çözmek için işleve konabilen belirli bir aktivite ayarını kapsar.Üstelik kural dışı durumları ortaya koyan farklı tipler için farklı türde aktiviteleri işleve koyabilir.

"FaultHandlerActivity" işleve konduğunda,kural dışı durumu arz eden tipleri işlev dışı yapmış olan "aktivite", işlem boyutunda başarısız bir durumda bulunur.
"FaultHandlerActivity" aktivite tamamlandığında,bağdaşık durumda ki aktivite kapalı bir durumda bulunur.

3-ThrowActivity:

Bir "workflow" ile kural dışı bir durumu olumlu şekilde ortaya çıkarmak isteyebilirsin.Örneyin "workflow" ile basit şekilde bir veritabanı server test etmek isteyebilrsiniz ve server sistemde tedarik edilmiş şekilde deyilse "workflow" durdurabilirsiniz.Böylece kodu gereksizce kurmadan uzak durabilirsiniz.

Sistemde ki kural dışı bir durumu ortaya çıkarmak için "ThrowActivity" kullanmalıyız.Ayrıca bu aktiviteyi herhangi bir ".NET Framework"ün oluşturduğu kural dışı bir olayı ortaya çıkarmak için kullanabildiğiniz gibi ayrıca "workflow"unuzda kod taraflı dosya içeriklerinde tanımladığınız olağan dışı bir durumu ortaya çıkarmak için kullanabilrisiniz.



No comments:

Post a Comment