ORACLE SCHEDULED JOB
Scheduled Job çoğu durumda hayat(zaman) kurtaran vazgeçilmez bir nesnedir. Örneğin yılbaşı gecesi saat tam 12 de devreye girecek büyük indirimi sisteme yansıtmak için bilgisayar başında ondan geriye saymak istemezsiniz değil mi? O zaman scheduled jobu siz de benim kadar seviyorsunuz ya da seveceksiniz. Tablo istatistiklerini toplamak, maaş hesaplamak, belli bir süreden daha uzun süredir devam eden sorguları sonlandırmak gibi belli zaman aralıklarında rutin bir şekilde yapılmasını istediğiniz hem yönetimsel hem de operasyonel tüm işlemleri yapacak paketleri hazırlayıp Scheduled Job ile bunu periyodlara bağlayabiliriz. İleride Toad aracılığıyla adım adım oluşturma aşamalarını da ekleyebiliriz ama şimdilik belli başlı parametrelerin ne işe yaradığına bakalım.
SCHEDULED JOB TEMEL PARAMETRELER
RESTARTABLE : Jobun çalışma esnasında bir hata ile karşılaşması durumunda nasıl davranması gerektiğini belirleyen parametre.
TRUE : Bir süre sonra job otomatik olarak yeniden başlatılır.
“Tekrar etmesini istemediğiniz işlemler içeren bir paket çalıştırıyorsanız FALSE olarak set edilmesini öneririm. Nisan ayı hesaplanırken hata veriyor diye ilk üç ay herkese 15 maaş satırı atmak istemezsiniz.”
LOGGING LEVEL : Job logunun hangi detayda tutulacağını belirlemek için kullanıyoruz.
OFF : Bu işle ilgili hiçbir log kaydı tutulmasın.
RUNS : Bu job için job bazlı log tutsun, her çalışmada log son çalışmaya güncellenir.
FULL : Bu job için çalışma bazlı log tutsun, geçmiş çalışmaların da logu tutulur.
MAX_RUNS : Interval’de verilen periyoda en fazla kaç çalışma sayısı kadar çalışacağını belirtir. Verilen Sayıya gelindiğinde END_DATE olarak belirlediğimiz tarihe gelinmemiş olsa dahi tekrar çalışmaz. MAX_RUNS değeri NULL olarak verilirse END_DATE tarihine varıncaya kadar tekrar eder. 1-1000000 arası değer alabilir.
MAX_FAILURES : Devre dışı bırakılmadan önce kaç kez deneneceğini belirtir. Sebep ne olursa olsun job tamamlanamazsa Failure sayısı bir artar. Kullanıcı müdahalesi olmadan tekrar başlamaz.
JOB_WEIGHT : Job’un paralelizm kullanmasını istiyorsak 1-100 arası değer veriyoruz.
SCHEDULE_LIMIT : Olası bir zamanlanmış saatte başlayamama durumunda (Server kapalıdır vs.) planlanan zamandan en fazla ne kadar zaman geçince tekrar tekrar denesin.
“Örneğin her gün sabah 9 a kadar bitmesi gereken 6 saatlik bir iş var ve geceyarısı çalışmaya başlayacaksa 3 saatlik bir esnekliğimiz var demektir.”
