Reporting Service Subscription’larinin isimlendirilmesi | İsmail Adar
Yazar: ismailadar 04/08/2015	Kategori:SQL Server, SQL Server Reporting Services Yorum yap
Microsoft’un güçlü raporlama aracı olan Reporting Services ile hazırlandığımız raporlar sadece kullanıcılarımız istediğinde değil otomatik olarak günün belli saatlerinde de kullanıcılara e-mail yoluyla gönderilebilmektedir. Böylece kullanıcının rapor almak için bilgisayar başında olmasına gerek kalmadan sadece mail yoluyla düzenli bir şekilde aynı rapor kendisine ulaştırılacaktır. İşte bu şekilde yapılara e-mail subscription denmektedir. Reporting Services kullanan hemen hemen her firma e-mail subscription özelliğini kullanarak belli kullanıcılara raporlarını en-mail yoluyla otomatik olarak göndermektedir. En temel haliyle Reporting Services aracında e-mail subscription özelliği aşağıdaki gibi çalışmaktadır.
Yukarıdaki resimde gördüğümüz gibi hazırladığımız raporlar bir SMTP Server üzerinden e-mail yoluyla gönderilmektedir. Ayrıca bu işin belli zaman aralıklarında yapılması için de SMTP Server yanında SQL Serverın zamanlanmış görevler için kullanılan SQL Server Agent servisi kullanılmaktadır. SQL Server Agent Servisinde her zamanlanmış görevin karşılığı Job olarak adlandırılan SQL Server nesneleri olduğu için biz zamanlanmış bir e-mail subscription oluşturduğumuzda arka planda bu işi belirtilen zamanda yapacak bir tane Job tanımlanır. Tanımlanan bu joblar SQL Server tarafından otomatik olarak isimlendirilir. İsimlendirme yapılırken aynı ismin tekrar kullanılmaması için GUID(Global unique identifier) kullanılır. GUID kullanımı her ne kadar aynı isimle iki Job oluşturulmasını engellemiş olsa bile Job’ların tutulduğu SQL Serverda hangi raporun hangi Job tarafından temsil edildiğini anlamak zorlaşıyor.
Özellikle e-mail subscription sayısı artıkça Job’larında yönetilmesi zorlaşıyor. İşte bu esnada SQL Server Reporting Services aracının kullandığı veritabanındaki ReportSchedule, subscription ve Cartalog sistem tabloları imdadımıza yetişiyor. Aşağıdaki sorgu ile SQL Server Agent altında otomatik olarak tanımlanmış olan Job’ların hangi rapora ait olduğunu listeleyen sorguya erişebilirsiniz.
SELECT Schedule.ScheduleID AS SQLAgent_Job_Name
,Subscriptions.Description AS sub_desc
,Subscriptions.DeliveryExtension AS sub_delExt
,[Catalog].NAME AS ReportName
,[Catalog].Path AS ReportPath
AND Subscriptions.Report_OID = [Catalog].ItemID</pre>
reporting services sql sql server sql server reporting subscription	2015-04-08
Etiketler:reporting services sql sql server sql server reporting subscription
Önceki: Isnull fonksiyonunda Bug mı var?
Sonraki: Webcast Örnekleri -SQL Server 2014 DMV Diagnostic Queries