Danh mục duy trì đơn vị và khối lượng nơi tập dữ liệu cư trú. Danh mục được sử dụng để truy xuất các bộ dữ liệu. Bộ dữ liệu không phải VSAM tạo mục nhập danh mục bằng Thông số bố trí trong JCL. Bộ dữ liệu VSAM duy trì danh mục riêng của nó dưới dạng cụm KSDS. Trong hình ảnh sau, bạn có thể thấy loại danh mục VSAM
Danh mục chính
Bản thân danh mục chính là một tệp theo dõi và quản lý hoạt động của VSAM. Đây là danh mục chính duy nhất trong bất kỳ hệ thống nào chứa các mục nhập về bộ dữ liệu hệ thống và bộ dữ liệu VSAM. Bộ dữ liệu VSAM và Non-VSAM có thể có mục nhập trong danh mục chính nhưng đây không phải là một thông lệ tốt. Danh mục chính được tạo trong quá trình tạo hệ thống và nằm trên ổ đĩa hệ thống. Danh mục chính sở hữu tất cả các tài nguyên VSAM trong hệ điều hành. Tất cả các tệp được sử dụng trong VSAM đều được kiểm soát bởi danh mục chính. Danh mục chính chịu trách nhiệm cho các hoạt động sau –
- Ủy quyền mật khẩu cho các tập tin
- Tăng cường An ninh
- Truy cập VSAM cho các tập tin
- Quản lý không gian của tập tin
- Vị trí của tập tin
- Không gian trống có sẵn trong tệp
Khi bất kỳ thuộc tính tệp nào ở trên thay đổi, chúng sẽ tự động được cập nhật trong danh mục chính. Danh mục chính được xác định bằng các chương trình ICAMS.
Danh mục người dùng
Danh mục người dùng có cấu trúc và khái niệm giống như danh mục chính. Nó hiện diện ở cấp phân cấp tiếp theo sau danh mục chính. Danh mục người dùng không bắt buộc phải có trong hệ thống nhưng được dùng để tăng cường bảo mật cho hệ thống VSAM. Danh mục chính trỏ đến các tệp VSAM nhưng nếu có Danh mục người dùng thì danh mục chính sẽ trỏ đến danh mục người dùng. Danh mục người dùng có thể có nhiều số lượng theo yêu cầu hệ thống. Trong cấu trúc VSAM nếu danh mục chính bị xóa thì nó sẽ không ảnh hưởng đến danh mục người dùng. Danh mục người dùng chứa các mục về bộ dữ liệu cụ thể của ứng dụng. Thông tin của danh mục người dùng được lưu trữ trong danh mục chính.
Không gian dữ liệu
Không gian dữ liệu là một khu vực của thiết bị lưu trữ truy cập trực tiếp được phân bổ riêng cho việc sử dụng VSAM. Không gian dữ liệu phải được tạo trước khi tạo cụm VSAM. Diện tích chiếm dụng bởi không gian dữ liệu được ghi lại trong Mục lục Tập đĩa (VTOC), do đó không gian sẽ không có sẵn để phân bổ cho bất kỳ mục đích sử dụng nào khác, dù là VSAM hay không phải VSAM. VTOC có mục nhập diện tích chiếm dụng không gian. VSAM tạo một không gian dữ liệu để chứa các mục nhập danh mục người dùng. VSAM kiểm soát không gian này và giám sát cũng như duy trì không gian này khi các tệp VSAM cần.
Cụm duy nhất
Cụm duy nhất bao gồm một không gian dữ liệu riêng biệt được sử dụng hoàn toàn bởi cụm được tạo bên trong nó. Các cụm duy nhất được tạo từ không gian chưa phân bổ trên bộ nhớ truy cập trực tiếp.
Cụm được phân bổ phụ
Tệp VSAM được phân bổ phụ chia sẻ không gian VSAM với các tệp được phân bổ phụ khác. Nó chỉ định rằng tệp phải được phân bổ phụ trong không gian VSAM hiện có. Phân bổ phụ được sử dụng để quản lý và kiểm soát không gian VSAM dễ dàng hơn.
Bộ dữ liệu không phải VSAM
Bộ dữ liệu không phải VSAM nằm trên cả bộ lưu trữ truy cập trực tiếp và băng từ. Bộ dữ liệu không phải VSAM có thể có các mục trong cả danh mục chính và danh mục người dùng. Chức năng chính của việc lập danh mục các bộ dữ liệu không phải VSAM là lưu giữ thông tin sê-ri đơn vị và tập.
VSAM – Trạng thái tệp
Trong khi làm việc với bộ dữ liệu VSAM, bạn có thể gặp phải những khúc mắc. Sau đây là các mã trạng thái tệp phổ biến cùng với mô tả của chúng sẽ giúp bạn giải quyết vấn đề –
Mã số | Sự miêu tả |
00 | Hoạt động thành công |
02 | Đã tìm thấy khóa trùng lặp Chỉ mục thay thế không duy nhất |
04 | Bản ghi độ dài cố định không hợp lệ |
05 | Trong khi thực hiện MỞ Tệp và không có tệp |
10 | Gặp phải kết thúc tệp |
14 | Đã cố ĐỌC một bản ghi tương đối bên ngoài ranh giới tệp |
20 | Khóa không hợp lệ cho VSAM KSDS hoặc RRDS |
21 | Lỗi trình tự trong khi thực hiện VIẾT hoặc thay đổi phím trên VIẾT LẠI |
22 | Đã tìm thấy khóa trùng lặp chính |
23 | Không tìm thấy bản ghi hoặc Không tìm thấy tệp |
24 | Khóa bên ngoài ranh giới của tập tin |
30 | Lỗi I/O vĩnh viễn |
34 | Ghi lại ranh giới tập tin bên ngoài |
35 | Trong khi thực hiện MỞ Tệp và không có tệp |
37 | MỞ tệp sai chế độ |
38 | Đã thử MỞ một tệp bị khóa |
39 | MỞ không thành công do thuộc tính tệp xung đột |
41 | Đã thử MỞ một tệp đã được mở |
42 | Đã thử ĐÓNG một tệp không MỞ |
43 | Đã thử VIẾT LẠI mà không cần ĐỌC bản ghi trước |
44 | Đã thử VIẾT LẠI một bản ghi có độ dài khác |
46 | Đã cố gắng ĐỌC ngoài End-of-file |
47 | Đã thử ĐỌC từ một tệp chưa được mở IO hoặc INPUT |
48 | Đã thử VIẾT vào một tệp chưa được mở IO hoặc OUTPUT |
49 | Đã thử XÓA hoặc VIẾT LẠI một tệp chưa được mở IO |
91 | Mật khẩu hoặc ủy quyền không thành công |
92 | Lỗi logic |
93 | Tài nguyên không có sẵn |
94 | Bản ghi tuần tự không khả dụng hoặc lỗi MỞ đồng thời |
95 | Thông tin tệp không hợp lệ hoặc không đầy đủ |
96 | Không có câu lệnh DD nào cho tệp |
97 | MỞ thành công và xác minh tính toàn vẹn của tệp |
98 | Tệp bị khóa – MỞ không thành công |
99 | Bản ghi bị khóa – Truy cập bản ghi không thành công |