2015-02-20 12 views
18

Napotkano te warunki w dokumencie definicji pliku danych dla niektórych danych, które otrzymuję z systemu Mainframe.Jaka jest różnica między formatem z blokowaniem zmiennym a formatem z zablokowaną blokadą?

Nie znalazłem definicji tych terminów w żadnym glosariuszu ani wyszukiwarce Google - tylko wspomniałem o nich.

Czy ktoś może rzucić nieco światła na dokładne znaczenie tych terminów?

+0

Zobacz odpowiedź na rachunki; Ta odpowiedź ma trochę binarnej implementacji VB: http://stackoverflow.com/questions/21977135/connect-direct-file-sending-from-mainframe-to-unix/22005492#22005492 –

+0

Czy ktoś może wyjaśnić nagłe głosów na dzisiaj? –

+1

@BillWoodger Twoja odpowiedź została powiązana w sekcji komentarzy na temat wiadomości hakerskich: https://news.ycombinator.com/item?id=14084339 – bkjvbx

Odpowiedz

36

Zapomnij o danych na dysku twardym pod Windows lub Unix/Linux.

Stałe rekordy (które mogą być zapisane w formacie zapisu (RECFM) F dla odblokowanych, FB dla zablokowanych (mogą to być również FBS, które jest stałym standardem blokowym, ale dla prostego zestawu danych jednorazowego użytku) równoważne FB) po prostu zawierać dane i znany niezmienną ilość danych.

nich danych dowolnymi z bitowych wartości możliwych 256. nie ma żadnych ograniczników płytowych.

zmienną długością rekordy, (RECFM V lub VB (VBS jest Varible Blocked Spanned, który jest czymś innym niż prosty rekord) poprzedzone są czterema bajtami (Record Descriptor Word (RDW)), z których pierwsze dwa wskazują długość rekordu. zawierają contr ol informacji i danych. Nie ma ograniczników rekordów (ponieważ zamiast tego znana jest długość).

Bloki dla zbioru danych VB są również poprzedzone słowem deskryptora bloku (BDW), czterema bajtami, z których pierwsze dwa zawierają długość bloku.

Dane są zapisywane i odczytywane tylko w blokach, z odblokowaniem wykonanym przez procedury io. Im większy bloki, tym mniej ios. Ponieważ jednak maksymalny rozmiar bloku jest mniejszy niż rozmiar ścieżki na dysku, najbardziej efektywnym blokowaniem jest "blokowanie na połowie ścieżki" z blokowaniem do jednego rekordu mniejszego niż 27998 lub równego temu.

Stałe bloki mają mniej narzutów, ponieważ dostępne są tylko informacje (bloki (BLITS) i maksymalna długość rekordu (LRECL) (w katalogu lub JCL, lub w programie, zwłaszcza jeśli napisano w asemblerach), które nie są przechowywane w danych.

Dla zapisów zmiennej blokowych, istnieją dwa rodzaje informacji sterującej (BDW i RDW) osadzone z danymi, a także inne informacje.

programista na Mainframe nie musi wiele wiedzieć na ten temat.A program zajmie się rekordy, szczegóły blokowania mogą być zewnętrzne do programu

Oto FB Blok:

DATADATADATADATA 

Jak by przerwy bloku w dół do rekordów o stałej długości odbywa się z zewnątrz do danych. Położenie trzeciego rekordu w bloku można obliczyć. Dostępna jest metoda dostępu niskiego poziomu, która wykorzystuje ten fakt.

Oto blok VB:

BDWRDWDATARDWDATARDWDATA 

Stanowisko trzeciego rekordu w bloku jest znana tylko rekordy przed nim zostały przetworzone przez IO rutyny.

Wybór niewłaściwego typu lub niewłaściwej długości rekordu lub niewłaściwego rozmiaru może mieć istotny wpływ na wydajność programu.

Gdy dane są przesyłane poza komputer typu mainframe, istnieją opcje usuwania RDW (jeśli są obecne), wstawiania ograniczników, usuwania końcowych spacji i podobnych rzeczy, aby dane wyglądały teraz na plik natywny. Przejście do Mainframe przechodzi przez proces odwrotny.

Jeśli chcesz otrzymywać dane z komputera mainframe lub wysyłać dane do komputera mainframe, rób to tylko w formacie znaków. Brak pól "binarnych" lub "spakowanych" i używanie wyraźnych znaków, wyraźnych miejsc dziesiętnych lub współczynników skalowania. Uratujesz sobie tyle kłopotów i będziesz mieć dobre książki audytorów.

Powiązane problemy