Copyright © TIBCO Software Inc. All Rights Reserved
Copyright © TIBCO Software Inc. All Rights Reserved


Chapter 1 Using TIBCO Object Service Broker Utilities : S6BBRPTR (Batch Pointer Check)

S6BBRPTR (Batch Pointer Check)
You can use S6BBRPTR to validate the integrity of page images. S6BBRPTR reads in an archive file or offline segment and validates the horizontal and vertical pointers. If multiple segments are contained within the same archive data set, you must run this utility against each segment individually.
We strongly recommend that you always run this utility following a standalone backup and after TIBCO Object Service Broker runs a continuous backup.
Input File
The input to the S6BBRPTR utility can be either an archive file from tape or disk or an offline segment. The archive file that you input to this utility must be generated by doing one of the following:
See Also
TIBCO Object Service Broker for z/OS Managing Backup and Recovery for information about backing up a segment.
Invocation
The S6BBRPTR member of the JCL data set distributed with TIBCO Object Service Broker contains sample JCL required to run this utility to check an archive.
This sample is provided as a reference only; modify the JCL for your needs.
Note the following about this JCL:
//DBDLIB DD DSN=$HLQNONV$.$INSTVER$.DBDLIB.DISP=SHR
The NOTIFY parameter on the JOB card specifies the user ID to be notified of the success or failure of the job. The user ID must be logged on to receive the notification.
In case the user ID specified in the NOTIFY parameter is not logged on at the time the Batch Pointer Check job is run, you should always check the ERRLOG file to ascertain the status of the job.
Parameters
 
Optional parameter to request the validation of the data page header entry size. This checks that the entry size is consistent with data page rows on the page.
Optional parameter to include header information. If included, the PGHDR DD statement must also included.
Optional parameter that requests the secondary index invalidated warning message be suppressed.
File Definitions
This JCL references seven different files as output or work files. These are:
 
This report lists information pertaining to the segment processed. It includes table name, errors, and page counts.
This file contains a list of pages where the system usage indicators did not agree with reference information detected by Pointer Check processing.
This optional file lists all segment Page Header information. It is created only if HDR is included as a parameter in the input parameter string to the utility. Page Header information is intended for TIBCO Support use.
This log lists error messages detected by the validation process. It provides an easy reference to help you determine if errors occurred. All output is written to the ERRLOG DD statement data set and to the AUDIT DD statement. ERRLOG output can also be used as input to the reclaim orphan pages utility (S6BBRPGC).
The use of each of these files is discussed in detail.
Page Image File (PAGES)
This work file holds a small number of pages that must be retained in their entirety. These pages are saved for a select group of page types that are required during processing. It is unlikely that you need to retain more than 50 of these pages for the pointer validation process. This file contains fixed length 4096 byte records. We recommend that you use VIO space for this file.
Index Information File (INDEX)
The index information file is a work file used to retain indexing information during the pointer validation process. The file is a variable length blocked file and should be defined with a maximum record length of 4800 bytes. We recommend that a VIO type unit be used. As a general guideline, allow about 20 records per cylinder of space.
Audit Log (AUDIT)
The audit log provides information on each of the tables that exist in the segment, each error condition found, plus a number of summary items. It contains important information for tracing problems and should be retained.
The following illustrates a compressed version of an audit log. Note that the Pagestore was intentionally modified for this example.

 
 S6BBRPTR POINTER VALIDATION FOR SEGMENT 1 DATE 2009 APR 22 TIME 13:02 V520E049
TABLE/SIX NAME I/1 D/B/R H/G S/6 F/X/0/? TOTAL ERRORS
BACKUP RECORDS READ 55; 55 ACCEPTED; 0 UNUSED PAGES IGNORED
**** SYSTEM *** 1 1 0 0 0 2
@RULESLIBRARY 0 1 0 0 0 1
EVENTRULES 0 1 0 0 0 1
FIELDS 0 10 1 0 0 11
ORDERING 0 2 1 0 0 3
PARMS 0 8 1 0 0 9
SCREENFIELDS 0 1 0 0 0 1
SCREENS 0 1 0 0 0 1
SCREENTABLES 0 1 0 0 0 1
SELECTION 0 1 0 0 0 1
TABLES 1 1 0 0 0 2
 
S6BBRPTR POINTER VALIDATION FOR SEGMENT 1 DATE 2009 APR 22 TIME 13:02 V520E049
TABLE/SIX NAME I/1 D/B/R H/G S/6 F/X/0/? TOTAL ERRORS
********** ORPHAN PROCESSING INITIATED **********
S6BBRPTR POINTER VALIDATION FOR SEGMENT 1 DATE 2009 APR 22 TIME 13:02 V520E049
TABLE/SIX NAME I/1 D/B/R H/G S/6 F/X/0/? TOTAL ERRORS
**** SYSTEM *** 0 0 0 0 22 22
GRAND TOTALS 2 28 3 0 22 55 0
START TIME 13:02:41 END TIME 13:02:41
DATASET READ REFERENCED OLDEST TIMESTAMP NEWEST TIMESTAMP
PAGE1 53 53 2009APR09 14:40:27 2009APR09 18:12:51
PAGE2 1 1 2009APR09 18:12:51 2009APR09 18:12:51
PAGE3 1 1 2009APR09 18:12:51 2009APR09 18:12:51

 
Entries prefixed with a hyphen (-) indicate a secondary index with that secondary key field name.
The output for non-segment 0 analysis shows several tables, including @RULESLIBRARY, EVENTRULES, FIELD, TABLES, and others that are actually on segment 0. They are automatically inserted in segment 1 due to reserved page formatting and do not indicate an error.
Orphan List (ORPHAN)
The orphan file lists all pages where there are discrepancies between the system and the actual availability and usage indicators.
An orphan page is a page that is not available for use and is not referenced by a table. A page that is referenced by a table but is available for use is reported as REFERENCED BUT INDICATED FREE.
In the orphan file, the ORPHAN pages are listed with the previous and next page pointers as well as the page type. REFERENCED BUT INDICATED FREE pages are listed as a page number followed by the message text.
The orphan list file must be a sequential file with a record length of 80 bytes, fixed block. Since orphan pages are an operating exception, a static allocation of five tracks should suffice. Retain the orphan list file so you can compare the results with those generated by a future run. Contact TIBCO Support if the number of orphan pages continues to increase. The utility S6BBRPGC can be used to reclaim orphan pages.
*l
If your report shows REFERENCED BUT INDICATED FREE pages, stop using the segment and contact the TIBCO Support immediately. If processing continues on the segment, further data corruption can occur which may result in loss of user data in multiple tables..
Output Reference Log File (REFLOG)
The reference log lists each referenced page in the segment. The log identifies the table, forward and backward chain pointers, and parent information. This information helps identify how the page fits in the Pagestore. The reference log has the following format:
The REFLOG file must be a sequential file with an 80 byte record length, fixed block. As a guideline, you should allocate one track of REFLOG for every four cylinders of space. The information in the reference log should be retained. It is intended to help the TIBCO Support identify problems should they arise.
Page Header List (PGHDR)
This file contains a list of the header information for each page read. This information is often needed when investigating problems with the structure of the Pagestore.
Error Log (ERRLOG)
The error log lists tables with errors. Refer to Audit Log (AUDIT) for more information about how errors are reported. If ERRLOG is to be used as input to S6BBRPGC to reclaim orphan pages, it should be created as a 132-byte FB file. Otherwise, it can be directed to SYSOUT.
S6BBRPTR extracts the timestamp from page 1 and puts it in the ERRLOG in the form ID=xxxxxxxxxxxxxxxx. S6BBRPGC checks this timestamp against the then current page 1 before acting on any orphan-recovery request. If there is no ID= line in ERRLOG or if the stamps do not match, the job aborts. If, after checking that the ERRLOG is still valid against the indicated segment, you decide to proceed with the recovery, either insert the following line after the headings in the ERRLOG file, or modify the existing ID= line, as appropriate:
ID=IGNORE
Return Code Settings
To identify validation errors more easily, the return code is set according to the most severe error encountered. A non-recoverable error results in an abend.
See Also
TIBCO Object Service Broker Messages With Identifiers for details on abend codes.

Copyright © TIBCO Software Inc. All Rights Reserved
Copyright © TIBCO Software Inc. All Rights Reserved