Using Active Data Guard Reporting With Oracle E-Business Suite Release
-
Upload
mohammed-abdul-muqeet -
Category
Documents
-
view
222 -
download
9
Transcript of Using Active Data Guard Reporting With Oracle E-Business Suite Release
9/24/12 Document
1/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
Using Active Data Guard Reporting with Oracle E-Business Suite Release12.1 and Oracle Database 11g [ID 1070491.1]
Modified: Jun 25, 2012 Type: WHITE PAPER Status: PUBLISHED Priority: 3
Oracle E-Business Suite Release 12 has numerous configuration options that can be chosen to suit particular businessscenarios, uptime requirements, hardware capability, and availability requirements. This document describes how toconfigure Oracle E-Business Suite Release 12 for Active Data Guard Reporting.
Note: At present, this document applies to UNIX and Linux platforms only.
The most current version of this document can be obtained in My Oracle Support Knowledge Document 1070491.1.
There is a change log at the end of this document.
A number of conventions are used in describing the Oracle E-Business Suite architecture:
Convention Meaning
Application tierMachines (nodes) running Forms, Web, and other services (servers). Sometimes called middletier.
Database tier Machines (nodes) running the Oracle E-Business Suite database.
Primary System Primary Oracle E-Business Suite system
Standby SystemOracle E-Business Suite system running as a data guard standby to the primary system, open forread only access.
oracle User account that owns the database file system (database ORACLE_HOME and files).
CONTEXT_NAMEThe CONTEXT_NAME variable specifies the name of the Applications context that is used byAutoConfig. The default is <SID >_ <hostname >.
CONTEXT_FILE
Full path to the Applications context file on the application tier or database tier. The defaultlocations are as follows.Application tier context file:<APPL_TOP >/admin/ <CONTEXT_NAME >.xmlDatabase tier context file:<RDBMS ORACLE_HOME >/appsutil/ <CONTEXT_NAME >.xml
APPSpwd Oracle E-Business Suite database user password.
Monospace Text Represents command line text. Type such a command exactly as shown.
< > Text enclosed in angle brackets represents a variable. Substitute a value for the variable text. Donot type the angle brackets.
\On UNIX or Linux, the backslash character can be entered to indicate continuation of thecommand line on the next screen line.
This document is divided into the following sections:
Section 1: OverviewSection 2: Concurrent Manager ReportingSection 3: ConfigurationSection 4: Managing ADG Support
9/24/12 Document
2/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
Section 5: Managing Simulated StandbySection 6: Managing Concurrent ProgramsSection 7: Database TriggersSection 8: Understanding ADG Process FlowSection 9: Maintenance and HousekeepingSection 10: Understanding READ ONLY ViolationsSection 11: Approved Reports
Appendix A: Example ConfigurationAppendix B: Opening a Physical Standby Read OnlyAppendix C: Example ADG Concurrent ManagerAppendix D: Creating and Using Database ServicesAppendix E: ADG Reporting Tables
Section 1: Overview
An Active Data Guard [ADG] database is a data guard physical standby database opened for read access. Thisdocument assumes that you have a data guard physical standby database configured for read access. To set upphysical standby for Oracle E-Business Suite Release 12, see My Oracle Support Knowledge Document 1070033.1.
This document details the required steps to allow Concurrent Manager Reports to be run on ADG.
1.1 Active Data Guard
An Active Data Guard database applies redo from the primary. Although ADG guarantees query consistency [ by astandby query SCN ] the redo should be applied as soon as possible to the standby to ensure reports are using up todate data. A delay of 30 seconds is no different to a job being held on a primary manager queue for an extra 30seconds.
1.2 Software Prerequisites
This document assumes the following minimum software versions:
Software Component Minimum Version Additional Patches
Oracle E-Business Suite 12.1.3 or higherInfrastructure patch 9434627 9434627:R12.FND.BEnabling patch 9505793 9505793:R12.FND.B patch 9526837 9526837:R12.FND.B .
Oracle Database 11gR1 11.1.0.7 or higherRecording ADG violations: <patch 10070167> patch 10134846
Oracle Database 11gR2 11.2.0.2 or higher None - included in patchset.
1.3 Parallel Concurrent Processing
In order to use Concurrent Manager Reporting you must be using Parallel Concurrent Processing with new processingnodes set up to handle ADG reports. It is recommended that these nodes, although part of the primary system , be co-located with the ADG database as the majority of network traffic will be between the report programs and the ADGdatabase. This decision will of course depend on the network latency between the primary and the ADG [ standby ]servers.
In this ADG manager configuration, the concurrent manager connects to the primary database; only the reportsconnect to the ADG database.
9/24/12 Document
3/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
1.4 Read-Only Limitations
ADG is a READ ONLY database. No DML of any sort is permitted other than DML executed via database links. Thislimitation applies to both user and dictionary DML. So for example <sequence>.nextval is not supported as thisrequires a dictionary update.
Concurrent Reporting requires some level of application level DML, from updating the FND_CONCURRENT_REQUESTStable through to setting up Row Level Security via the multi-org temporary table. Temporary tables provide thegreatest challenge for Concurrent Reporting, as all access must be via a database link. In the current implememtation,temporary tables are resolved to the primary. It is of course technically possible to change the database link fortemporary tables to a local, read-write scratch database. However, this is currently not the delivered solution, as forsecurity reasons all db links are checked to ensure that they resolve to primary.
1.5 Security
The only new security issue is the requirement to secure the SQL net traffic between the standby and the primary. Asper usual database security practice the traffic between the two servers should be encrypted using standard SSL - see<Document 376700.1>.
Section 2: Concurrent Manager Reporting
Concurrent Manager support for ADG reporting is currently restricted as follows:
Only Oracle Reports programs are supported.For a report to be run on ADG it must have been previously run on the primary.Only Oracle Reports programs that have no direct or indirect DML are supported. [ This excludes FND level DMLdiscussed in 1.4 ]FND Debug is not supported.
The process for running ADG reporting is :
Identify reports that can be run on ADG.Redirect reports to ADG.
2.1 Identifying Reports that can be run on Active Data Guard
Section 11 contains a list of reports that have been validated against Active Data Guard. However, there are manythousands of Oracle Reports programs, not to mention custom reports. Therefore, a process is required to allowcustomers to identify reports that can be run on ADG. This is done by providing a simulation mode, where reports runon primary but log READ ONLY violations. This information is logged to both V$ views and database trace files.
2.2 Redirecting Reports to Active Data Guard
As mentioned in 1.3, a concurrent processing node needs to be set up for ADG reporting. There is nothing specialabout the node other than its location - in other words, if network latency was not an issue the report could beassigned to any node, using existing work shifts and rules.
Once a node has been set up, the reports need to be redirected to the standby. This can be done in one of two ways:
1. By changing the Session Properties within the Concurrent Program Definition form and specifying an ADGinstance.
2. By using automatic redirection. With this option, request submission will automatically push the request to thefirst available standby [concurrent manager].
The configuration steps required are covered in the following sections.
9/24/12 Document
4/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
Section 3: Configuration
3.1 Configure an ADG database
Set up a physical standby using My Oracle Support Knowledge Document 1070033.1 and open the database READONLY. See Appendix B for the steps to open a data guard database read only.
3.2 Configure Parallel Concurrent Processing and set up an ADG Manager
Follow the steps in Document 406982.1 for cloning an applications tier to set up Parallel Concurrent Processing,registering the node for batch processing only. As discussed earlier, it is recommended that this node, although part ofthe primary system , be co-located with the ADG database as the majority of network traffic will be between the reportprograms and the ADG database
Start up the application and register a new concurrent manager, assigning it the node co-located with ADG. To ensurethat this manager only handles reports destined for ADG, use exclude/include rules. It is beyond the scope of thisdocument to discuss the concurrent manager architecture but an example configuration is supplied in Appendix C.
3.3 Apply Patches
Apply patches as per Software Prerequisites .
3.4 Prepare System for reporting
As the APPS user carry out the following steps.
1. Disable system - if this is the first time, skip this step.1. execute fnd_adg_utility.disable_adg_support;2. execute fnd_adg_utility.disable_database_triggers; -- If enabled.3. execute fnd_adg_utility.switch_rpc_system_off;
2. execute fnd_adg_utility.clone_clean;3. execute fnd_adg_utility.prepare_for_rpc_system;4. Create a database link that will be used to connect to the primary. [ Although it is possible to create the
database link dynamically, the standard APPS account does not have the "CREATE PUBLIC DATABASE LINK"privilege ]
1. create public database link <db_link> using <connect_str> [ The link must be public and the connectstring a TNS alias. It will be validated before it can be used.] The <connect_str> can be the standardautoconfig generated TNS alias.
5. Register a database link that will be used to connect to the primary. 1. execute fnd_adg_utility.register_connection(p_type =>
fnd_adg_utility.C_CONNECT_STANDBY_TO_PRIMARY, p_link_name => <db link name>, p_link_connstr=> <connect_string> );
6. execute fnd_adg_utility.switch_rpc_system_on;1. This will fail unless the database link registered in step 4 is valid - i.e. the link must resolve to a READ-
WRITE database with the same DBID.7. Recompile invalid objects
1. execute fnd_adg_utility.compile_rpc_dependents; or use standard RDBMS scripts.8. Optionally enable database triggers - see Section 7
1. execute fnd_adg_utility.enable_database_triggers;
Switching RPC System On
Out of the box, ADG support is disabled. This is achieved by using compile time directives to ensure that no databaselink dependencies are brought in until customers choose to enable ADG support.
Switching the RPC system on does two things:
9/24/12 Document
5/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
1. Creates synonyms to allow REMOTE DML via database links.2. Enables the compile time directive so that the REMOTE code path is now available.
Note that enabling the compile time directive doesn't mean that the code path will be executed. It just brings in theREMOTE code path for compilation.
3.5 Register ADG connections
Connections are registered via fnd_adg_utility.register_connection. There are three types of connections:
Connection from Standby to Primary. This is used for DML operations from the standby.Connections from Primary to Standby. These are the connections used for running the reports. Up to fiveconnections [ ADG databases ] can be specified. Connection to Simulated Standby. This is a connection to primary that allows a report to run on primary as if itwere running on standby.
fnd_adg_utility.register_connection
Option Type Description
type Boolean
Use constant from fnd_adg_utility:
C_CONNECT_STANDBY_TO_PRIMARY C_CONNECT_PRIMARY_TO_STANDBY C_CONNECT_TO_SIMULATED_STANDBY
link_name varchar2 Database link name.
link_owner varchar2 Defaults to PUBLIC which is the only allowable value.
link_connstr varchar2 Database link connect string. Resolves to a TNS alias.
create_db_link_if_undefined Boolean
Default is FALSE. Cannot be set to TRUE unless APPSaccount has "CREATE PUBLIC DATABASE LINK" privilege.It is not recommended to add this privilege to the APPSaccount. Therefore, connect as a privileged user andcreate the required database links using the aliasesdetailed below.
standby_number numberAllowable values 1 to 5. Only valid when type isC_CONNECT_PRIMARY_TO_STANDBY.
C_CONNECT_STANDBY_TO_PRIMARY was discussed in 3.4.5 as the RPC system cannot be enabled until thisconnection has been registered. Before a connection can be used it must be validated. [ Not thatC_CONNECT_STANDBY_TO_PRIMARY is automatically validated during the RPC system switch.]
fnd_adg_utility.validate_connection(<type>,<standby_number>);
There must be at least one C_CONNECT_PRIMARY_TO_STANDBY connection in order for reports to use ADG.
C_CONNECT_TO_SIMULATED_STANDBY is required for using the simulated standby feature - see Section 5.
TNS Aliases
There is currently no autoconfig support for ADG aliases so theses aliases need to be set up manually both on thedatabase and middle tier. The TNS alias requirements are discussed below. It is recommended to create an <IFILE>
9/24/12 Document
6/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
and copy the contents to the respective tiers <TNS_ADMIN> directory.
Connection Type TNS Alias Description
Required onDatabase
Tier (Primary& ADG)
Required onApplications
Tier
C_CONNECT_STANDBY_TO_PRIMARYAn alias that connects to the primarydatabase. Yes No
C_CONNECT_PRIMARY_TO_STANDBY An alias that connects to an ADG instance. Yes Yes
C_CONNECT_TO_SIMULATED_STANDBY
An alias that connects to the primarydatabase via a dedicated service. Itcannot be the same alias as<STANDBY_TO_PRIMARY>. See Section5 for further details on SimulatedStandby.
Yes Yes
3.6 Configuring Concurrent Managers
Once you have set up a dedicated concurrent processing node for ADG concurrent managers, the managers need to beconfigured and registered.
To ensure that only ADG managers handle standby requests, you need to designate an include/exclude rule, such thatADG managers are included, all others are excluded. See Appendix C for an example of setting up an ADG manager. Once configured this rule needs to be registered using fnd_adg_utility.register_standby_cm_class.
fnd_adg_utility.register_standby_cm_class
Option Type Description
standby_number number Allowable values 1 to 5.
rule_class_app_id number The Class Application Id for the rule.
rule_class_id number The Class Id for the rule.
For a given request type use the following SQL to determine the class ids:
select APPLICATION_ID,REQUEST_CLASS_ID from fnd_concurrent_request_class where REQUEST_CLASS_NAME='<REQUEST_TYPE>';
All valid requests will now be routed to the designated manager. Conversely, if the ADG manager/database isunavailable, the request will be routed based on existing rules/shifts defined for the program.
Section 4: Managing ADG Support
Before discussing how concurrent programs are managed the control process is discussed.
4.1 Enabling/Disabling ADG support
9/24/12 Document
7/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
ADG support must be enabled before it can be used:
execute fnd_adg_utility.enable_adg_support;
Conversely it can be disabled at any time. All other settings are left unchanged.
execute fnd_adg_utility.disable_adg_support;
Disabling ADG support is done for two reasons:
1. To disable all standby/simulation actions. 2. To allow the control APIs to be called.
4.2 General Options
These options are set by calling fnd_adg_utility.set_control_options. In most cases, they do not need to be changedand the defaults are fine.
Option Type DescriptionInitialValue
always_collect_primary_data Boolean
When a request completes successfully on primary, markreport as having run at least once on primary.
This is the ONE option that is honoured even if ADG support hasbeen disabled
TRUE
enable_redirect_if_valid BooleanRedirect valid reports to standby regardless of the state of theconcurrent managers. The initial value is FALSE - i.e. the ADGmanager must be running for the report to be redirected.
FALSE
enable_standby_error_checks Boolean Check for ADG instance read only errors. TRUE
enable_automatic_redirection Boolean Automatically redirect if the report can be run on ADG. FALSE
debug_rpc Number0 - No debug1 - Enable SQL TRACE.
0
enable_commit_wait Boolean Currently unused
max_commit_wait_time Number Currently unused
runtime_validate_timestamp Boolean Currently unused
standby_error_threshold Number Currently unused
debug_slave_rpc Number Currently unused
This API can only be called when ADG support has been disabled - see Section 4.1
Section 5: Simulated Standby
One of the problems with redirecting reports to an ADG database, is determining whether a report will run on a READONLY database. To help answer this, it is possible to run a simulation where a report runs on primary but is executedas if it were running on standby. In this simulation mode, SQL that would fail on the standby is logged to both databasetrace files and V$ views. After a program has completed, the EBS infrastructure will scan the trace file/V$ views andrecord the number of violations. Note that trace file access requires a directory object that resolves to the instancetrace directory.
9/24/12 Document
8/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
The process of using simulated standby is as follows:
Register a Simulated Standby ConnectionCreate a database service to identify a simulation connection.Set simulation optionsEnable database logon/off triggers - see Section 7.Use the simulated standby connect string for the concurrent program or use redirection.Run the concurrent program.
5.1 Simulation Options
fnd_adg_utility.set_simulated_standby_options
Option Type DescriptionInitialValue
enable_simulated_standby BooleanEnables/disables simulation mode. To captureread-only violations, database triggers must also beenabled - see Section 7.
TRUE
enable_auto_simulation BooleanIf a report can be run in simulation mode, then thisoption will automatically direct to the simulationconnection.
FALSE
simulated_standby_service varchar2
To identify that a connection is for simulation, adedicated database service needs to be createdand then registered.
A database service can be set at the init.ora level,via Grid infrastructure or using the DBMS_SERVICEpackage. See Appendix D for an example ofcreating and using a database service.
NULL
simulation_error_threshold NumberDuring logoff processing, do not report violationsunless above threshold.
5
trace_directory_obj varchar2
A directory object for the standard RDBMS tracedirectory. This directory object must provide READaccess to the diagnostic trace directory - i.e. thedirectory where SQL trace files are created.
NULL
This API can only be called when ADG support has been disabled - see Section 4.1
5.2. Read Only Violation Processing
During logoff processing, the following data is recorded :
Session level violations in fnd_adg_simulated_stndby_trcProgram level violations in fnd_adg_concurrent_program.
If the simulation was successful and no violations were recorded, the program is marked as runnable on standby. [ Note: The violation count in fnd_adg_simulated_stndby_trc is the total count; in fnd_adg_concurrent_program it is thecount less the threshold. ]
9/24/12 Document
9/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
Section 6: Managing Concurrent Programs
Previous sections covered enabling and configuring Active Data Guard support. The next step is to manage theprograms that can run on an ADG database.
Due to various limitations with ADG, the following has to be true before a report can be run on standby.
Report must be the correct type - currently only Oracle Reports programs are supported.Report must have been previously been run on primary.Report must have been run in simulation mode.Report must be marked as runnable on standby - i.e. has no READ ONLY violations.
With these conditions met, and with ADG support enabled - see 4.1 - a concurrent request will be redirected to theADG concurrent managers.
The state changes above are handled automatically but customers may wish to override/pre-populate the programrules based on their requirements. This is managed through the manage_concurrent_program API.
fnd_adg_utility.manage_concurrent_program
Option Type DescriptionDefaultValue
application_id Number
concurrent_program_id NumberApplication_id,Concurrent_Program_Id - primary keyfrom FND_CONCURRENT_PROGRAM.
has_run_on_primary Boolean Set to TRUE to mark as run on primary. FALSE
has_run_on_simulated_standby Boolean Set to TRUE to mark as run as simulated standby. FALSE
run_on_standby Boolean Set to TRUE to mark as runnable on standby. FALSE
no_standby_failures NumberSet the number of standby failures. This is setautomatically so the main use is to reset the value.
0
max_standby_failures NumberSet the maximum of standby failures. Run_On_Standbyis disabled when no_standby_failures >max_standby_failures
0
no_simulated_stdby_failures NumberSet the number of simulated standby failures. This is setautomatically so the main use is to reset the value.
0
max_simulated_stdby_failures Number
Set the maximum number of simulated standby failures.Run_On_Standby is disabled whenno_simulated_stdby_failures >max_simulated_stdby_failures.
0
always_redirect_if_valid Boolean
Program level option to always redirect valid reports tostandby regardless of the state of the concurrentmanagers.
Has no effect unless the control option"enable_redirect_if_valid" is TRUE.
TRUE
If the report can be run on standby, then automaticallyredirect to the first available ADG database, ignoring any
9/24/12 Document
10/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
use_automatic_redirection Booleanprimary instance/node affinity.
Has no effect unless the control option"enable_automatic_redirection" is TRUE.
FALSE
This data is stored in FND_ADG_CONCURRENT_PROGRAM. Use PL/SQL for bulk operations.
e.g.
declarecursor c1 is select a.APPLICATION_ID,a.CONCURRENT_PROGRAM_ID from fnd_concurrent_programs a;begin for f_rec in c1 loop fnd_adg_utility.manage_concurrent_program (p_application_id => f_rec.APPLICATION_ID, p_concurrent_program_id => f_rec.CONCURRENT_PROGRAM_ID, p_max_standby_failures => 1, p_max_simulated_stdby_failures => 5, p_has_run_on_primary => true ); end loop;end;/
Section 7: Database Triggers
ADG support delivers three schema level database triggers. They are disabled by default. To enable/disable thesetriggers use:
fnd_adg_utility.enable|disable_database_triggers.
The three triggers are for logon,logoff and servererror.
7.1 Logon/Logoff Triggers
These triggers are to support simulation testing. The logon trigger will enable READ ONLY violation trace; the logofftrigger will record the number of violations.
If these triggers are not enabled, the following limitations apply:
Trace errors and V$ data are not recorded and simulations will be treated as having no errors. Without thesetriggers, enabling the simulation option is of limited benefit.
7.2 Error Trigger
This trigger is only executed if ORA-16000 is raised - i.e. the trigger does nothing on the primary. If<standby_error_checking> has been enabled [ see 4.2 ] then the error count for the concurrent program isincremented.
If the error trigger is not enabled, the following limitations apply:
Report failures will not be recorded.Failiures will not lead to "Run on Standby" being disabled.
9/24/12 Document
11/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
Section 8: Understanding ADG Process Flow
The process flow depends on whether automatic or manual redirection is being used. However, the prerequisites forboth process flows are the following:
System prepared - Section 3.4Validated connections - Section 3.5ADG support enabled - Section 4.1For standby simulation
Database logon/off triggers enabled - Section 7.1 Simulation options - Section 5.1
Simulation enabledSimulation service registeredFor trace file access [optional] trace directory object registered
For ADG standbyRegistered CM class for standby - Section 3.6Standby error checks enabled - Section 4.2Database error trigger enabled - Section 7.2
TNS aliases configured on all nodes - Section 3.5Concurrent program
Must have been previously run on the primary database. It is possible to set this state from the API - seeSection 6.
8.1 Manual Redirection
In this mode of operation, the connection string is set as part of the Session Properties within the Concurrent ProgramDefinition form.
Simulation
Set the connection string to the simulation alias and submit a request. If the request is successful, the program ismarked as having been run in simulation mode. It is also marked as runnable on standby if the number of violations [less threshold ] is less than the program maximum.
Standby
Additional prerequisites
Concurrent programMust have been successfully run in simulation mode. It is possible to set this state from the API - seeSection 6.Must have been marked as runnable on standby. It is possible to set this state from the API - seeSection 6.
ADG Concurrent Manager must be running.ADG database must be open READ ONLY.
Set the connection string to the standby alias and submit the request. The request will be redirected to the standby. Ifany READ ONLY errors occur on the standby, the ERROR trigger will update the number of concurrent program standbyerrors. If the number of standby errors exceed the program level maximum, the program will be marked as no longerrunnable on standby.
8.2 Automatic Redirection
In this mode of operation, programs that are marked as runnable on standby and are enabled for automatic redirectionwill be automatically redirected to the first available ADG instance.
9/24/12 Document
12/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
Additional prerequisites:
System wide automatic redirection enabled - Section 4.2Program level automatic redirection enabled - Section 6For simulation
Enable automatic simulation - Section 5.1
Simulation
Requests will automatically run in simulation mode. If the requests are successful, the programs are marked as havingbeen run in simulation mode. They are also marked as runnable on standby if the number of violations [ less threshold] is less than the program maximum.
Standby
Additional prerequisites
Concurrent programMust have been successfully run in simulation mode. It is possible to set this state from the API - seeSection 6.Must have been marked as runnable on standby. It is possible to set this state from the API - see Section6.ADG Concurrent Manager must be running.ADG database must be open READ ONLY.
Requests will be redirected to the first available standby. If any READ ONLY errors occur on the standby, the ERRORtrigger will update the number of concurrent program standby errors. If the number of standby errors exceed theprogram level maximum, programs will be marked as no longer runnable on standby.
Section 9: Maintenance and Housekeeping
9.1 Removing ADG and RPC Support
ADG reporting functionality can be disabled at any time as per Section 4.1 . However, this does not remove databaselink dependencies within the EBS code. If for any reason you wish to remove these dependencies, carry out thefollowing steps.
1. Connect to SQLPLUS as the <APPS> user.2. execute fnd_adg_utility.disable_adg_support;3. execute fnd_adg_utility.disable_database_triggers;4. execute fnd_adg_utility.switch_rpc_system_off;5. execute fnd_adg_utility.compile_rpc_dependents;
To reinstate ADG support after it has been removed:
1. Connect to SQLPLUS as the <APPS> user.2. execute fnd_adg_utility.switch_rpc_system_on;3. execute fnd_adg_utility.compile_rpc_dependents;4. execute fnd_adg_utility.enable_database_triggers;5. execute fnd_adg_utility.enable_adg_support;
9.2 Patch Application
Applying patches to the primary database is unaffected by ADG reporting functionality.
9/24/12 Document
13/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
Section 10 : Understanding READ ONLY Violations
The simulation feature discussed in previous sections is underpinned by a new kernel feature to allow READ ONLYviolations to be tracked and recorded.
This section provides some background on this new kernel feature. It is for information only as the simulation optionautomatically handles the session events and statistics.
Enabling/Disabling READ ONLY violations
Version Enabling READ ONLY Violations Disabling READ ONLY Violations
11.1.0.7 + patch 10070167patch 10134846
alter session set events '3177 trace name context forever, level 1'
alter session set events '3177 trace name context forever, level 0'
11.2.0.2alter session set log_read_only_violations =true
alter session set log_read_only_violations =false
Recording READ ONLY violations
Version Session Level Trace file
11.1.0.7 + patch10070167 patch10134846
The violations count is recorded in thesession level statistic,'spare statistic 1'.
e.g. to query the current sessionsviolations
select a.value from v$mystat a, v$statname bwhere a.statistic# = b.statistic# and b.name = 'spare statistic 1';
Each entry is tagged with "*** READ-ONLY VIOLATION BY MODULE ..."
11.2.0.2+
The violation count is recorded in thesession level statistic,'read-only violation count'.
e.g. to query the current sessionsviolations
select a.value from v$mystat a, v$statname bwhere a.statistic# = b.statistic# and b.name = 'read-only violation count';
Each entry is tagged with "*** READ-ONLY VIOLATION BY MODULE ..."
Note that trace is only generated when the followingunderscore parameter is set:
_read_only_violation_dump_to_trace=true
In 11.2.0.2+ there are additional reporting and control features.
x$krdrsbrov. A circular buffer to keep track of violations by module. The circular buffer is controlled by thefollowing initialisation parameters.
_read_only_violation_max_count. Total size of the circular buffer. Default is 500._read_only_violation_max_count_per_module . Maximum number of violations per module kept in thebuffer. Default is 100.
Note that these additional reporting features are not currently used by the simulation implementation.
9/24/12 Document
14/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
If both simulation and database triggers have been enabled, then it is simply a matter of connecting via the simulationservice to enable READ ONLY violation reporting.
Section 11 : Approved Reports
Concurrent Program Name Concurrent Prog Short Name Application
Eligibility and Enrollment List BENELGEN Advanced Benefits
Extract Error Report BENXERRO Advanced Benefits
Extract Layout Report BENXLAYT Advanced Benefits
Extract Summary Report BENXSMRY Advanced Benefits
Life Events Summary Report BENLESUM Advanced Benefits
Participation Error Detail Report by Person BENERRPE Advanced Benefits
OTLR Missing Timecard Report HXT964A Time and Labor
Project Accounting Table List HXT957E Time and Labor
Total Hours To BEE HXT007A Time and Labor
Total Table Entries HXT957H Time and Labor
Assignments Unavailable for Processing PAYRPBLK Payroll
Deductions Report PAYUSDED Payroll
Employee Payroll Movements Report PAYRPEMV(PAY) Payroll
Employee Run Results Report PAYUSRRS Payroll
GRE Totals Report PAYUSTOT Payroll
NACHA Report PAYRPNAC Payroll
Payment Register Report PAYACPRE Payroll
Third Party Payment Register Report PAYRPTPP Payroll
Void Payments Report (US) PAYRPVPRUS Payroll
Absences Report PERRPRAA Human Resources
Assignment Status Report PERRPRAS Human Resources
Duplicate Person Report PERWSDUP Human Resources
Full Person Details Report PERRPFP1 Human Resources
Organization Hierarchy Report PERRPROH Human Resources
Terminations Report PERRPRTM Human Resources
Incomplete invoices Report RAXIIR Receivables
Disputed invoice report ARXDIR Receivables
Journal Entries Report GLYRLGLG General Ledger
Unposted items report ARXGER Receivables
9/24/12 Document
15/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
Tax Exempt Customer Report ZXXSTTEC E-Business Tax
US Sales Tax Report ZXXSTR E-Business Tax
Commitment Balance Report RAXCBR Receivables
Cash Requirement Report APXCRRCR Payables
Sales Journal by GL Account Report RAXGLR Receivables
AR Reconciliation Report ARXRECON Receivables
Account Analysis - (180 Char) GLACTANL2 General Ledger
Agreement Activity Report OEXOEASR Order Management
Audit History Report OEXAUDHR Order Management
Cancelled Orders Reason Detail Report OEXOEOCR Order Management
Cancelled Orders Report OEXOEOCS Order Management
Comprehensive Order Detail Report OEXOECOD Order Management
Credit Check Processor OEXAUCRC Order Management
Credit Order Detail Report OEXOEORD Order Management
Credit Order Discrepancy Report OEXCRDIS Order Management
Credit Order Summary Report OEXOEORS Order Management
Defaulting Rules Listing Report OEXDERUL Order Management
Export Compliance Report to Government OEXITMGV Order Management
Export Compliance Screening Failure Report OEXITMSF Order Management
Internal Order and Purchasing Requisition DiscrepancyReport
OEXIODIS Order Management
Lines on Credit Check Hold Report OEXOECCL Order Management
Order Discount Detail Report OEXPRPRD Order Management
Order Discount Summary Report OEXPRPRS Order Management
Order/Invoice Detail Report OEXOEIOD Order Management
Order/Invoice Summary Report OEXOEIOS Order Management
Orders Summary Report OEXOEOSR Order Management
Orders by Item Report OEXOEITR Order Management
Orders on Credit Check Hold Report OEXOECCH Order Management
Outstanding Holds Report OEXOHOHS Order Management
Payment Receipt OEXPMTRC Order Management
Processing Constraints Listing Report OEXOEPCL Order Management
Returns by Reason Report OEXOEORR Order Management
Sales Order Acknowledgement OEXOEACK Order Management
9/24/12 Document
16/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
Sales Order Workflow Status Report OEXOEWFR Order Management
Sales Order and Purchase Order Discrepancy Report OEXPODIS Order Management
Salesperson Order Summary Report OEXOESOS Order Management
Transaction Types Listing Report OEXORDTP Order Management
Unbooked Orders Detail Report OEXOEUBD Order Management
Unbooked Orders Report OEXOEUBK Order Management
Workflow Assignments Report OEXWFASG Order Management
Discrete Job Pick List Report WIPDJPCK Work In Progress
WIP Account Distribution Report WIPUTACD Work In Progress
Cycle count listing INVARCLI Inventory
Discrete Job Shortage Report WIPDJORQ Work In Progress
Discrete Job Value Report - Standard Costing WIPRDJVR Work In Progress
Shipping Transaction Summary Report CSTRSTSR Bills of Material
Subinventory quantities report INVIRSIQ Inventory
Prepayments Status Report APXINPSR Payables
Overtaken Vacation and Holiday HXT015A Time and Labor
Appendix A - Example Configuration
rem Public database linksrem These links assume that ADG,ADG_TO_STANDBY and ADG_SIMULATED TNS aliases have been created.
rem standby_to_primary
create public database link adg_to_primary.uk.oracle.com using 'ADG';
rem primary_to_standby
create public database link ADG_TO_STANDBY.UK.ORACLE.COM using 'ADG_STANDBY';
rem simulated standby
create public database link ADG_TO_SIMULATED_STANDBY.UK.ORACLE.COM using 'ADG_SIMULATED';
rem Optionally create database directory object for trace directory.
create or replace directory ADG_PRIMARY_TRACE_DIR as '/d1/ADGSUP/ADG-11.1/db/tech_st/11.1.0/admin/ADG_rws60001atg/diag/rdbms/adg/ADG/trace';
rem ignore errors if adg support/rpc system not enabled
execute fnd_adg_utility.disable_adg_support; execute fnd_adg_utility.switch_rpc_system_off;
9/24/12 Document
17/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
rem clean up
execute fnd_adg_utility.clone_clean;
rem execute fnd_adg_utility.clean_all;
rem Clean_all is an alternative to clone_clean. Not normally used. It will remove everything, rem including RPC packages and ADG concurrent program data.
rem execute fnd_adg_utility.resync_compile_directive; -- Only required if clean_all is used.
execute fnd_adg_utility.prepare_for_rpc_system;
begin
fnd_adg_utility.register_connection ( fnd_adg_utility.C_CONNECT_STANDBY_TO_PRIMARY, 'ADG_TO_PRIMARY.UK.ORACLE.COM', 'PUBLIC', 'ADG' );
end;/
execute fnd_adg_utility.switch_rpc_system_on;
execute fnd_adg_utility.compile_rpc_dependents;
begin
fnd_adg_utility.register_connection ( fnd_adg_utility.C_CONNECT_PRIMARY_TO_STANDBY, 'ADG_TO_STANDBY.UK.ORACLE.COM', 'PUBLIC', 'ADG_TO_STANDBY', false, 1 );
fnd_adg_utility.register_connection ( fnd_adg_utility.C_CONNECT_TO_SIMULATED_STANDBY, 'ADG_TO_SIMULATED_STANDBY.UK.ORACLE.COM', 'PUBLIC', 'ADG_SIMULATED' );
end;/
rem Example use of options
begin
fnd_adg_utility.set_simulated_standby_options ( p_enable_simulated_standby => true, p_enable_auto_simulation => false,
9/24/12 Document
18/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
p_simulated_standby_service => 'ADG_SIMULATED', p_trace_directory_obj => 'ADG_PRIMARY_TRACE_DIR', p_simulation_error_threshold => 4 );
fnd_adg_utility.set_control_options ( p_standby_error_threshold => 6, p_debug_rpc => 1 );
end;/
rem register standby CM class
begin
fnd_adg_utility.register_standby_cm_class ( 1, 0, -- specify required app id 44598 -- specify required class id );
end;/
Appendix B - Opening a Physical Standby Read Only
Active Data Guard is a separately licensed database option. You must have acquired the licensed before carrying outthe following steps.
1. Cancel the recoveryalter database recover managed standby database cancel;
2. Open the standby database in read only modealter database open read only;
3. Start managed recoveryalter database recover managed standby database using current logfile disconnect FROM
SESSION;
4. Make sure the standby is in read only modeselect open_mode from v$database;
Appendix C - Example ADG Manager Configuration
The following is an example configuration for an ADG Concurrent Manager.
Log in as System Administrator
Concurrent -> Program -> Types
Create
Name : ADGApplication: Application Object Library
9/24/12 Document
19/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
Description : ADG Type for CM
Save to commit.
Concurrent -> Manager -> Define
Create
Manager: ADG ManagerShort Name: ADGMGRApplication: Application Object LibraryDescription: ADG ManagerType: Concurrent ManagerProgram Library: FNDLIBRPrimary Node: ADG reporting nodeSave to commit.Specialization Rules
Include/Exclude: IncludeType: Request TypeApplication: Application Object LibraryName: ADG [ find for type defined above ]
Work ShiftsStandard/24 hoursProcesses: 2Sleep seconds : 20Save to commit.
Update Specialization Rules for STANDARD
Include/Exclude: ExcludeType: Request TypeApplication: Application Object LibraryName: ADG [ find for type defined above ]Save to commit.
On the ADG node, the following services need to be started:
GSMListenerConcurrent Manager
Appendix D - Creating and Using Database Services
The example below uses DBMS_SERVICE. Alternative approaches are to use the init.ora or Grid infrastructure.
rem Step 1 - Create Service as privileged user
execute dbms_service.create_service('ADG_SIMULATED','ADG_SIMULATED');
rem Step 2 - Start the Service as privileged user
execute dbms_service.start_service('ADG_SIMULATED');
Appendix E: ADG Reporting Tables
9/24/12 Document
20/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
Table Name Type Description
FND_ADG_CONTROL Number
Contains one row and stores all control information, includingconnections, state, control options and simulation options. Themapping is one to one with corresponding procedure argumentsexcept for RPC state.
FND_ADG_CONCURRENT_PROGRAM Number
The rows map one to one with FND_CONCURRENT_PROGRAMand contains all program control information . The columnmapping is one to one with the corresponding arguments infnd_adg_utility.manage_concurrent_program.
FND_ADG_SIMULATED_STNDBY_TRC Boolean
Records READ ONLY violations from simulation sessions andcontains one row for each simulation session. The table ispopulated via the LOGOFF trigger. If the LOGOFF trigger isdisabled, no information will be recorded.
Column Description
LOG_SEQ Internal sequence
ORACLE_PROCESS_ID As perFND_CONCURRENT_REQUESTS
OS_PROCESS_ID As perFND_CONCURRENT_REQUESTS
ORACLE_SESSION_ID As perFND_CONCURRENT_REQUESTS
REQUEST_ID As perFND_CONCURRENT_REQUESTS.Set to -1 if trigger [ simulation ]hasbeen run outside of a concurrentjob.
MAGIC_SWITCH_ENABLED Should always be Y. A value of Nwould imply that the LOGOFF triggerhas been fired but the LOGONtrigger has been disabled.
READ_ONLY_VIOLATIONS The total number of read onlyviolations. It is calculated from boththe V$ view and the trace file itself.If there is a discrepancy betweenthe two counts, the higher one ischosen. See alsoTRACE_ACCESS_ERROR
TRACE_FILE_NAME Name of the database trace file.
TRACE_ACCESS_ERROR Indicates possible errors duringLOGOFF trigger processing. Thebase point for the error depends onwhether there is a discrepancybetween read only violations.
0 - no discrepancy100 - Trace file count > V$ count200 - V$ count > Trace file count
After subtracting the base point, anon-zero value indicates an error
9/24/12 Document
21/21https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
accessing the trace file.
1 - Invalid path2 - Invalid file name and/orpermissions3 - Unknown open error.4 - Read error.
FND_ADG_PACKAGE Boolean Internal support table.
FND_ADG_COMMIT_WAIT Number Internal support table.Currently unused.
Change Log
Date Description
Jun, 2012 Removed controlled release restriction for 9526837.
Apr, 2011 Changed ReportWriter to Oracle Reports.
Jan, 2011 Added notebox for controlled release of 9526837.
Nov, 2010 Doc updates from cert testing.
Aug, 2010 Formatting updates + patches.
Mar, 2010 Initial creation.
My Oracle Support Knowledge Document 1070491.1 by Oracle E-Business Suite DevelopmentCopyright © 2010, Oracle