IMS DB - PCB Maskesi
PCB, Program İletişim Bloğu anlamına gelir. PCB Maskesi, DL / I çağrısında kullanılan ikinci parametredir. Bağlantı bölümünde belirtilmiştir. Aşağıda bir PCB Maskesinin sözdizimi verilmiştir -
01 PCB-NAME.
05 DBD-NAME PIC X(8).
05 SEG-LEVEL PIC XX.
05 STATUS-CODE PIC XX.
05 PROC-OPTIONS PIC X(4).
05 RESERVED-DLI PIC S9(5).
05 SEG-NAME PIC X(8).
05 LENGTH-FB-KEY PIC S9(5).
05 NUMB-SENS-SEGS PIC S9(5).
05 KEY-FB-AREA PIC X(n).
İşte dikkat edilmesi gereken önemli noktalar:
DL / I, her veritabanı için program iletişim bloğu olarak bilinen bir depolama alanını korur. Uygulama programları içinden erişilen veritabanı hakkındaki bilgileri depolar.
ENTRY deyimi, Bağlantı Bölümündeki PCB maskeleri ile programın PSB'sindeki PCB'ler arasında bir bağlantı oluşturur. Bir DL / I çağrısında kullanılan PCB maskeleri, işlem için hangi veritabanının kullanılacağını söyler.
Bunun, bir COBOL READ deyiminde bir dosya adı veya bir COBOL yazma deyiminde bir kayıt adı belirtmeye benzer olduğunu varsayabilirsiniz. SELECT, ASSIGN, OPEN veya CLOSE deyimleri gerekli değildir.
Her DL / I aramasından sonra, DL / I PCB'de bir durum kodu depolar ve program, aramanın başarılı olup olmadığını belirlemek için bu kodu kullanabilir.
PCB Adı
Dikkat edilecek noktalar -
PCB Adı, PCB alanlarının tüm yapısını ifade eden alanın adıdır.
PCB Adı, program deyimlerinde kullanılır.
PCB Adı, PCB'deki bir alan değil.
DBD Adı
Dikkat edilecek noktalar -
DBD adı, karakter verilerini içerir. Sekiz bayt uzunluğundadır.
PCB'deki ilk alan, işlenmekte olan veritabanının adıdır ve DBD adını, belirli bir veritabanıyla ilişkili veritabanı açıklamaları kitaplığından sağlar.
Segment Düzeyi
Dikkat edilecek noktalar -
Segment seviyesi, Segment Hiyerarşi Seviye Göstergesi olarak bilinir. Karakter verilerini içerir ve iki bayt uzunluğundadır.
Segment düzeyindeki bir alan, işlenen segmentin düzeyini depolar. Bir segment başarılı bir şekilde alındığında, geri alınan segmentin seviye numarası burada saklanır.
Bir segment seviyesi alanı hiçbir zaman 15'ten büyük bir değere sahip değildir çünkü bu, bir DL / I veritabanında izin verilen maksimum seviye sayısıdır.
Durum kodu
Dikkat edilecek noktalar -
Durum kodu alanı iki baytlık karakter verisi içerir.
Durum kodu, DL / I durum kodunu içerir.
DL / I çağrıların işlenmesini başarıyla tamamladığında boşluklar durum kodu alanına taşınır.
Boşluk olmayan değerler, aramanın başarılı olmadığını gösterir.
Durum kodu GB, dosyanın sonunu belirtir ve durum kodu GE, istenen segmentin bulunamadığını gösterir.
Proc Seçenekleri
Dikkat edilecek noktalar -
Proc seçenekleri, dört karakterli veri alanları içeren işleme seçenekleri olarak bilinir.
İşleme Seçeneği alanı, programın veritabanında ne tür bir işlem yapmaya yetkili olduğunu gösterir.
Ayrılmış DL / I
Dikkat edilecek noktalar -
Ayrılmış DL / I, IMS'nin ayrılmış alanı olarak bilinir. Dört baytlık ikili veriyi depolar.
IMS bu alanı bir uygulama programıyla ilgili kendi dahili bağlantısı için kullanır.
Segment Adı
Dikkat edilecek noktalar -
SEG Adı, segment adı geri bildirim alanı olarak bilinir. 8 baytlık karakter verisi içerir.
Segmentin adı, her DL / I aramasından sonra bu alanda saklanır.
FB Anahtarının Uzunluğu
Dikkat edilecek noktalar -
FB anahtar uzunluğu, anahtar geri bildirim alanının uzunluğu olarak bilinir. Dört bayt ikili veri depolar.
Bu alan, önceki çağrı sırasında işlenen en düşük seviye segmentin birleştirilmiş anahtarının uzunluğunu bildirmek için kullanılır.
Anahtar geri bildirim alanıyla birlikte kullanılır.
Hassasiyet Segmentlerinin Sayısı
Dikkat edilecek noktalar -
Duyarlılık segmentlerinin sayısı dört bayt ikili veri depolar.
Bir uygulama programının hangi seviyeye duyarlı olduğunu tanımlar. Mantıksal veri yapısında bir dizi segmenti temsil eder.
Temel Geri Bildirim Alanı
Dikkat edilecek noktalar -
Anahtar geribildirim alanının uzunluğu bir PCB'den diğerine değişir.
Programın veritabanı görünümü ile kullanılabilecek mümkün olan en uzun birleştirilmiş anahtarı içerir.
Bir veritabanı işleminden sonra DL / I, bu alanda işlenen en düşük seviye segmentinin birleştirilmiş anahtarını döndürür ve anahtar uzunluğu geri bildirim alanındaki anahtarın uzunluğunu döndürür.