Oracle Diagnostics Framework Overview

Introduction

Oracle Diagnostics Framework provides the infrastructure to execute diagnostic tests either for troubleshooting or for simply sanity-checking the Oracle E-Business Suite instance periodically or after applying any patch.

Oracle E-Business Suite Diagnostics provides application specific troubleshooting tools that can help shorten problem-resolution time. Oracle E-Business Diagnostics has two major components. They are:

This guide primarily explains how to use the infrastructure. No guidance or explanation is provided about any particular diagnostics test. See My Oracle Support if you are looking for the details of a particular diagnostic test.

Target Audience

The target audience for this manual includes the following:

System Administrators

As a system administrator, running diagnostic tests allows you to check the health of your system. You can use diagnostic tests to identify and resolve problems related to:

If you cannot successfully resolve the problem on your own, you can send the report generated by the tests to Oracle Support.

Implementation Engineers

When performing implementations, you are advised to run diagnostics after every installation or patching process to confirm that the environment is set up correctly and there are no outstanding issues to be resolved.

Application Developers and Consultants

You can use this manual to learn how to extend the diagnostic tests provided by Oracle.

Features

Features include:

Benefits

Benefits include:

Terminology

Here is a list of terms used in this manual.

Application

Application refers to any application that is bundled in Oracle E-Business Suite.

Group

An ordered set of one or more related tests based on functionality. Every application has one or more groups.

Test

The actual program that is run to diagnose the problem.

Test Set

A logical grouping of tests across applications and groups that can be used to diagnose a particular business transaction.

Architecture

The architecture for the Oracle Diagnostics Framework constitutes of the following components:

Accessing the User Interface

Oracle Diagnostics Framework provides a very user-friendly web based interface. The UI is secured using function security and requires a specific responsibility to access the UI namely Application Diagnostics. This responsibility has three menus:

Note: There is no other way to access the Oracle Diagnostics Framework; all other paths are disabled.

Now Diagnostics supports four types of tests, which are:

In-Context Diagnostics Support

The In-context Diagnostics feature uses the inline popup feature in Oracle Application Framework to enable end users to run diagnostic tests from within a product page. If this feature is enabled for a product, an end user with the proper privileges can enter input for a diagnostic test, execute the test, and view the result/report from a current product page without navigating to the Oracle Diagnostics Framework pages to run the test. Note that the user must have the Applications Diagnostics responsibility and executions privileges for the particular test to run the test.

Diagnosing an Issue

This section describes methods on how to use Oracle Diagnostics Framework to troubleshoot an issue.

By Executing a Test

Click on the Application Diagnostics responsibility from the Oracle E-Business Suite home page. You will see three menus. Select the menu Diagnose, which will take you to a page where you can see the available diagnostic tests under each application as a hierarchy. By default, tests under an application by the name HTML Platform are displayed. You can select any other application by clicking the Select Application button, which will open up a list of values (LOV). Search using application name or application short name. Searching with wild cards is supported. Also, you can enter multiple search criteria separated by comma (,). From the list displayed, select one or more applications.

This LOV lists all the available diagnostic tests under the selected applications as a hierarchy. Only the tests under the first group of the last selected application will be expanded. You can expand the hierarchy based on your needs.

Select the diagnostic test you want to execute and click on the Execute button, which takes you to the request submission page. You are prompted for the following:

Enter the needed values and click the Submit button. The results page will be displayed, showing the progress. Click on the Refresh button if the execution is still in progress. Once the test execution is complete, you can view the report online or download it.

By Executing Multiple Tests

Sometimes it will be required to execute multiple tests across applications to diagnose an issue looking from a business perspective. You can bundle a bunch of tests and execute them as part of a single request. This is called as a Test Set. To create a test set, select multiple applications and select the needed tests from the hierarchy and click on the Add to batch button. In the next page all the selected tests will be listed. If you want to add more tests to the test set, click on the Add more tests button. You can also remove tests if they were added inadvertently.

Click on the icon in the column Test Inputs to enter input values for each test. You can enter multiple sets of inputs. You can either enter fresh set of inputs values or select from available pre-configured inputs (input values that are stored in the database for reuse; see the Configuration section for more details). Click on Apply after entering the values. Coming back to the previous page the icon in the column Inputs Available will become a green tick indicating that the inputs were entered for that particular test.

If you opt for a downloadable report then the Download Format column will appear. Enter a valid request name and submit the request. You are then redirected to the View Reports page where the details of the request are shown as a hierarchy. Click on the links available to see the progress of individual test executions. Once the request is completed, you can either view/download the report of individual execution or download the report for the entire request (See the section Reporting for more details).

Instead of executing the test, you can save the test set for future use. See the Test Set section for more details.

Test Set

Selecting multiple tests every time to diagnose an issue can be cumbersome, so Oracle Diagnostics provides the facility to save the selection for reuse. It is saved as an XML file in the database and includes the input values entered. Confidential inputs (like passwords) are stored in encrypted form.

After selecting the tests and configuring the input values, click on Save Test Set, give the test set a unique name, and save it.

Test Set pages can be directly accessed through the subtab by the same name under the Diagnose tab. You can search for test sets using the name; wild card searches are supported.

You can execute the test set, edit it to add/remove tests or change the input values of any existing tests, duplicate it to create a new one with any changes needed, or delete it.

Another useful feature is to download the test set as an XML file to a local hard drive. Once downloaded the selection can be ported to another instance and can be uploaded using the Upload Test Set button.

Executing a test with multiple set of inputs

If you want to execute a single test with multiple set of input values, you can use the test set feature. This usage is like a test set with a single test.

Synchronous Execution

Execution of diagnostic tests always occurs in a separate thread. The main thread is used to update users with progress in the user interface. However, there are some tests that cannot be executed in a separate thread due to technical reasons associated with the diagnostic logic (like a dependency on an HTTP request or response). Such tests cannot be executed as part of a test set nor can the be scheduled. These tests can be executed as single tests. These tests should be marked according to development guidelines so that the Oracle Diagnostics Framework can identify them at runtime and execute them in the main thread itself.

Scheduling a Test

Scheduling of tests is done via the Concurrent Processing infrastructure. The concurrent request cannot be submitted separately, it must be run only from the Oracle Diagnostics Framework UI.

Click on the Application Diagnostics responsibility from the Oracle E-Business Suite home page. From the three menus, select the menu Diagnose. Select the test and click on the Schedule button. Provide the request name and specify whether a downloadable report is needed or not. Inputs for scheduled tests cannot be given "on the fly" because the execution might happen at a future time. Therefore the engine uses pre-configured input values that are stored in the database. Clicking on the Submit button takes you to the Concurrent Processing pages where more details related to scheduling can be entered before submitting the request. Once the request is submitted, you will be redirected to the Scheduling subtab under the View Reports tab. You can monitor the progress using this page (see the section Reporting for more details). If you schedule the test to be repeated, then the system appends the Concurrent Processing request ID to the request name, making each request unique.

Scheduling a Test Set

Scheduling of test sets is done through the Concurrent Processing infrastructure. The concurrent request to schedule test sets cannot be submitted separately; it must be run only from the Oracle Diagnostics Framework user interface.

To schedule a test set, select the Application Diagnostics responsibility from the Oracle E-Business Suite home page. From the three menu options, select the menu Diagnose. Select two or more tests and click on the Execute button or click on the Add to batch button. Provide the request name and specify whether a downloadable report is needed or not.

The system will use the test input values stored as part of the test set XML file while executing the test. If there is no input, the system will take the pre-configured inputs stored in the database. If neither of them is available, the test will be skipped during execution of the test set.

A user can create a test set, specifying inputs for the tests as required, and then schedule the test set.

Inputs for a test set can be entered when it is created or updated. A test set can be scheduled to execute immediately or at a future time. Clicking on the Save Test Set button takes you to the Test Set Details page where you can enter a name for the test set and enters a description before clicking the Apply button. Once you are on the View Test Sets page, clicking on the Schedule icon takes you to Concurrent Processing pages where more details related to scheduling can be entered before submitting the request. Once the request is submitted, you will be redirected to the Scheduling subtab under the View Reports tab. You can monitor the progress using this page (see the section Reporting for more details). If you schedule the test to be repeated, then the system appends the Concurrent Processing request ID to the request name, making each request unique.

Customization Support

Oracle Diagnostic Framework now makes it possible for users with custom responsibilities to run diagnostic tests. For example, applications that have been cloned from a seeded Oracle application can include these custom responsibilities. Also, customers running localizations can create a custom role and a custom grant that map to an Oracle seeded application. Once these tasks are done, the system will recognize the mapping between custom/localized applications and seeded applications. The responsibility LOV provided by the framework will show the responsibilities of the user associated with custom applications.

Setting up for the execution of tests using custom responsibility with a seeded application includes these tasks:

Once this setup is done, the system will recognize mapping between custom/localized applications and seeded applications. The responsibility LOV provided by the framework will start showing the responsibilities of the user associated with custom applications.

Reporting

Click on the Application Diagnostics responsibility from the Oracle E-Business Suite home page. From the three menus, select the menu View Reports. You can search for the reports of diagnostic tests using a simple search or an advanced search. In a simple search, you use the request name. Wild card searches are not supported. In an advanced search, you can provide multiple criteria like test details, dates, status, and so on.

The results of the search are displayed as a hierarchy with different columns which show counts for total execution, success, failure, warning, in-progress and in-queue. Except for the in-queue count, you can click the count link and drill down to see the details. In-queue means the test execution has not yet started and the test is in queue. A refresh button appears if the execution is in queue or the execution/downloadable report generation is in progress.

If the search was conducted using the request name, you can download all the reports, which are part of the request, as a single ZIP file. Otherwise you have to drill down and download each report individually.

Scheduling

You can specifically search for scheduled tests using the Scheduling subtab under View Reports. A search can be conducted based on the dates or the concurrent request ID, as well as the request name using wildcard support. The results are shown in a table. A refresh icon is available to refresh the data. In the table are columns with diagnostics request name and the concurrent request ID. Both of these are links that can be used to drill down for details. The diagnostics request name gives you the details of the diagnostic execution and the concurrent request ID will give details on the concurrent request. In the diagnostic request name column, the link will not be enabled until the execution of the request is completed.

Purging

Use the concurrent program Delete Diagnostic Logs to purge the old logs. You can specify values for the two parameters:

You can specify a value of either parameter or a combination.

Security

Overview

Security in diagnostics is implemented at two levels, UI and data. The UI is secured using function security and the content as well as actions available within each page is controlled using data security

Function Security

Using function security, only users with Application Diagnostics responsibility will be able to access the UI for diagnostics.

Data Security

Data security is achieved using Role-Based Access Control (RBAC). The actions that a user can perform are grouped into different categories. Roles are created and Grants are given to each role to perform different categories of actions. The section below describes the implementation data security. We assume that the user has some basic understanding of RBAC. Please see Overview of Oracle User Management, Oracle E-Business Suite Security Guide to learn more.

Sensitivity

Sensitivity is an attribute of the test that indicates the kind of data it is dealing with. There are three levels - High, Medium and Low.

Permission

A permission is, as the name suggests, the permission to do an action. There are four permissions in diagnostics.

Permission sets

This is a logical grouping of permissions. Grants are given using permission sets. There are three permission sets in diagnostics

The execution permission set has the permission to execute a diagnostic test and pre-configure input values for the test.

The reporting permission set has the permission to view the detailed report of an execution. The reporting permission set is a child of execution permission set so that any user who has the latter will also get the former. It is possible to change this configuration (see the section Customizing Security).

The configuration permission set has the permission to configure diagnostics.

Roles

Diagnostics comes with three roles. A user must have any one of these roles to do diagnosis. All three roles have the Application Diagnostics responsibility attached to it so that UI access is available by default. Following are the three roles:

The following security matrix table below gives a detailed picture:

Security Matrix

The following table describes how Oracle Diagnostic Framework functions can be used by different types of users.

Function Diagnostics Super User Application Super User Application End User
Select, Execute Tests, View Execution Results Yes High, medium, and low sensitivity tests if the user has a responsibility in any valid application of the test; otherwise, only low sensitivity tests. Medium and low sensitivity tests if the user has a responsibility in any valid application of the test; otherwise, only low sensitivity tests.
Scheduling Same as Execution Same as Execution Same as Execution
View Reports Same as Execution Same as Execution Same as Execution
Configure Test Input Values Same as Execution Same as Execution Same as Execution
View Registered Applications, Groups, and Tests Yes Yes Yes
Register Applications, Create/Edit/Delete Tests and Groups Yes No No

Grants

Grants are used to give access to different roles. The JTF_DIAGNOSTIC_TEST table is used to give execution/reporting grants while the JTF_DIAGNOSTIC_APP table is used to give configuration grants. Diagnostics ships four grants:

Customizing Security

The security model can be customized if you do not want to use the roles out of the box. To do this, perform the following steps. Note that you should follow this procedure separately for execution and for configuration; that is, create separate roles, permission sets, and grants for execution and for configuration.

  1. Create a new role.

  2. Attach the Application Diagnostics responsibility to this role.

  3. Create a new permission set with all desired permissions.

  4. Give a grant to this role using the Diagnostic Execution instance set.

  5. Assign the role to the user.

HTML Platform

This application is a non-secure application and all users have full access to all tests under it. This application is used to diagnose the issues related to security if security is not working properly.

Configuration

This section briefly describes the tasks involved in configuring Oracle Diagnostics Framework. For more information on these tasks, see the next chapter.

Register Application

Tests are owned by applications. Each application must be registered. Use the Register Application page to register applications.

Valid Applications for a Test

It is possible to define a set of applications for which a test is valid. This task can be done using the configuration UI. This is applicable only to high- and medium- sensitivity tests. Low-sensitivity tests are valid for all applications. The values that are hardcoded in the existing tests are moved to the database by a migration concurrent program called "Diagnostics Patching CP". During an upgrade, this concurrent program is run automatically as part of the upgrade process. Once the upgrade is complete, please make sure that this concurrent program was executed successfully. The short name of this concurrent program is "DIAGPATCHINGCP". If this concurrent program has not been run, then you can run it manually.

Create/Edit/Delete/Re-Order Groups

Tests in an application can be organized into groups. Use these pages to manage your groups.

Note: Seeded groups cannot be edited or deleted by end users.

Create/Edit/Delete/Re-Order Tests

Use these pages to create, edit, delete, and re-order your tests.

Note: Seeded tests cannot be edited or deleted by end users.

Pre-Configured Inputs

Pre-configured inputs are input values for a test entered during configuration, prior to running the test.