Uygulamaların Sorunlarını Giderme
AppFabric, IIS tarafından barındırılan .NET Framework sürüm 4 WCF ve WF hizmetlerini yönetme becerileri sağlar. Bu beceriler, dayanıklı iş akışı hizmetlerini barındırmaya yönelik güvenilirlik mekanizmalarını, basitleştirilmiş uygulama yapılandırmasını, .NET Framework 4 WCF ve WF hizmetlerinizin durumunu izlemeye yönelik araçları içerir. Bu bölümde, hizmetlerle ilgili sorunları gidermek üzere izleme araçlarının nasıl kullanılacağı açıklanır.
WCF ve WF hizmetleriyle ilgili sorun giderme işlemlerine başlamak için Pano'yu kullanın. IIS Yöneticisi içindeki AppFabric grubunda Pano simgesini tıklatarak Pano sayfasını görüntüleyin. Bu bileşik sayfada, IIS'de belirli bir kapsamda dağıtılmış uygulamaların durumuna yönelik bir özet görüntü ve daha ayrıntılı sorun giderme bilgilerine ulaşılabilecek bağlantılar sağlanır. Pano'da ve ilgili sayfalarında görüntülenen ölçümler yaşadığınız sorunu çözmek için yeterince ayrıntılı bilgi sağlamıyorsa, AppFabric araçlarını kullanarak System.Diagnostics izleme özelliğini etkinleştirmek yoluyla WCF veya WF uygulamasıyla ilgili sorunları giderebilirsiniz.
Pano'yu Kullanarak Sorun Giderme
Dağıtılmış uygulamalarda bir sorunun yalıtılması için bir sayaca bakılması ya da tek bir aracın kullanılması yeterli değildir. Bunun yerine, dağıtılmış hizmet ortamlarında yaşanan sorunların çözülmesi için genelde farklı araçlardan ya da sayaçlardan toplanan veriler arasında bağıntı kurularak sorunun asıl nedenine ilişkin gerçekçi belirlemeler yapılması gerekir. Pano, uygulamalarınızla ilgili sorunları gidermek üzere bilgiler arasında bağıntı kurmak için kullanabileceğiniz Kalıcı WF Örnekleri, WCF Çağrı Geçmişi ve WF Örnek Geçmişi adlı üç pencere öğesi içerir. İkinci ve üçüncü pencere öğesi geçmiş ölçümleridir; bir başka deyişle, görüntülenen öğeler, Pano'nun üst bölümündeki Zaman Aralığı zaman seçicisinden (Son 1 dakika, Son 24 saat, vb) etkilenir.
Bu üç pencere öğesinden birini ilk kez açtığınızda veya görüntülediğinizde, ölçümlerinin durumuna yönelik üst düzey bir özet görünümü sunulur. Bu düzeyde bir sorun bulunup bulunmadığını hızla görebilirsiniz. Örneğin Kalıcı WF Örnekleri pencere öğesi başlangıçta durum bilgilerini kalıcı depoya kaydetmiş olan canlı dayanıklı iş akışı örneklerinin durumlarını görüntüler. Etkin, Boşta ve Askıya Alındı durumlarına sahip olan kalıcı örneklerin sayısına yönelik bir özet durum sunar. Bu bilgiler sayesinde, kalıcı iş akışı düzeyinde bir sorun bulunup bulunmadığını hızla görebilirsiniz. Özet sayfasındaki bağlantıları tıklatarak ilgili özet sayacıyla ilgili ek bilgiler edinebilirsiniz.
Kalıcı WF Örnekleri Ölçümlerini Kullanma
Kalıcı WF Örnekleri pencere öğesi, durum bilgilerini kalıcı depoya kaydetmiş olan canlı dayanıklı iş akışı örneklerinin durumlarını gösterir. Etkin, Boşta ve Askıya Alındı durumlarına sahip olan kalıcı örneklerin sayısını gösterir. Her başlık ve özet sayacının kendisi, işlenmemiş verileri içeren Kalıcı WF Örnekleri sayfasına bağlantı sağlar.
Askıya alınan örneklerle ilgili sorunları giderirken sorunu daha iyi anlamak için Pano'daki Askıya Alınan Örnekler bağlantısını tıklatın. Kalıcı WF Örnekleri sayfasında tüm askıya alınan örnekler gösterilir. Bunlardan biri seçildiğinde, ekranın alt bölümündeki Ayrıntılar bölmesi askıya alınan örnekle ilgili özet bilgilerle doldurulur. Hatalar sekmesinde, örneğin askıya alınma nedeni gösterilir. Ek bilgilere gereksinim duyarsanız bir örneği sağ tıklatıp İzlenen Olayları Görüntüle seçeneğini belirleyebilirsiniz. Bu işlem, askıya alınan iş akışı örneğinin tüm izlenen olaylarının gösterildiği İzlenen Olaylar sayfasına götürür. Olaylar varsayılan olarak en yeni olay en başta olacak şekilde sıralanmıştır.
WCF Çağrı Geçmişi Ölçümlerini Kullanma
WCF Çağrı Geçmişi pencere öğesi, alınan ve izleme deposuna kaydedilen WCF çağrılarının sayısını görüntüler. Tamamlanan çağrıların, karşılaşılan özel durumların veya isabetli kısıtlamaların sayısının yer aldığı özet sayacı başlıkta görüntülenir. İlk sütunda, en çok tamamlanan çağrının bulunduğu ilk beş hizmet gösterilir. İkinci sütunda, hata türüne göre gruplandırılmış olarak WCF hatalarının dökümü gösterilir. Üçüncü sütunda, en çok hizmet özel durumunun bulunduğu ilk beş hizmet gösterilir. Her ölçüm, Pano'da özetlenen işlenmemiş verileri görebileceğiniz İzlenen Olaylar sayfasına bağlantı oluşturur.
Örneğin, başarısız olan bir çağrıyla ilgili daha fazla bilgi edinmek için, Başarısız Çağrılar özet sayacını tıklatın ve İzlenen Olaylar sayfasına gidin. Bu sayfa, IIS hiyerarşisindeki seçili kapsam için en son başarısız olan WCF çağrılarıyla doldurulur. Bu olaylardan biri seçildiğinde, ekranın alt bölümündeki Ayrıntılar bölmesi doldurulur. Hatalar sekmesi, başarısız olma durumuyla ilgili özel durum bilgilerini içerir. Başarısız olan çağrıyla ilgili daha ayrıntılı bağlam bilgilerine gereksinim duyarsanız olayı sağ tıklatıp Tüm İlişkili Olayları Görüntüle seçeneğini belirleyebilirsiniz. Bu işlem, İzlenen Olaylar sayfasını yeniler ve sayfayı ilkiyle ilişkili tüm olaylarla doldurur.
Not
Tüm İlişkili Olayları Görüntüle seçeneğini kullanabilmeniz için, uygulamanın İzleme düzeyinin Uçtan Uca İzleme veya daha yüksek olarak ayarlanmış olması gerekir. Bu düzey, İzleme altyapısına bir uçtan uca etkinlik kimliğini (E2EActivityId) bir başkasıyla ilişkilendiren aktarım olaylarını toplamasını bildirir.
WF Örnek Geçmişi Ölçümlerini Kullanma
WF Örnek Geçmişi pencere öğesi etkinleştirilmiş, başarısız olmuş ve tamamlanmış iş akışı örneklerinin sayısını gösterir. İlk sütunda, en çok etkinleştirilen örneklerin bulunduğu ilk beş hizmet gösterilir. İkinci sütunda, en çok başarısız olan örneklerin bulunduğu ilk beş hizmet gösterilir. Üçüncü sütunda, başarısız olan örneklerin kaçının kurtarıldığı gösterilir. Örneğin bir iş akışı örneğinin askıya alınmasına neden olan bir hata oluşursa ve iş akışı örneği daha sonra sürdürülerek başarıyla tamamlanırsa, hem Başarısız sütununda hem de Kurtarıldı sütununda sayaç olarak bir değeri görüntülenir.
WF Örnek Geçmişi pencere öğesindeki bilgileri kullanarak sorun gidermek, Kalıcı WF Örnekleri pencere öğesini kullanmaya benzer. Başlıklardan birini tıklatarak, iş akışı örneğiyle ilgili özet bilgileri görüntüleyebileceğiniz İzlenen WF Örnekleri sayfasına gidebilirsiniz. Ancak WF Örnek Geçmişi pencere öğesinde daha önce tamamlanmış iş akışı örnekleri görüntülenebileceği için, Kalıcı WF Örnekleri sayfasında gördüğünüz örnek denetimi eylemlerini burada görmezsiniz. İzlenen WF Örnekleri sayfasında bir örneği sağ tıklatıp izlenen olaylarını görüntüleyerek, bu örneğin düşük düzeyde izleme verilerini görebilirsiniz.
System.Diagnostics İzlemeyi Kullanarak Sorun Giderme
AppFabric, olayları Windows için Olay İzleme (ETW) alt sistemine yayımlayan .NET Framework 4 içinde WCF izleme ve WF izleme için geliştirmeler sunar. ETW hızlı bir olay izleme altyapısı sağlar. Ancak bazı senaryolarda, kullanılabilecek tüm tanı bilgilerini görmeniz gerekir. AppFabric ile uygulama ve site düzeyinde System.Diagnostics izlemeyi etkinleştirebilirsiniz. Bu izleme bilgileri diskteki dosyalara yazılır ve Hizmet İzleme Görüntüleyicisi aracıyla görüntülenebilir.
Uyarı
System.Diagnostics izleme, uygulamalarınızın performansını düşürür ve büyük boyutlu izleme dosyaları oluşturur. System.Diagnostics izlemeyi yalnızca uygulamanızla ilgili sorunları giderirken etkinleştirmelisiniz.
Dağıtılmış ASP.NET Uygulamasının Sorunlarını Giderme
Dayanıklı bir örnek kimliği aramak için etkinlik kimliğini kullanabilir (önceki WCF Çağrı Geçmişi Ölçümlerini Kullanma bölümünde açıklandığı gibi) ve WCF hizmetleriyle birden çok AppFabric sunucu makinesi üzerinden iletişim kuran ASP.NET uygulamasındaki sorunları gidermeye yardımcı olabilirsiniz. Bunu gerçekleştirmek üzere ekinlik izleme yapılandırmak için izleme düzeyinin en az Uçtan Uca İzleme'ye ayarlanması gerekir. Bunun nasıl oluşabileceğine bir örnek verelim.
Yönetici Web uygulamasını ASP ve IIS izleme araçlarını kullanarak izlerken, ASP.NET uygulamasındaki zaman aşımı hatalarının bir hizmetle iletişim kurduğu sırada arttığını fark ediyor. Hataları inceledikten sonra yönetici hata oluştuğu sırada etkin olan etkinlik kimliğini ediniyor. Yönetici AppFabric Panosu'nu kullanarak aynı etkinlik kimliği için bir sorgu oluşturuyor ve çalıştırıyor. Bir olay döndürülüyor: Y anında X hizmetinde bir alma olayı. Bu olayla ilişkili ileti akışını görüntülüyor ve bir “En Fazla Eşzamanlı Çağrı Kısıtlama Sayısı aşıldı” olayı olduğunu fark ediyor. Özet sayfalarına baktığında “WCF İsabetli Kısıtlamaları” değerinin 20 olarak ayarlandığını görüyor. Ayrıca son 24 saatlik süredeki çağrılara bakıyor ve son 30 dakikada ani bir değişim olduğunu görüyor. Diğer günlere bakıyor ve her gün aynı saatte aynı durumun oluştuğunu fark ediyor. Sonuçta her gün bu saatlerde yükün arttığına ve en fazla eşzamanlı çağrı kısıtlaması ayarının 25 olarak artırılması gerektiğine karar veriyor. Bunu dikkatle izleyen yönetici, kısıtlama olaylarına yönelik hatalarının çok ciddi bir şekilde azaldığını ve dolayısıyla ASP.NET uygulaması WCF hizmetlerini çağırırken oluşan zaman aşımı hatalarının da azaldığını görüyor.
SQL Server Aracısı Adlı Windows Hizmetinin İşleri
SQL Server Aracısı adlı Windows hizmeti, SQL Server işlemlerini izler, belirli yönetimsel görevleri otomatikleştirir, gerektiğinde uyarı oluşturur, işleri zamanlar ve yürütür. SQL Server işi, SQL Server Aracısı tarafından gerçekleştirilen ve veritabanıyla ilgili çeşitli görevleri kapsayan bir dizi işlemdir. AppFabric, SQL Server'ı kullanacak biçimde yapılandırıldığında, olayları İzleme veri deposuna almak ve depodaki eski verileri düzenli olarak temizlemek için SQL Server Aracısı'nı kullanır.
SQL Server Aracısı çalışmıyorsa, zamanlanmış AppFabric işleri SQL Server yüklemeniz içinden yürütülemez. Aşağıda, bu işlerin SQL Server Aracısı adlı Windows hizmeti kullanılarak zamanlandıkları şekilde yürütülmesini sağlamaya yönelik bazı adımlar sunulmaktadır:
SQL Server Aracısı adlı Windows hizmetinin çalıştığından emin olmak için durumunu denetleyin. Yönetimsel Araçlar'ı tıklatın, Hizmetler'i seçin, SQL Server Aracısı (MSSQLSVR) seçeneğini belirleyin ve Durum bilgisinin Başlatıldı olduğundan emin olun. Aksi durumda, hizmeti başlatın.
Depo başlatıldığında dört SQL Server işi oluşturulur:
Microsoft_ApplicationServer_Monitoring_AutoPurge_<izleme veritabanının adı>
Microsoft_ApplicationServer_Monitoring_ImportWfEvents_<izleme veritabanının adı>
Microsoft_ApplicationServer_Monitoring_ImportWcfEvents_<izleme veritabanının adı>
Microsoft_ApplicationServer_Monitoring_ImportTransferEvents_<izleme veritabanının adı>
SQL Server Aracısı adlı Windows hizmeti başlatılmışsa ve AppFabric işleri çalışmıyorsa, iş son çalıştırıldığında karşılaşılan hataları denetleyin.
İş örnekleri başarıyla tamamlanmasına karşı olay tablolarında hiçbir olay yoksa, İzleme veri deposunun altındaki ASFailedStagingTable tablosuna bakın. Bu tablo, hatanın nedenini anlamanıza yardımcı olabilecek ErrorNumber ve ErrorMessage gibi sütunlar içerir. Hata oluşmamışsa bu tablo boş olacaktır.
AppFabric SQL Server Aracısı işinin altında çalıştığı Windows kimliği (sahibi) oturum açmış kullanıcı olmamalıdır. Bunun yerine, önceden yapılandırılmış AS_MonitoringDbJobsAdmin Windows güvenlik hesabının kimliği kullanılmalıdır. Bu hesap ideal olarak bir etki alanı hesabı yapılmalıdır. Kurulumun ardından Initialize-ASMonitoringDatabase cmdlet'i çalıştırıldığında, izleme deposunda bu hesap için uygun izinler atanır.
SQL Server Aracısı gönderilen bir AppFabric Sunucusu işinin farklı sahiplerini aşağıdaki şekilde işler:
SQL Server Aracısı işinin sahibi bir etki alanı hesabıysa, SQL Server bu hesabın geçerli olup olmadığını denetlemek için etki alanı denetleyicisine başvurur. Geçerliyse, etki alanı hesabı altında çalışır. Geçerli değilse, bir yerel hesap altında çalışmayı dener.
SQL Server Aracısı işinin sahibi yerel bir sysadmin hesabıysa, SQL Server Aracısı, iş adımında “RunAs” kimliğini doğru şekilde kullanır ve "Execute user as AS_MonitoringDbJobsAdmin" komutunu yayımlar. Bu, işin AS_MonitoringDbJobsAdmin hesap kimliğinin altında çalışacağı anlamına gelir.
Not
SQL Server Management Studio içinden bir işin “RunAs” kimliğini görüntülemek için işi sağ tıklatın, Özellikler'i tıklatın ve ardından Gelişmiş sekmesini tıklatın. Bu değer AS_MonitoringDbJobsAdmin hesabı olarak ayarlanmış olmalıdır.
SQL Server Aracısı işinin sahibi bir yerel hesap olmasına karşın sysadmin değilse, iş adımında sağlanan ”RunAs” kimliği yoksayılır. Bu durumda, SQL Server Aracısı hizmeti bu işi yerel sahip olarak çalıştırır.
Bağlantısı kesilmiş etki alanı senaryosunda (örneğin, bir dizüstü bilgisayarda) SQL Server izleme işinin kimliği bir etki alanı kullanıcısıysa, SQL Server Aracısı etki alanına başvurarak bu hesabı doğrulamaya çalışır. SQL Server Aracısı işini çalıştıran bilgisayarın etki alanı bağlantısı kesilirse bu işlem başarısız olur. Bu hatanın etkilerini azaltmak için kullanılabilecek iki seçenek bulunmaktadır:
Bu iki seçenekten birincisi ve daha basit olanı, işi bir yerel kullanıcı hesabı kullanarak yapılandırmaktır (yani, Initialize-ASMonitoringDatabase cmdlet'ini çalıştırmaktır).
İkinci seçenek, etki alanı hesabı kullanılarak sahibi tarafından bir iş yapılandırılırsa, kullanıcının daha sonra SQL Server sp_update_job saklı yordamını kullanarak iş sahibini bir yerel kullanıcı hesabı olarak güncelleştirebilmesidir.
En iyi uygulama, SQL Server Aracısı adlı Windows hizmetini bir yerel oturum açma hesabı altında çalışacak biçimde yapılandırmaktır. Böylece, ağ bağlantısı kesilmiş olsa da hizmetin AppFabric tabanlı bir bilgisayarda çalıştırılabilmesi sağlanır. Bu hizmet bir etki alanı hesabı altında çalışıyorsa ve etki alanına erişilemiyorsa, SQL Server Aracısı adlı Windows hizmeti kimlik bilgilerini alamaz. Bu, İzleme olaylarının son hedef tablolarına doğru şekilde taşınamayacağı anlamına gelir. Sonuç olarak, Pano'da hiçbir yeni veri görüntülenmez.
SQL Server Express İşleri
Bir işin neden başarısız olduğunu tanılama adımları SQL Server'dakine oldukça benzemekle birlikte, SQL Server Express'teki ASJobsTable tablosuna bakmanız gerekecektir. Bu tablo, SQL Server Express kurulumuna özgüdür ve SQL Server kurulumunda yoktur. Bu tabloda belirli bir iş satırının LastRunOn ve LastRunSuccess sütunlarındaki değerlere bakarak işin başarıyla çalıştırıldığını veya başarısız olduğunu görebilirsiniz.
SQL Server Express sürümünde SQL Server Aracısı adlı Windows hizmeti kullanılamaz. Bunun yerine, SQL Hizmet Aracısı kullanılır. Hizmet Aracısı özelliğinde, Microsoft_ApplicationServer_Monitoring_AutoPurge_<izleme veritabanının adı> işinin çalışacak biçimde yapılandırılmış olduğu aralık için zaman aşımı değeri ayarlanabilir. Bu zaman aşımı aralığına ulaşıldığında, SQL Server iş sırasına bir ileti gönderilir. Bu ileti, Microsoft_ApplicationServer_Monitoring_AutoPurge_<izleme veritabanının adı> işinin parçası olarak çalıştırılan saklı yordamı etkinleştirir. Bu da SQL Server Express deposunda otomatik temizleme işlevini çalıştırır.
Aşağıda, otomatik depo temizleme işlevinin ilerleme durumunu izlemek için çalıştırabileceğiniz bazı T-SQL sorguları yer almaktadır:
Geçerli olan zamanlanmış işleri gösterir:
SELECT * FROM ASJobsTable
İşin yeniden çalıştırılması planlanan zamanı görmek için dialog_timer sütununa bakar (UTC saati olarak):
SELECT * FROM sys.conversation_endpoints
Yürütülmekte olan etkinleştirme yordamlarının sayısını gösterir:
SELECT * FROM sys.dm_broker_activated_tasks
Sırada kaç ileti olduğunu bulur. Çalışan hiçbir iş yoksa bu sorgu 0 değerini döndürür:
SELECT * FROM ASScheduledJobQueue
Ayrıca bkz.
Başvuru
Windows Server AppFabric Panosu Sayfası
Kalıcı WF Örnekleri Sayfası
İzlenen WF Örnekleri Sayfası
İzlenen Olaylar Sayfası
2011-12-05