z/OS Security Server RACF System Programmer's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


BAM/allocation comparison

z/OS Security Server RACF System Programmer's Guide
SA23-2287-00

When a BAM/allocation comparison is requested, IRRUT200 performs the following verifications:
  • Every index entry name must have a valid length.
  • If MAP ALL is requested, the names and segment types are checked between the Level 1 regular index and the segments pointed to by the RBAs.
  • The logical length of profiles must be a multiple of 256 and must be less than or equal to the allocated length as defined in the header of the profile.
  • The actual number of templates must be less than or equal to the space allocated for templates in the inventory control block (ICB).
  • The RBA of each template defined in the ICB must have these characteristics:
    • It is a multiple of 4096.
    • The first two bytes are zero.
    • The last four bytes are nonzero.
  • The RBA of each BAM block is a multiple of 4096, and its first two bytes are zero.
  • The count of BAM blocks in the ICB is greater than zero.
  • The number of blocks defined by a BAM block is between 1 to 2008, inclusive.
  • Every regular index entry must have a nonzero segment count.
  • Every alias index entry must have a length consistent with the base profile data.

When a block does not meet all of these requirements, IRRUT200 prints a dump of the block in hexadecimal. An error message precedes the dump.

Some of these messages are also printed. For an explanation of these messages, see z/OS Security Server RACF Messages and Codes.

IRRUT200 produces an encoded map of each BAM block. Each map is identified by a block number and its relative byte address (RBA), and contains byte offsets to the coded masks within the block. The codes indicate the type of block and the types of consistencies or inconsistencies that exist between the actual allocation of data set segments and the status of the segments as defined by the masks in the BAM blocks. Codes that indicate normal conditions and their meanings are as follows:
Symbol
Meaning
*
The segment is defined as allocated by the BAM and is actually allocated.
0
The segment is defined as unallocated by the BAM and is actually unallocated.
B
Refers to a BAM block. This symbol implies an asterisk (*).
F
Refers to the first block (ICB). This symbol implies an asterisk (*).
I
Refers to an index block with the level in the next positions. This symbol implies an asterisk (*).
S
Refers to a segment table block. This symbol implies an asterisk (*).
T
Refers to a template block. This symbol implies an asterisk (*).
/
Undefined space. The BAM block is capable of mapping more space than is defined to the data set. This space is not defined to the RACF® data set.
Codes that indicate problems and their meanings are as follows:
Symbol
Meaning
$
Refers to a template or other special block that is defined as unallocated but is actually allocated.
?
Refers to a block that is defined as allocated and is actually allocated. The block is not valid, so its type is unknown.
%
Refers to a block that is defined as unallocated but is actually allocated. The block is not valid, so its type is unknown.
@
The segment is defined as allocated but is pointed to by more than one entry in the index block.
#
The segment is defined as unallocated but is pointed to by more than one entry in the index block.
.
The segment is defined as allocated by the BAM but is actually unallocated. This condition will be corrected the next time you rebuild the data set with the IRRUT400 utility.
+
The segment is defined as unallocated by the BAM but is actually allocated.
Refers to an index, BAM, or first block that is defined as unallocated but is actually allocated.

For some of the problem indicator symbols, it might be useful to run the IRRUT400 utility to rebuild the RACF data set. See Diagnostic capability. For other problem indicator symbols, it is necessary to delete the data (using RACF commands or BLKUPD) and then add the data back using RACF commands. For more information about diagnosis, the format of the RACF database, and BLKUPD, see z/OS Security Server RACF Diagnosis Guide.

You can use the indicator symbols for normal conditions to determine when it is appropriate to run the IRRUT400 utility to rebuild a RACF data set. You should rebuild a RACF data set when it is running out of usable space, which can occur when there is little space available, or when the space that is available is too fragmented to be usable. The encoded map that IRRUT200 produces with MAP ALL specified specifies what percentage of the data set's space is in use, indicating how much space is available. You can determine how fragmented the available space is by looking at the map of the BAM blocks. In the example shown in Figure 1, the large number of contiguous 0s indicates that there is plenty of contiguous space available in this data set, and little fragmentation. On the other hand, fragmentation would be evident if the mappings that appear as:
00000000   00000000   00000000  00000000  ...
instead appeared something like:
***0****   *0*0****   ***0***0  *00**0**  ...
In this fragmented case, profile creations or updates might soon fail because there is not enough contiguous space to accommodate new or larger profiles. Whenever there is little usable space based on the percentage used or based on fragmentation, you should enlarge or rebuild the data set using IRRUT400.

Following the encoded blocks, IRRUT200 prints a table of conflict messages that lists the first 200 locations of possible conflicts in the BAM blocks. These messages locate the inconsistencies by referencing the corresponding block, byte, and bit of the encoded mappings. Each word of the encoded map represents one byte of the BAM block. The relative byte address (RBA) of the storage represented by the bit is also included.

IRRUT200 also provides the following summary statistics concerning the RACF data set:
  • The number of BAM blocks defined in the ICB
  • The RBA of the last BAM block that defines used space
  • The total number of index blocks in the data set
  • The total number of level one index blocks
  • The number of profiles of each type in the data set
  • The percentage of space used in the RACF data set

IRRUT200 produces an encoded map for every BAM block, whether inconsistencies are found or not. As an option, you can request that the encoded maps for an entire RACF data set be printed. If inconsistencies are found, a table of conflict messages follows.

See Figure 1 for a sample printout of the encoded map that IRRUT200 produces with MAP ALL specified.

Figure 1. Sample output of encoded BAM map produced by IRRUT200
                                           ****  BAM BLOCK VERIFICATION  ****                                            
0             ****  SYMBOL LEGEND  ****                                                                                  
                                                                                                                         
          *   BAM=ALLOC   , ACTUAL=ALLOC                                                                                 
          0   BAM=UNALLOC , ACTUAL=UNALLOC                                                                               
          .   BAM=ALLOC   , ACTUAL=UNALLOC                                                                               
          +   BAM=UNALLOC , ACTUAL=ALLOC                                                                                 
          I   INDEX BLOCK WITH LEVEL IN NEXT POSITIONS                                                                   
          B   BAM BLOCK                                                                                                  
          T   TEMPLATE BLOCK                                                                                             
          S   SEGMENT TABLE BLOCK                                                                                        
          F   FIRST BLOCK (ICB)                                                                                          
          -   BAM=UNALLOC , ACTUAL=ALLOC  I,B,OR F BLK                                                                   
          $   BAM=UNALLOC , ACTUAL=ALLOC  SPECIAL BLK                                                                    
          ?   BAM=ALLOC   , ACTUAL=ALLOC  UNKNOWN BLK                                                                    
          %   BAM=UNALLOC , ACTUAL=ALLOC  UNKNOWN BLK                                                                    
          @   BAM=ALLOC   , DUPLICATE ALLOCATION                                                                         
⋮                                                                                                                        
          #   BAM=UNALLOC , DUPLICATE ALLOCATION                                                                         
          /   UNDEFINED STORAGE                                                                                          
-BLOCK 000 RBA 00000000C000                                                                                              
 014 FFFFFFFF FFFFFFFF TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT
 021 TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT SSSSSSSS SSSSSSSS BBBBBBBB BBBBBBBB
 02E ******** ******** I1111111 11111111 ******** ******** ******** ******** ******** ******** ******** ******** ********
 03B ******** ******** ******** ******** ******** ******** ******** ******** *******0 00000000 00000000 00000000 00000000
 048 I1111111 11111111 I2222222 22222222 ******** ******** ******** ******** ******** ******** ******** ******** *****000
 055 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 062 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 06F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 07C 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 089 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 096 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
⋮                                                                                                                        
 542 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 54F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 55C 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 569 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 576 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 583 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 590 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 59D 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 5AA 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 //////// //////// ////////
 5B7 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 5C4 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 5D1 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 5DE //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 5EB //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 5F8 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 605 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
⋮                                                                                                                        
 F1C //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 F29 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 F36 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 F43 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 F50 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 F5D //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 F6A //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 F77 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 F84 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 F91 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 F9E //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 FAB //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 FB8 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 FC5 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 FD2 //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 FDF //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 FEC //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// //////// ////////
 FF9 //////// //////// //////// //////// //////// //////// ////////                                                      
                                           ****  MAP FUNCTION STATISTICS  ****                                           
 NUMBER OF BAM BLOCKS DEFINED 001                                                                                        
 LAST BAM THAT DEFINES USED SPACE - RBA 00000000C000                                                                     
 RACF DATA SET IS   4 PERCENT FULL.                                                                                      
 TOTAL NUMBER OF INDEX BLOCKS IN RACF DATA SET 00000003                                                                  
 TOTAL NUMBER OF LEVEL 01 BLOCKS IN RACF DATA SET 00000002                                                               
 NUMBER OF GROUP    ENTRIES - 0000003                                                                                    
 NUMBER OF USER     ENTRIES - 0000016                                                                                    
 NUMBER OF DATASET  ENTRIES - 0000002                                                                                    
 NUMBER OF DASDVOL  ENTRIES - 0000003                                                                                    
 NUMBER OF DIGTCERT ENTRIES - 0000025                                                                                    
 NUMBER OF SECLABEL ENTRIES - 0000004

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014