2010-08-12 18 views
6

'dan eşzamansız olarak SSIS veya DTS paketini yürütme SSIS veya DTS paketlerini ASNCHRONOUSLY ASP.NET C# sayfasından yüklemek ve yürütmek için bir düğmeyi tıklatıp yürütme işleminin sonunda başarı veya başarısızlığı rapor etmem gerekiyorsa başarısızlık istisnasının ayrıntıları kullanıcıya gösterilmelidir. asenkronize olması gerekiyor çünkü iş bitmek için uzun zaman alabilir. Kullanıcı ayrıca isterse, paket çalışırken yürütme işlemini iptal edebilmelidir. Birden fazla paketi paralel olarak yürütme ve her birinin ilerleyişini takip etme zorunluluğu vardır. Bunu ASP.NET'ten yapmak için çok karmaşık hale getirmek mümkün mü? Bunu yapan herhangi bir örnek kod veya bağlantı varsa lütfen bana bildirin. Şimdiden teşekkürler.ASP.NET

+0

Birden fazla havuzunuz varsa, ortak bir veritabanı tablosuna ve bu paralel yürütmeyi istediğiniz tüm işlemle yürütmek için ayrı bir sınıfa ihtiyacınız vardır. Kolay bir görev değil, bunun gibi bir tane var ama üzerinde çok çalışma saatlerimiz var ve çok özel. – Aristos

cevap

1

Kullanıcıya bir tabloda DTS/SSIS paketi yürütme isteklerini sıraya alıp bir pencere hizmetinde okuyarak ve ThreadPool sınıfını kullanarak yumurtlama iş parçacığıyla paralel olarak çalıştırarak çözdüm. iyi çalışıyor. Teşekkürler. Bu yaklaşımın dezavantajı, olayın sürmesini sağlamak, bir WCF servisi oluşturmak ve bir windows servisine ev sahipliği yapmak için en iyi ihtimalle denemek istediğim en iyi şey olacaktır. tüm cevaplarınız için teşekkürler. btw, sql sunucu aracısını kullanamıyorum, şirketimin BT politikasına göre izin verilmez.

1

Göz önünde bulundurmanız gereken bir çözüm SQLServer işlerini kullanmaktır. Paketleri, çalışma takvimi olan veya olmayan bir iş olarak ayarlayabilirsiniz. Msdb sistem veritabanında saklı yordamları ve sorguları çalıştırarak başlayabilir, iptal edebilir, iş durumunu alabilir ve hata bilgisi alabilirsiniz. Yordamları ve sorguları ASP.NET C# sayfasından çalıştırabilirsiniz.

SSIS/DTS paketlerinin işlerde çalıştırılması yaygın bir yaklaşımdır. Ve bu çözüm, işlerini yönetmek için Management Studio'yu kullanmanızı sağlar.

+0

Cevabınız için teşekkürler, ancak bu nasıl çalışır? SSIS/DTS paketleri web sunucusunda saklanır. web sunucusu üzerinde bir iş yaratmam gerekiyor mu? öyleyse, bir iş oluşturmak için SQL bileşenleri yüklemem gerekir (şirketimde sunucu ilkesinin buna izin vereceğinden emin değil)? Saklı yordamın başka bir yerde bulunan iş hakkında nasıl bileceği? – RKP

+0

SSIS/DTS'nin web sunucusunda olduğundan emin misiniz? Onlar DB ... –

+0

bir parçası olmalı, SSIS/DTS paketleri veritabanında bulunmayan, onlar web sunucusu üzerinde dosya sisteminde saklanır. Bir iş oluşturup saklı bir yordam kullanarak çağırmam gerekirse, web sunucusunda herhangi bir SQL bileşeni yüklemem gerekir mi? eğer değilse, orijinal soruma göre seçeneğe gitmek zorunda kalacağım. – RKP

0

SSIS yerine Rhino ETL'yi kullanabilirsiniz. Bu, ETL işlerinizi C# kodlamanıza olanak veren tam teşekküllü bir ETL kütüphanesidir.

+0

ETL ?? ahhh teşekkürler Google: ** E ** xtract ** T ** ransform ** L ** oad –