6.3 ZMGOREV görev döngüsü

<< İçindekileri Görüntülemek İçin Tıklayın >>

Yer:  Teknik Kılavuzlar > Netsim System Agent Kurulum ve Yönetim Kılavuzu > 6. Zamanlanmış görevler >

6.3 ZMGOREV görev döngüsü

  1. Ajan ZMGOTANI tablosundaki etkin tanımları okur ve zamanı gelenler için ZMGOASIL tablosuna bir görev satırı üretir. Tanımdaki MAX_GOREV_SAYISI, aynı tanımdan bekleyen görev sayısını sınırlar.
  2. Bekleyen her görev bir --forkTask alt sürecinde çalıştırılır. Süreç 100 görev için yeniden kullanılır; aynı anda en çok 20 görev koşar.
  3. Tanımdaki MAX_CALISMA_SURESI aşılırsa görev süreci sonlandırılır.
  4. Tanımda yönetici e-postası varsa sonuç bildirimi SMTP ayarlarıyla gönderilir — adres biçimi için aşağıdaki nota bakın.
  5. Çökme yüzünden yarım kalmış görevler yeniden ele alınır.

6.3.1 Bildirim adresi: YONETICI_EMAIL

Görev tanımındaki YONETICI_EMAIL alanı ; ile ayrılmış bir listedir ve iki tür öğe kabul eder:

ÖğeAnlamı
biri@ornek.comDüz e-posta adresi, olduğu gibi kullanılır.
@SYSDBA Veritabanı kullanıcı adı. Adres, aynı veritabanındaki KULLANIC tablosundan okunur: SELECT EMAIL FROM KULLANIC WHERE USER_NAME = 'SYSDBA'.

İkisi birlikte yazılabilir: @SYSDBA;ali@ornek.com. Öğelerin başındaki ve sonundaki boşluklar kırpılır, boş öğeler (;;) atlanır. Çözümleme görev tanımı okunurken bir kez yapılır, her bildirimde yeniden sorgulanmaz.

Çözülemeyen öğe

Bir @<ad> öğesi, öyle bir kullanıcı yoksa ya da EMAIL alanı boşsa listeden düşürülür ve günlüğe adıyla birlikte bir UYARI yazılır:

Zamanlanmış görev bildirimi: 1 kullanıcının e-posta adresi çözülemedi ve
  bildirim listesinden düşürüldü. Görev: [MAIL TEST], kullanıcı(lar): [SYSDBA]. ...

Bu uyarı her turda değil, durum değiştikçe bir kez yazılır. Zamanlayıcı görev tanımlarını periyodik olarak okur ve çözülemeyen bir ad çoğunlukla kalıcı bir eksikliktir (öyle bir kullanıcı yoktur ya da EMAIL alanı boştur), yani aynı satır her turda günlüğe düşerdi. Bunun yerine görev başına son durum saklanır: çözülemeyen ad kümesi değişmedikçe satır yinelenmez, küme değişirse ya da durum düzelip yeniden bozulursa yeniden yazılır. Bastırma zamanlayıcı sürecinin ömrü boyuncadır — hizmet yeniden başlatıldığında durum bir kez daha duyurulur.

Satır yalnızca görev oturumu oluşturulurken, yani zamanlayıcı sürecinde yazılır. Görevin her koşusu ayrı bir --forkTask sürecinde çalışır ve aynı tanımı yeniden okur; orada uyarı verilmez, çünkü taze bir süreçte durum saklanamaz ve satır her koşuda yinelenirdi. Yüz kez koşan bir görev için tek bir uyarı satırı görürsünüz.

Bütün öğeler düşerse gönderilecek adres kalmaz; o zaman bildirim denemesinin kendisinde ikinci bir uyarı satırı bunu söyler — o satır bastırılmaz, bildirim üretecek her olayda yeniden yazılır. Görevin kendisi bu durumdan etkilenmez — bildirim gönderilmez, görev normal şekilde çalışır ve sonucunu yazar.

Hangi harfin hangi olayda bildirim ürettiğini YONETICI_EMAIL_SECENEKLER alanı belirler: O görev oturumu oluşturuldu, B başarıyla tamamlandı, D deneme başarısız, H hata. Alan boşsa hiç bildirim gönderilmez.