Service Manager 2012 R2 – Grooming – Part 2

By | 20 January 2016

Bir önceki makale grooming hakkında bir giriş makalesi niteliğindeydi. Şimdi biraz daha konuyu derinleştirelim.

Internal Job History’ye biraz daha odaklanabiliriz. Hangi durum için hangi job’ın çalıştığını ve çalıştığında başarılı yada başarısız olma durumlarını inceleyelim.

Geçen iki haftada grooming joblarının çalışma durumlarını sorgulamak için service managerdaki InternalJobHistory tablosuna aşağıdaki sorguyu atalım.

SELECT * FROM dbo.InternalJobHistory

WHERE TimeStarted > getdate()-15 AND StatusCode <> 1

ORDER BY TimeStarted DESC

Normal olan bu sorgu sonucunda herhangi bir çıktı görmemektir. Eğer sorgu size sonuç dönerse, dönen sonuçlardan hangilerinin başarsız ya da başarılı olduğunu görebilirsiniz. Zaman zaman grooming job fail olmuş olabilir fakat sonrasında job düzgün şekilde tamamlanmışsa genellikle bunu önemsemenize gerek yoktur.

image004

Şimdi sorgu bize 6 adet status kodu 0 olan satır döndü. Tarihlerini kontrol ettiğimizde hepsi geçmiş tarihli. Yakın tarihli ya da devamlı status kodu sıfır dönmüş bir grooming job’ı göremiyoruz. Bu kötü bir şey değil. Tekerrür eden bir hata olduğu gözükmüyor. Belli nedenlerden dolayı job zaman aşımına uğramış ancak sonrasında hata devam etmemiş gözüküyor. Şimdi sorgudan status kodunu kaldırıp devam edelim.

Sorgudan status kodunu kaldırırsanız, grooming jobları üzerinde tamamlanmayanların kaç günden beri tamamlanmadığını yada şu anda hangi gooming joblarının sürdüğünü rahatlıkla görebilirsiniz.

SELECT * FROM dbo.InternalJobHistory

WHERE TimeStarted > getdate()-15

ORDER BY TimeStarted DESC

image005

Sorgumuzun sonucu bize tamamlanan job’larıda gösteriyor. Resimde işaretlediğim job yukarıda ayın 6-7 ve 8’inde hata alan job. Ama yukarıdaki resme baktığımızda ayın 20’sinde sağlıklı şekilde çalıştığı görünüyor. Yani buradan hatanın devam etmediğini zaman aşımına uğradığı günden sonra sağlıklı şekilde çalıştığını görebiliyoruz.

StatusCode = 0 job’un tamamlanmadığı anlamına gelmektedir. 0 genel anlamıyla job’un zaman aşımına uğradığını ifade eder. Eğer bol miktarda 0 statuscode’una sahip sonuç görüyorsanız, bir süre bekleyin ve aynı komutu bir daha çalıştırın. Bu o sırada işlem gören job’ların tamamlanması için süre sağlayacaktır Sonrasında halen 0 olarak bekleyen job’lar var ise onlar için zaman aşımına urğramıştır diyebiliriz.

Service manager mimarisinde bu job’larda yaşanan başarısızlıklar event log’lara aşağıdaki ID’ler ile yansıyacaktır.

  • EventID: 10870 Severity: Error Description: SqlJob execution failed. Mom failed executing SQL Job <Jobname>
  • EventID: 10871 Severity: Error Description:  Grooming of disabled subscription workflow watermarks failed.
  • EventID: 10880 Severity: Error Description: Service Manager CMDB Grooming failed. Service Manager CMDB Grooming failed. GroomingType: <Grooming Type> The following error was encountered: <Error>

Genelde Connector’lerde yapılan değişiklikler grooming job’larında hatalara neden olabilir. Yani büyük çapta data çeken connector ya da connector’lerde silme işlemi yapıldığında bu tarz sorunlar çıkabilir.

Grooming yapılması için ne kadar dataya ihtiyaç olduğunu bilmeniz gerekmez ama manuel grooming yaptığınız durumlarda bilmenizde fayda var. Devamlı olarak statuscode değeri sıfır olan job kayıtları varsa  bunları manuel olarak tetiklemeniz gerekebilir.

Fail olan data çok büyükse incremental grooming seçeneklerini kullanmanız gerekebilir.

Bu bölümde çalışan job’arı, başarılı ve başarısız olma durumlarını anlatmış olduk. Bir sonraki makalede grooming’in olması için tablolarda ne kadar satıra ihtiyaç olduğunu sorgular ile anlatacağım.

 

Fırat

Leave a Reply