Checking the Consistency of a Repository or a Business Model

Repository metadata must pass a consistency check before you can make the repository available for queries.

The Consistency Check Manager lets you enable and disable rules for consistency checks, find and fix inconsistent objects, and limit the consistency check to specific objects. You can also use the validaterpd utility to check the validity of all metadata objects.

Note:

A separate tool, Model Check Manager, identifies modeling problems that will affect Oracle BI Summary Advisor and aggregate persistence performance and results. Run Model Check Manager before running Oracle BI Summary Advisor or the Aggregate Persistence Wizard. See Using Model Check Manager to Check for Modeling Problems.

This section contains the following topics:

About the Consistency Check Manager

The Consistency Check Manager checks the validity of your repository to ensure that it can load at run time, and to identify any syntax or semantic errors that may cause queries to fail.

Running a consistency check might result in updates to your repository metadata when you run the Global Consistency Check or the Check Consistency option against an object. You must save the repository when using those options. For example, invalid objects are deleted during Consistency Checks. This behavior might result in deleted expressions and filters on logical table sources and logical columns. Invalid references can occur when objects were deleted in the Physical layer without properly accounting for the references in the Business Model and Mapping layer objects.

The Show Consistency Check option available on the Tools menu is read-only and does not implement changes in the repository.

The Consistency Check Manager does not check the validity of objects outside the metadata using the connection. It only checks the consistency of the metadata and not the mapping to the physical objects outside the metadata. If the connection is not working or objects were deleted in the database, the Consistency Check Manager does not report these errors.

The Consistency Check Manager identifies application roles that defined in the Administration Tool, but that were not added to the policy store. Messages about placeholder application roles only appear when you perform a consistency check in online mode. The set of consistency check messages returned for your repository might contain different results depending on whether you have opened the repository in offline or online mode.

If you use lookup tables to store translated field names with multilingual schemas, the consistency checking rules are relaxed for the lookup tables. See Localizing Oracle Business Intelligence.

The consistency checker returns the following types of messages:

  • Errors. These messages describe errors that you must fix. Use the information in the message to correct the inconsistency, then run the consistency checker again. The following is an example of an error message:

    [38082] Type of Hierarchy '"0RT_C41"..."0RT_C41/MDF_BW_Q02"."Product Hierarchy for Material MARA"' in Cube Table '"0RT_C41"..."0RT_C41/MDF_BW_Q02"' needs to be set.
    

    If you disable an object and it is inconsistent, a message is displayed, asking if you want to make the object unavailable for queries.

  • Warnings. These messages indicate conditions that you might need to fix. For example, you might receive a warning message about a disabled join that was intentionally disabled to eliminate a circular join condition. Other messages may warn of inconsistent values, or feature table changes that do not match the defaults. The following is an example of a warning message:

    [39024] Dimension '"Paint"."MarketDim"' has defined inconsistent values in its levels' property 'Number of elements'.
    

In the Consistency Check Manager, you can sort the rows of messages by clicking the column headings. Additionally, the status bar provides a summary of all the rows displayed.

Note:

After upgrading from a previous software version and checking the consistency of your repository, you might notice messages that you had not received in previous consistency checks. This typically indicates inconsistencies that had been undetected before the upgrade, not new errors.

The table list the actions that you can perform in the Consistency Check Manager.

Option Description

Show Qualified Name

When clicked, the qualified name of the object is displayed in the Consistency Check Manager’s Object column.

Objects...

When clicked, displays a list of all of the objects that were checked displays the objects by name and type.

Stats...

When clicked, displays a list of errors and warnings by numeric code and the corresponding number of occurrences, for example, Warning 38028, 10.

Save As

Click Save As to save the messages in the text, CSV, or XML format.

Check All Objects

When clicked, the Check Consistency Manager performs a global check.

Click Refresh to check only the objects that were listed as inconsistent in the last check.

Edit

Select a row in the Check Consistency Manager, and click Edit to open the Properties dialog for the object.

Go To

In the Check Consistency Manager, you can select an object, and then click the Go To icon to view the location of the object in the repository.

Copy

In the Check Consistency Manager, you can select one or more rows and click Copy to enable pasting the content of the row into another file such as a spreadsheet or text file. If you click this option without selecting any rows, then all messages are copied.

Running the Consistency Check Manager

Use the Oracle BI Administration Tool to run the consistency checker on all of the repository objects, on a specific physical database or data source, physical database, business model, or subject area.

You can view the Consistency Check Manager’s results without performing a global consistency check, by selecting the Show Consistency Checker from Tools menu. If you have checked consistency in the current session, the messages from the last check appear in the Messages pane.

Note:

If a disabled object is inconsistent, you are prompted to make the object unavailable for queries. If an object is not consistent, the Consistency Check Manager appears and displays a list of messages.

  1. In the Administration Tool, open a repository.
  2. Do one of the following:
    • From the File menu, select Global Consistency Checker to review all of the objects in the repository.
    • In the repository, select an object, right-click, and select Check Consistency.
Review the output. The Consistency Check Manager implements the fixes in the repository, however, you must save the fixed repository.

Using the validaterpd Utility to Check Repository Consistency

You can use the Oracle BI Server validaterpd utility to check the validity of all metadata objects in a repository.

Running this utility performs the same validation checks as the Consistency Check Manager in the Administration Tool.

The validaterpd utility is available on both Windows and UNIX systems. You can run validaterpd against a binary RPD file, against an XML file based on the Oracle BI Server XML API, or against a set of MDS XML documents.

The location of the validaterpd utility is:

BI_DOMAIN/bitools/bin

Using validaterpd with the -L option checks your repository metadata for issues that might affect the success of Oracle BI Summary Advisor or the aggregate persistence engine. See Checking Models Using the validaterpd Utility to learn about using validaterpd with the -L option.

Syntax

The validaterpd utility takes the following parameters:

validaterpd {-R repository_name | -I input_file_pathname | 
-D MDS_XML_document_directory} [-P repository_password] {-O output_txt_file_name |
-C output_csv_file_name | -X output_xml_file_name} [-8] [-F fixed_rpd_name] [-S] [-B]

Where:

repository_name is the name and path of the binary RPD file that you want to validate.

input_file_pathname is the name and path of the XML input file that you want to validate.

MDS_XML_document_directory is the location of the input MDS XML documents.

repository_password is the password for the repository that you want to validate.

The repository_password argument is optional. If you do not provide the password argument, you are prompted to enter the password when you run the command. To minimize the risk of security breaches, Oracle recommends that you do not provide password arguments either on the command line or in scripts. The password argument is supported for backward compatibility only, and are removed in a future release. For scripting purposes, you can pass the password through standard input.

output_txt_file_name is the name and path of a text file where the validation results are recorded.

output_csv_file_name is the name and path of a csv file where the validation results are recorded.

output_xml_file_name is the name and path of an XML file where the validation results are recorded.

Specify -M to specify that you want to execute MDS XML documents. If you specify -D, the -M argument is not needed. You only need to specify -M when you have a single MDS XML file that contains all the object definitions.

-8 specifies UTF-8 encoding in the output file.

Specify -F to create a new version of the repository in RPD format that includes automatic fixes for some internal validation errors. For fixed_rpd_name, provide the name and path of a binary RPD file where you want to save the fixes.

Specify -S to check server errors and navigation spaces only.

Specify -B to skip checks for business models availability.

Examples

The following example generates an output file called results.txt that contains validation information for the repository called repository.rpd, and saves a fixed version to fixed_repository.rpd:

validaterpd -R repository.rpd -O results.txt -F fixed_repository.rpd
Give password: my_rpd_password

The following example generates an output file called results.csv that contains validation information for the repository contained in the MDS XML documents located at C:\MDS_dir:

validaterpd -D C:\MDS_dir -C results.csv
Give password: my_rpd_password

Note:

You must provide the full path names to your repository files, both the input files and the output files, if they are located in a different directory.

Common Consistency Check Messages

Review the table to get information about some commonly seen consistency check warnings and errors.

Note:

The table provides a partial list only and does not show all possible warnings and errors.

Validation Rule Example Type Description

[14031] The content filter of a source for logical table: FACT_TABLE_NAME references multiple dimensions.

Error

The given logical table has a logical table source with a WHERE clause filter that references multiple dimensions. A WHERE clause with multiple dimensions is invalid.

[38126] 'Logical Table' '"Technology - WFA"."Fact WFA WO "' has name with leading or trailing space(s).

Error

Identifies an object with leading or trailing spaces in the object name.

Repository objects can no longer have leading or trailing spaces in their names. Leading and trailing spaces in object names can cause query and reporting issues.

[38012] Logical column DIM_Start_Date.YEAR_QUARTER_NBR does not have a physical data type mapping, nor is it a derived column.

[38001] Logical column DIM_Start_Date.YEAR_QUARTER_NBR has no physical data source mapping.

Error

Logical columns that are not mapped to any logical table source are reported as consistency errors, because the logical table source mappings are invalid and would cause queries to fail.

Both of the given validation rules are related to the same issue.

[39062] Initialization Block 'Authorization' uses Connection Pool '"My_DB".

"My_CP"' which is used for report queries. This may impact query performance.

Warning

Indicates that the same connection pool is being used for both queries and for initialization blocks. This configuration is not recommended. Instead, create a dedicated connection pool for initialization blocks. Otherwise, query performance might suffer, or user logins might hang if authorization initialization blocks cannot run.

[39028] The features in Database 'MyDB' do not match the defaults. This can cause query problems.

Warning

Some database feature defaults were changed in this release of Oracle BI EE. Unless you have specific customizations to your feature set, it is recommended that you reset your database features to the new defaults.

[39003] Missing functional dependency association for column: DIM_Offer_End_Date.CREATE_DT.

Warning

This warning indicates that the given column is only mapped to logical table sources that are disabled. The warning brings this issue to the repository developer's attention in case the default behavior is not desired.

[39059] Logical dimension table MY_DIM has a source MY_DIM_DAILY at level Daily that joins to a higher level fact source MY_FACT_SUM.MTHLY_SUM

Warning

Even though this fact logical table source has an aggregate grain set in this dimension, no join was found that connects to any logical table source in this dimension (or a potentially invalid join was found).

This means that either no join exists at all, or it does exist but is potentially invalid because it connects a higher-level fact source to a lower-level dimensional source. Such joins are potentially invalid because if followed, they might lead to double counting in query answers.

For example, consider Select year, yearlySales. Even if a join exists between monthTable and yearlySales table on yearId, it should not be used because such a join would overstate the results by a factor of 12 (the number of months in each year).

If you get a 39059 warning after upgrading, verify that the join is as intended and does not result in incorrect double counting. If the join is as intended, then ignore the 39059 warning.

[39055] Fact table "HR"."FACT - HC Budget" is not joined to tables in logical dimension "HR"."DIM - HR EmployeeDim". This will cause problems when extracting project(s).

Warning

This warning indicates that there is a physical join between the given fact and dimension sources, but there is not a corresponding logical join between the fact table and the dimension table.

[39054] Fact table "Sales - STAR"."Fact - STAR Statistics" is not joined to logical dimension table "Sales - STAR"."Dim - Plan". This will cause problems when extracting project(s).

Warning

This warning indicates that the aggregation content filter "Group by Level" in the logical table source of a fact table references logical dimension tables that are not joined to that fact table. If that fact table is extracted in the extract/MUD process, the dimensions that are not joined will not be extracted. In this case, the aggregation content of the extracted logical table source would not be the same as in the original logical table source.

[39057] There are physical tables mapped in Logical Table Source ""HR"."Dim - Schedule"."SCH_DEFN"" that are not used in any column mappings or expressions.

Warning

This warning indicates that the given logical table source has irrelevant tables added that are not used in any mapping. This situation will not cause any errors.