Veri geçişi tek başına gerçekleşemez, bu veri kümelerini okuyan ve yazan COBOL uygulamalarıyla paralel olarak gelişmelidir. Bu kısıtlama, VSAM modernizasyonunun tüm zorluğunu tanımlar. VSAM (Sanal Depolama Erişim Yöntemi) sadece bir dosya formatı değildir. Programlar arasındaki veri sözleşmesidir, FD girişleri ve SELECT maddeleri dışında hiçbir yerde tanımlanmayan, kurumsal bir sistemdeki her programın en kritik iş verilerini nasıl ürettiğini ve tükettiğini yöneten örtük bir şartnamedir. Bu kaydı okuyan her programda yansıtılmayan tek bir kayıt düzeni değişikliği, veri bozulmasına neden olur ve bu bozulma, veriyi tüketen programın beklediği anlamı artık taşımayan veriler üzerinde bir düzenleyici rapor çalıştırılana kadar ortaya çıkmayabilir.
VSAM veri modernizasyonunda başarılı olan kuruluşlar, hedef şemayla başlayanlar değil, VSAM dosyalarının ne içerdiğine, nasıl yapılandırıldığına, hangi programların bunlara hangi kalıplarda eriştiğine ve üreticiler ile tüketiciler arasında hangi örtük sözleşmelerin bulunduğuna dair eksiksiz, kanıta dayalı bir anlayışla başlayanlardır. Bu anlayış, yani VSAM dosya yapısı analizi, sonraki her karar için ön koşuldur: hangi VSAM veri kümelerinin ilişkisel tablolara eşlendiği, hangilerinin farklı hedef mimarilere ihtiyaç duyduğu, hangi kayıt düzenlerinin hassasiyeti koruyan veri türü dönüşümlerine ihtiyaç duyduğu ve hangi paylaşılan veri kümelerinin bağımsız olarak değil, koordineli birimler olarak taşınması gerektiği.
Paylaşılan Veri Kümelerinin Koordineli Bir Şekilde Taşınması Gerekir
SMART TS XL Hedef şema tasarımının gerektirdiği her kayıt düzeni detayını otomatik olarak çıkarır.
DAHA FAZLASINI ÖĞRENİN…Dört VSAM Kuruluşu ve Her Birinin Gereksinimleri
VSAM veri kümeleri dört farklı organizasyon halinde gelir. Her birinin farklı bir yapısal özelliği, farklı bir tipik erişim modeli ve modern hedef mimarilere farklı bir doğal eşleşmesi vardır. Tüm VSAM veri kümelerini aynı şekilde ele almak ve her birini toplu olarak ilişkisel bir tabloya dönüştürmek, bazı veri kümeleri için çalışan, diğerleri için ise kötü performans gösteren veya işlevsel olarak başarısız olan hedefler üretir.
KSDS (Key-Sequenced Data Set), en yaygın VSAM organizasyon biçimidir. Kayıtlar fiziksel olarak birincil anahtar (ana anahtar) ile sıralanır; bu da hem anahtara göre doğrudan erişime hem de anahtar sırasına göre ardışık erişime olanak tanır. KSDS dosyaları isteğe bağlı olarak alternatif indekslere, yani ana anahtar dışındaki alanlara göre erişime izin veren ikincil anahtar yollarına sahip olabilir. KSDS için doğal hedef, ana anahtarın birincil anahtar haline geldiği ve alternatif indekslerin SQL indeksleri haline geldiği ilişkisel bir tablodur.
ESDS (Entry-Sequenced Data Set), kayıtları yazıldıkları sırayla depolar. Anahtar yoktur, kayıtlar fiziksel bayt ofsetleri (RBA: Göreceli Bayt Adresi) ile adreslenir. ESDS dosyaları tipik olarak günlük benzeri veriler için kullanılır: denetim izleri, işlem günlükleri, olay akışları. ESDS için doğal hedef, tüketen programların verilere nasıl eriştiğine bağlı olarak, yalnızca ekleme yapılabilen ilişkisel bir tablo, bir olay akışı (Kafka konusu) veya bir zaman serisi veritabanıdır.
RRDS (Göreli Kayıt Veri Kümesi), göreceli kayıt numarasıyla adreslenen sabit uzunluktaki kayıtları depolar. Dosyadaki her yuva bir kayıt numarasına karşılık gelir; yuvalar boş olabilir (silinebilir). RRDS dosyaları, kayıt numarasının uygulama için anlamlı olduğu doğrudan erişim senaryolarında, genellikle basit arama tabloları veya karma tabanlı depolama olarak kullanılır. Doğal hedef, sayısal sıralı tanımlayıcıya sahip ilişkisel bir tablo veya veri kümesi küçük ve sık erişiliyorsa bellek içi bir arama yapısıdır.
LDS (Linear Data Set), VSAM'e görünür bir kayıt yapısı olmayan, bayt adreslenebilir bir depolama alanıdır. Genellikle DB2, Java iş yükleri veya özel programlar gibi uygulamalar tarafından, VSAM bayt aralığı içinde kendi iç formatlarını yöneten uygulamalar tarafından kullanılır. LDS dosyaları standart COBOL FD girdileri aracılığıyla analiz edilemez; yapıları yalnızca onları yazan uygulama katmanında mevcuttur.
Her veri kümesi için analiz çıktısı, hangi organizasyonu kullandığını belirtmelidir, çünkü organizasyon sonraki tüm süreçleri belirler: hedef mimari, erişim modeli ve yapısını anlamak için gereken özel analiz.
Kayıt Düzeni Analizi Problemi
Kayıt düzeni, VSAM yapı analizinin en karmaşık analitik boyutudur. Her sütunun veritabanı motoru tarafından tanımlanmış bir türü, adı ve kısıtlaması olan ilişkisel şemaların aksine, VSAM kayıtlarının kendi kendini tanımlayan bir yapısı yoktur. Düzen tamamen COBOL FD girdisinde bulunur ve FD girdileri nadiren basittir.
FD Kayıtları ve KOPYA Üyeleri
Bir VSAM veri kümesinin kayıt yapısı, COBOL VERİ BÖLÜMÜ'ndeki DOSYA AÇIKLAMASI (FD) girdisinde tanımlanır. İyi bakımlı kod tabanlarında, FD girdisi, kayıt düzenini tanımlayan ve veri kümesine erişen her program tarafından dahil edilen paylaşılan bir kopyalama defteri olan bir COPY üyesine referans verir:
COBOL
FILE SECTION.
FD CUSTOMER-FILE
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 250 CHARACTERS.
01 CUSTOMER-RECORD.
COPY CUSTMSTR.
COPY üyesi CUSTMSTR Gerçek saha düzenini tanımlar. Eğer 47 program içeriyorsa CUSTMSTRBu durumda, 47 program, tanımladığı kayıt düzenine bağımlıdır. Bir alanın yeniden adlandırılması... CUSTMSTR Bu durum 47 programın tamamını etkiliyor. Bu, veri alanına uygulanan copybook bağlantı problemidir: VSAM kayıt düzeni, onu kullanan her programı koordine etmeden değiştirilemeyen paylaşılan bir bağımlılıktır.
Göç analizi için, her FD girdisinin ilgili copybook'a kadar izlenmesi ve her copybook'un onu içeren her programa eşlenmesi gerekir. Paylaşılan düzen bağımlılık grafiği, göç kapsamını anlamanın temelidir.
YENİDEN TANIMLAR: Çoklu Düzenler, Tek Kayıt
MKS REDEFINES Bu madde, VSAM kayıt analizinin gerçekten karmaşık hale geldiği yerdir. REDEFINES, farklı alan yorumlarının aynı fiziksel depolama alanına üst üste binmesine olanak tanır. Bir işlem türü kodu içeren bir VSAM kaydı, bu koda bağlı olarak kalan baytları farklı şekilde yorumlamak için REDEFINES'ı kullanabilir:
COBOL
01 TRANSACTION-RECORD.
05 TXN-TYPE PIC X(2).
05 TXN-COMMON-DATA PIC X(48).
05 TXN-DETAIL REDEFINES TXN-COMMON-DATA.
10 TXN-PAYMENT.
15 PAY-AMOUNT PIC S9(11)V99 COMP-3.
15 PAY-CURRENCY PIC X(3).
15 PAY-METHOD PIC X(2).
15 FILLER PIC X(28).
05 TXN-WITHDRAWAL REDEFINES TXN-COMMON-DATA.
10 WDR-AMOUNT PIC S9(11)V99 COMP-3.
10 WDR-ACCOUNT PIC 9(12).
10 WDR-BRANCH PIC 9(5).
10 FILLER PIC X(18).
Bu kaydın tek bir düzeni değil, duruma bağlı olarak üç farklı düzeni var. TXN-TYPEHedef ilişkisel şemada, bu genellikle ya polimorfik bir tablo tasarımı (her varyant için boş bırakılabilir sütunlara sahip tek genişlikte bir tablo), normalleştirilmiş bir tasarım (üst satır artı türe özgü alt satırlar) ya da varyant verilerini tutan bir JSON sütunu gerektirir. Bu kararların hiçbiri, neyin analiz edilmesinden önce verilemez. TXN-TYPE Verilerde mevcut olan değerler ve hangi REDEFINES varyantlarının gerçekten kullanıldığı.
Eksiksiz bir kayıt düzeni analizi şunları içermelidir:
- Her FD girdisindeki her REDEFINES hiyerarşisini belirleyin.
- Hangi REDEFINES varyantının hangi koşullar altında aktif olduğunu belirleyin (bu, yalnızca FD analizi değil, program mantığı analizi de gerektirir).
- Her bir varyant için alan türlerini, uzunluklarını ve paketlenmiş ondalık hassasiyetini belgeleyin.
- Hedef şema için uygun normalleştirme stratejisini önerin.
COMP-3 ve Sayısal Hassasiyet
COBOL'un PIC S9(11)V99 COMP-3 (Paketlenmiş ondalık sayı) SQL standart veri türlerinde doğrudan karşılığı olmayan belirli hassasiyet ve ölçek özelliklerine sahiptir. V Bu, ondalık noktanın ima edildiğini gösterir; değer, 2 ondalık basamaklı ima edilen bir ölçekle tam sayı olarak saklanır. COMP-3 Her baytta iki ondalık basamak bulunur ve son yarım bayt işareti içerir.
Bu alan ilişkisel bir veritabanına taşındığında, doğru SQL hedefi şudur: DECIMAL(13, 2), değil FLOATBu da yuvarlama hatalarına yol açardı, değil. INTEGERBu da ondalık basamakların kaybolmasına neden olurdu. COMP-3 alanlarının parasal tutarları tuttuğu finansal sistemlerde, hassasiyet gereksinimi pazarlık konusu değildir. Dönüştüren bir geçiş işlemi PIC S9(11)V99 COMP-3 Hedef şemada kayan noktalı bir türe dönüştürme, toplu işlemler boyunca biriken ve düzenleyici raporlamayı etkileyebilecek yuvarlama hatalarına yol açar.
Hedef şema tasarımına başlamadan önce, her FD girdisindeki her COMP-3 alanı, kesin hassasiyeti, ölçeği ve işaret kuralı ile birlikte belgelenmelidir.
COBOL Kaynak Kodunda VSAM Erişim Desenlerinin Analizi
FD girdisi, kayıtta ne olduğunu açıklar. COBOL PROSEDÜR BÖLÜMÜ, programın bunu nasıl kullandığını açıklar. Her ikisi de eksiksiz bir yapısal analiz için gereklidir. Erişim kalıbı analizi, veri kümesine erişen her programdaki her dosya erişim fiilini inceler.
SELECT Yan Tümcesi: İlk Sinyal
ENVIRONMENT DIVISION bölümündeki SELECT yan tümcesi, COBOL programının VSAM dosyasına nasıl erişeceğini belirler:
COBOL
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CUSTOMER-FILE
ASSIGN TO CUSTFILE
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS CUST-PRIME-KEY
ALTERNATE RECORD KEY IS CUST-ALT-KEY
WITH DUPLICATES
FILE STATUS IS WS-CUST-STATUS.
Bu SELECT sorgusu şunları ortaya koyuyor:
ORGANIZATION IS INDEXED→ KSDSACCESS MODE IS DYNAMIC→ Program hem sıralı hem de rastgele erişim kullanıyorALTERNATE RECORD KEY IS CUST-ALT-KEY WITH DUPLICATES→ Alternatif bir dizin mevcut ve bu program onu kullanıyor.
Dinamik erişim modu özellikle önemlidir: Dinamik modda bir KSDS'ye erişen bir program, şu yöntemleri kullanabilir: READ doğrudan erişim için bir anahtarla ve READ NEXT Konumlandırılmış bir noktadan ardışık tarama için. Her iki erişim modeli de hedefte çoğaltılmalıdır; bu da ilişkisel şemada hem doğrudan arama (birincil anahtar sorgusu) hem de aralık taraması (sıralı geçiş) desteği gerektirebilir.
Erişim Fiilleri ve Göçle İlgili Etkileri
Dosyaya erişim fiillerinin her biri, programın VSAM veri kümesiyle nasıl etkileşim kurduğunun farklı bir boyutunu ortaya koymaktadır:
OKU (doğrudan): READ CUSTOMER-FILE KEY IS WS-CUST-KEYDoğrudan anahtar arama. Eşlemeler SELECT ... WHERE primary_key = ?Çoğu KSDS programı bu modeli kullanır; bu, doğrudan ilişkisel indeksli bir aramaya dönüşür.
OKU (sıralı): READ CUSTOMER-FILE NEXT RECORDMevcut konumdan itibaren ardışık tarama. Haritalama işlemi şuraya yapılır: SELECT ... ORDER BY primary_key İmleç konumlandırmasıyla birlikte. Sıralı işlem için VSAM'ın doğal tuş sırasına dayanan programlar, örtük sıralama bağımlılığını hedef sistemde açıkça korumalıdır.
BAŞLAT: START CUSTOMER-FILE KEY >= WS-SEARCH-KEY ardından READ NEXTKısmi anahtar konumundan aralık taraması. Bir aralık sorgusuna eşlenir: SELECT ... WHERE primary_key >= ? ORDER BY primary_keySTART kullanan programlar, sıralı tarama için bir alt sınır belirler; bu, hedef tablonun aynı anahtar sıralamasına sahip olmadığı sürece basit bir karşılığı olmayan, KSDS dosyaları için kritik bir erişim modelidir.
YAZMAK: Anahtar kullanarak yeni bir kayıt ekler. Şuna eşlenir: INSERT INTOVSAM dosyasında alternatif indeksler varsa, yazma işleminin bu indekslerle tutarlılığı koruması gerekir; VSAM'de bu otomatik olarak gerçekleşir; ilişkisel bir veritabanında ise eşdeğer ikincil indeks tablolarını korumak için ya bir veritabanı tetikleyicisi ya da uygulama düzeyinde kod gerektirir.
YENİDEN YAZMAK: Mevcut bir kaydı günceller. Kayıt, (tutma niyetiyle yapılan bir OKUMA işleminden sonra) halihazırda tutuluyor olmalıdır. Eşleştirmeler şuraya yapılır: UPDATE ... WHERE primary_key = ?REWRITE, okuma-değiştirme-yazma modelini kullanır; geçiş işlemi, okuma ve yazma işlemleri arasında işlem bütünlüğünü korumalıdır.
SİL: Bir kaydı anahtara göre siler. KSDS dosyalarında SİL, fiziksel bir silme işlemidir. Silinen yuvanın gelecekteki sıralı taramalar için kullanılamaz olmasını bekleyen programlar bu fiziksel silme davranışına bağlıdır; hedefteki yumuşak silme (mantıksal silme bayrağı), her kullanan program mantıksal olarak silinen kayıtları filtreleyecek şekilde güncellenmedikçe eşdeğer bir davranış üretmez.
Alternatif İndeks Kullanımı: Gizli Bağımlılık
KSDS dosyalarındaki alternatif indeksler, VSAM geçişinde en sık gözden kaçırılan bağımlılıklardan biridir. Alternatif indeks, bir programın KSDS dosyasına birincil anahtar dışında bir alan üzerinden erişmesine olanak tanır. Alternatif indeksin kendisi, temel küme ile senkronize halde tutulması gereken ayrı bir VSAM veri kümesidir (bir PATH).
Erişim sağlayan bir program CUSTOMER-FILE alternatif anahtarı aracılığıyla CUST-ALT-KEY Yalnızca temel küme FD girdisi analiz edilirse görünmeyen bir bağımlılığı vardır. Geçiş işlemi şu şartları karşılamalıdır:
- Hangi programların hangi alternatif tuşları kullandığını belirleyin (SELECT sorgusunda görülebilir).
ALTERNATE RECORD KEYbildirimler) - Her bir alternatif anahtarı, hedef tablodaki eşdeğer SQL dizinine eşleyin.
- Hedef tabloda INSERT ve DELETE işlemlerinin, genellikle veritabanı motorunun şeffaf bir şekilde sürdürdüğü SQL benzersiz veya benzersiz olmayan indeksler aracılığıyla, alternatif indeksin eşdeğerini otomatik olarak korumasını sağlayın.
Analiz, her KSDS veri seti için her alternatif indeksi listelemeli ve her birini kullanan programlarla eşleştirmelidir.
Paylaşılan Veri Kümesi Sorunu: Örtük Veri Sözleşmeleri
VSAM dosyaları sıklıkla birden fazla program ve birden fazla JCL iş adımı arasında paylaşılır. Bu paylaşım, kayıt düzeni, anahtar aralıkları ve erişim kalıpları hakkında programlar arasında, kodun kendisinden başka hiçbir yerde bulunmayan örtük veri sözleşmeleri, yani anlaşmalar oluşturur.
Paylaşılan veri kümesi bağımlılığının iki boyutu vardır:
Üretici-tüketici ilişkileri. A programı, B programının okuduğu kayıtları yazar. A programının ürettiği kayıt düzeni, anahtar değerleri ve sıralaması, B programının tüketmeyi beklediğiyle tam olarak eşleşmelidir. Eğer A ve B, paylaşılan veri sözleşmesini koordine etmeden bağımsız olarak farklı hedef şemalara taşınırsa, sonuç sessiz veri bozulması olur: B'nin okuma işlemleri hedef veritabanına karşı başarılı olur, ancak B'nin mantığının doğru şekilde işleyemediği bir biçimde veri döndürür.
İş adımları arasında eş zamanlı erişim. Bir JCL iş akışı, her biri aynı VSAM veri kümesine karşı sırayla farklı bir program çalıştıran birden fazla adıma sahip olabilir. 1. adım yazar, 2. adım okur ve dönüştürür, 3. adım sonuçları yazar. Geçiş işlemi bu sıralı bağımlılığı korumalıdır; programların paylaşılan veri kümesine erişme ve onu değiştirme sırası, sistemin davranışsal özelliklerinin bir parçasıdır.
Eksiksiz bir ortak veri seti analizi şu şartları taşımalıdır:
- Her VSAM veri kümesini ve ona erişen her programı listeleyin.
- Her programın erişimini üretici (YAZMA/YENİDEN YAZMA/SİLME), tüketici (OKUMA) veya her ikisi olarak sınıflandırın.
- Her programın çalıştığı JCL iş bağlamını, hangi adımı, hangi işi ve hangi zamanlayıcı bağımlılık zincirini belgeleyin.
- Üreticinin çıktı formatının, tüketicinin beklenen girdi formatıyla birebir aynı olması gereken üretici-tüketici çiftlerini belirleyin.
Bu analiz, tek bir programı izole bir şekilde inceleyerek yapılamaz. Programlar arası, JCL'ler arası yapısal analiz gerektirir.
Göç Öncesi Teslim Edilmesi Gerekenler: Analizin Ortaya Koyması Gerekenler
Veri modernizasyon planlaması için yeterli olan bir VSAM yapısal analizi altı çıktı üretir:
Teslim Edilecek Ürün 1: VSAM Veri Kümesi Envanteri
Ortamdaki her VSAM veri kümesi şu bilgilerle birlikte sunulur: veri kümesi organizasyonu (KSDS/ESDS/RRDS/LDS), ortalama ve maksimum kayıt uzunluğu, tahmini kayıt sayısı (JCL SPACE parametrelerinden veya katalog girişlerinden), anahtar yapısı (asal anahtar ofseti, uzunluğu; alternatif anahtar yapıları) ve veri kümesinin alternatif indekslere sahip olup olmadığı.
Teslim Edilecek Ürün 2: Kayıt Düzeni Kataloğu
Her veri seti için, her FD girişi ve referans verdiği copybook'lar şunları içerir: REDEFINES hiyerarşileri de dahil olmak üzere tüm alan tanımları, kesin hassasiyeti ve ölçeğiyle her COMP-3 alanı, bayt uzunluğuyla her ikili (COMP/COMP-5) alan, kontrol alanıyla birlikte her değişken uzunluklu öğe (OCCURS DEPENDING ON) ve REDEFINES tarafından ima edilen her koşullu veya düzen varyantı.
Teslim Edilecek 3: Programa Göre Erişim Modeli Sınıflandırması
Her veri kümesine erişen her program için: SELECT yan tümcesinin özellikleri (organizasyon, erişim modu, alternatif anahtar kullanımı), kullanılan tüm erişim fiilleri (READ/START/WRITE/REWRITE/DELETE), programın sıralı erişim kullanıp kullanmadığı ve anahtar sıralamasına bağlı olup olmadığı, programın kullandığı alternatif indeksler ve programın okuma-değiştirme-yazma kalıplarına sahip olup olmadığı (örtülü işlem gereksinimleri).
Teslim Edilecek 4: Paylaşılan Veri Kümesi Haritası
Düğümlerin VSAM veri kümeleri ve programları, kenarların ise erişim ilişkilerini (okuma/yazma) temsil ettiği yönlendirilmiş bir grafik. Grafik, her üreticiyi, her tüketiciyi, üretici-tüketici çiftlerini ve her erişim için JCL iş dizisi bağlamını gösterir.
Teslim Edilecek 5: Hedef Şema Önerileri
Her bir VSAM veri seti için, organizasyon ve erişim modellerine göre önerilen hedef mimari:
| VSAM Tipi | Birincil Erişim Modeli | Önerilen Hedef |
|---|---|---|
| KSDS, yalnızca doğrudan anahtar erişimi. | Birincil anahtara göre nokta aramaları | İlişkisel tablo, indekslenmiş |
| KSDS, BAŞLAT/SONRAKİNİ OKU özelliğiyle. | Anahtar sırasına göre aralık taramaları | Kümelenmiş indeksli ilişkisel tablo |
| KSDS alternatif endekslerle | Çoklu yol anahtar erişimi | Çoklu indeksli ilişkisel tablo |
| ESDS, sadece ekleme | Sıralı ekleme, anahtar yok | Yalnızca ekleme yapılabilen tablo, olay akışı veya günlük |
| ESDS, RBA erişimiyle birlikte | Bayt-ofset konumlandırma | Meta veri indeksi içeren nesne depolama |
| RRDS | Kayıt numarasına erişim | Sıralama sütununa sahip ilişkisel tablo |
| Büyük KSDS (toplu, analitik) | Tam ardışık taramalar | Sütun tabanlı depolama veya veri gölü |
| LDS | Uygulama tarafından yönetilen dahili format | Uygulama katmanı analizi gerektirir. |
Teslim Edilecek Ürün 6: Hassas Alan Kaydı
Her veri kümesindeki her COMP-3, COMP, COMP-5 ve kayan noktalı alan, COBOL tanımı, doğru SQL veri türü eşleştirmesi ve geçiş öncesi ve sonrası hassasiyet doğrulaması gerektiren alanlar için bir işaretleyici ile birlikte verilmiştir.
VSAM Analizini İlişkisel Şema Analizinden Farklı Kılan Nedir?
İlişkisel veritabanları arasında geçiş konusunda deneyimli ekipler, şema geçişi zihinsel modelini uyguladıkları için VSAM analizini bazen hafife alırlar: DDL'yi çıkarın, şemayı yeniden tasarlayın, verileri taşıyın. VSAM'de veritabanı anlamında bir DDL yoktur. Şema, kaynak koduna, FD girişlerine, copybook'lara, SELECT yan tümcelerine ve belirli bir kayıt için hangi REDEFINES varyantının aktif olduğunu belirleyen PROCEDURE DIVISION mantığına dağıtılmıştır.
VSAM analizini yapısal olarak farklı kılan üç özellik vardır:
Şema kodun içinde yer alır. Bir VSAM veri kümesinin kayıt düzeni, veritabanı kataloğunda değil, COBOL kaynak kodunda tanımlanır. Bunu bulmak kaynak kodunu ayrıştırmayı gerektirir. Değiştirmek, copybook'u paylaşan her programı koordine etmeyi gerektirir. Tüm varyantlarını anlamak, yalnızca FD girdisini değil, program mantığını analiz etmeyi gerektirir.
Erişim kalıpları, program davranışında örtük olarak bulunur. İlişkisel bir veritabanı, sorgu kalıplarını EXPLAIN planları ve sorgu günlükleri aracılığıyla ortaya koyar. VSAM erişim kalıpları yalnızca dosyaya erişen programların PROCEDURE DIVISION bölümünde görünür. Bir programın anahtar sıralamasına, alternatif indeks erişimine veya aralık taramasına bağlı olup olmadığını anlamak kod analizi gerektirir.
Paylaşılan veri kümeleri gizli sözleşmeler oluşturur. İlişkisel bir veritabanında şema, tüm tüketicilerin paylaştığı ve gördüğü veritabanı düzeyinde bir yapıdır. VSAM'de kayıt düzeni her programın copybook'una gömülüdür. İki program, görünüşte aynı kayıt düzeninin farklı kopyalarına sahip olabilir ve bu farklılığı keşfetmek, tek bir şema tanımını incelemek yerine programlar arası copybook tanımlarını karşılaştırmayı gerektirir.
Ne kadar SMART TS XL VSAM Yapısal Analizi Gerçekleştirir
SMART TS XL'S statik kod analizi COBOL kaynak kodunda bulunan VSAM yapısının her öğesini ayrıştırır: FD girişleri, COPY üye genişletmeleri, SELECT yan tümcesi bildirimleri (organizasyon, erişim modu, birincil ve alternatif anahtar belirtimleri) ve PROCEDURE DIVISION'daki her dosya erişim fiili. Her VSAM veri kümesi için analiz, erişim modeli sınıflandırmasını, tam REDEFINES çözünürlüğüne sahip kayıt düzenini ve hassasiyet meta verileriyle COMP-3 alan kaydını üretir.
Uygulama bağımlılık eşlemesi, paylaşılan veri kümesi haritasını oluşturur: her VSAM veri kümesine erişen her program, erişim türüne göre sınıflandırılır, üretici-tüketici ilişkileri belirlenir ve copybook paylaşım grafiği çözümlenir. 47 program, bir VSAM kayıt düzenini tanımlayan bir copybook'u paylaştığında, bağımlılık haritası, herhangi bir geçiş kararı verilmeden önce, yani düzen değişikliği 47 programı beklenmedik şekillerde bozduktan sonra değil, tüm 47 programı görünür hale getirir.
JCL genişletme özelliği, operasyonel bağlamı sağlar: hangi JCL iş adımları, DD ifadelerinde hangi VSAM veri kümelerine hangi sırayla ve hangi iş akışlarında referans verir. 1. Adımın 3. Adımın okuduğu bir VSAM veri kümesine yazdığı JCL iş seviyesindeki üretici-tüketici ilişkileri, JCL bağımlılık analizinde görünür hale gelir ve bu da toplu iş planının zorunlu kıldığı operasyonel sıra bağımlılıklarını koruyan geçiş sıralamasını mümkün kılar.
Etki analizi özelliği, her VSAM geçiş kararından önce gelen soruyu yanıtlar: Bu veri kümesinin düzeni değişirse, hangi programlar etkilenir? Etki kapsamı, ilgili copybook'u paylaşan her program, veri kümesine referans veren her JCL adımı, herhangi bir geçiş çalışması başlamadan önce listelenir; bu da etkilenen programları tek tek keşfetmek yerine, koordineli bir geçiş planlaması için temel oluşturur.
Kurumsal arama özelliği, modernizasyon programı boyunca tüm VSAM envanterinin sorgulanabilir olmasını sağlar: belirli bir VSAM veri kümesine erişen her programı, belirli bir kayıt düzenini tanımlayan her copybook'u, START/READ NEXT kalıplarını (sıralama bağımlılıklarını gösteren) kullanan her programı, COMP-3 olarak tanımlanan her alanı (hassasiyet odaklı hedef eşleme gerektiren) saniyeler içinde, milyonlarca satır COBOL kodunda bulun.
Açıklandığı bağlamda IMS ve VSAM veri yapılarını COBOL programlarıyla birlikte taşımaVeri geçişi ve kod analizi paralel olarak ilerlemelidir. SMART TS XLVSAM'ın yapısal analizi, bu paralelliği yönetilebilir kılan envanteri, paylaşılan kayıt düzenlerini, erişim modellerini ve veri geçişinin bağımsız olarak mı yoksa program değişiklikleriyle koordineli olarak mı ilerlemesi gerektiğini belirleyen üretici-tüketici ilişkilerini sağlar.
Anladığınız yapı, geçiş yapabileceğiniz yapıdır.
VSAM dosya yapısı analizi, modernizasyon programında gereksiz bir yük değil, karar verme temelidir. Kayıt düzeni varyantları bilinmeden hedef şema tasarlanamaz. Üretici-tüketici ilişkileri bilinmeden geçiş sıralanamaz. Hangi alanların ondalık duyarlı hedef türlerine ihtiyaç duyduğu bilinmeden COMP-3 alanlarının hassasiyeti korunamaz.
Bu analizi atlayan her modernizasyon programı, geçiş yürütme sırasında neleri kaçırdığını keşfeder: analiz edilmemiş bir REDEFINES varyantı hedefte hatalı kayıtlar ürettiğinde, paylaşılan bir veri kümesi tüm tüketicileri koordine edilmeden taşındığında, VSAM'ın anahtar sıralamasına dayanan bir aralık taraması, kümelenmiş bir dizinle tasarlanmamış bir hedef tablodan tanımsız sıralama sonuçları döndürdüğünde. Yürütme sırasında yapılan bu keşifler, planlama aşamasında yapılacak analizin maliyetinin kat kat fazlasına mal olur.
Önce yapıyı anlayın. Sonra verileri taşıyın. Sıralama bir formalite değil. Doğru sonuçlar üreten bir taşıma ile ilk düzenleyici denetim çalışana kadar doğru görünen veriler üreten bir taşıma arasındaki farkı oluşturur.