Professional Documents
Culture Documents
Document
Using Active Data Guard Reporting with Oracle E-Business Suite Release 12.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 business scenarios, uptime requirements, hardware capability, and availability requirements. This document describes how to configure 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 Application tier Database tier Primary System Standby System oracle CONTEXT_NAME Meaning Machines (nodes) running Forms, Web, and other services (servers). Sometimes called middle tier. Machines (nodes) running the Oracle E-Business Suite database. Primary Oracle E-Business Suite system Oracle E-Business Suite system running as a data guard standby to the primary system, open for read only access. User account that owns the database file system (database ORACLE_HOME and files). The CONTEXT_NAME variable specifies the name of the Applications context that is used by AutoConfig. The default is <SID >_ <hostname >. Full path to the Applications context file on the application tier or database tier. The default locations are as follows. Application tier context file: <APPL_TOP >/admin/ <CONTEXT_NAME >.xml Database tier context file: <RDBMS ORACLE_HOME >/appsutil/ <CONTEXT_NAME >.xml Oracle E-Business Suite database user password. 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. Do not type the angle brackets. On UNIX or Linux, the backslash character can be entered to indicate continuation of the command line on the next screen line.
CONTEXT_FILE
This document is divided into the following sections: Section 1: Section 2: Section 3: Section 4: Overview Concurrent Manager Reporting Configuration Managing ADG Support
1/21
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
9/24/12
Document
Section 5: Managing Simulated Standby Section 6: Managing Concurrent Programs Section 7: Database Triggers Section 8: Understanding ADG Process Flow Section 9: Maintenance and Housekeeping Section 10: Understanding READ ONLY Violations Section 11: Approved Reports Appendix A: Example Configuration Appendix B: Opening a Physical Standby Read Only Appendix C: Example ADG Concurrent Manager Appendix D: Creating and Using Database Services Appendix E: ADG Reporting Tables
Section 1: Overview
An Active Data Guard [ADG] database is a data guard physical standby database opened for read access. This document assumes that you have a data guard physical standby database configured for read access. To set up physical 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.
9/24/12
Document
1.5 Security
The only new security issue is the requirement to secure the SQL net traffic between the standby and the primary. As per usual database security practice the traffic between the two servers should be encrypted using standard SSL - see <Document 376700.1>.
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
3/21
9/24/12
Document
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 READ ONLY. See Appendix B for the steps to open a data guard database read only.
9/24/12
Document
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 the REMOTE code path for compilation.
create_db_link_if_undefined Boolean
standby_number
number
C_CONNECT_STANDBY_TO_PRIMARY was discussed in 3.4.5 as the RPC system cannot be enabled until this connection has been registered. Before a connection can be used it must be validated. [ Not that C_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 the database and middle tier. The TNS alias requirements are discussed below. It is recommended to create an <IFILE>
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128 5/21
9/24/12
Document
and copy the contents to the respective tiers <TNS_ADMIN> directory. Required on Required on Database Applications Tier (Primary Tier & ADG) Yes No Yes
Connection Type
C_CONNECT_STANDBY_TO_PRIMARY C_CONNECT_PRIMARY_TO_STANDBY
An alias that connects to the primary database via a dedicated service. It cannot be the same alias as C_CONNECT_TO_SIMULATED_STANDBY <STANDBY_TO_PRIMARY>. See Section 5 for further details on Simulated Standby.
Yes
Yes
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 is unavailable, the request will be routed based on existing rules/shifts defined for the program.
9/24/12
Document
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.
This API can only be called when ADG support has been disabled - see Section 4.1
9/24/12
Document
The process of using simulated standby is as follows: Register a Simulated Standby Connection Create a database service to identify a simulation connection. Set simulation options Enable database logon/off triggers - see Section 7. Use the simulated standby connect string for the concurrent program or use redirection. Run the concurrent program.
Option
Type
Description
enable_simulated_standby
Boolean
Enables/disables simulation mode. To capture read-only violations, database triggers must also be TRUE enabled - see Section 7. If a report can be run in simulation mode, then this option will automatically direct to the simulation connection. To identify that a connection is for simulation, a dedicated database service needs to be created and then registered. FALSE
enable_auto_simulation
Boolean
simulated_standby_service
varchar2
A database service can be set at the init.ora level, via Grid infrastructure or using the DBMS_SERVICE package. See Appendix D for an example of creating and using a database service. During logoff processing, do not report violations unless above threshold. A directory object for the standard RDBMS trace directory. This directory object must provide READ access to the diagnostic trace directory - i.e. the directory where SQL trace files are created.
NULL
simulation_error_threshold
Number
trace_directory_obj
varchar2
NULL
This API can only be called when ADG support has been disabled - see Section 4.1
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
8/21
9/24/12
Document
Description
has_run_on_simulated_standby Boolean Set to TRUE to mark as run as simulated standby. run_on_standby no_standby_failures Boolean Set to TRUE to mark as runnable on standby. Number Set the number of standby failures. This is set automatically so the main use is to reset the value.
max_standby_failures
Set the maximum of standby failures. Run_On_Standby Number is disabled when no_standby_failures > max_standby_failures Number Set the number of simulated standby failures. This is set automatically so the main use is to reset the value.
no_simulated_stdby_failures
max_simulated_stdby_failures
Set the maximum number of simulated standby failures. Run_On_Standby is disabled when Number no_simulated_stdby_failures > max_simulated_stdby_failures. Program level option to always redirect valid reports to standby regardless of the state of the concurrent managers. Has no effect unless the control option "enable_redirect_if_valid" is TRUE. If the report can be run on standby, then automatically redirect to the first available ADG database, ignoring any
always_redirect_if_valid
Boolean
TRUE
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
9/21
9/24/12
Document
use_automatic_redirection
Boolean
primary 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. declare cursor 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; /
9/24/12
Document
9/24/12
Document
Additional prerequisites: System wide automatic redirection enabled - Section 4.2 Program level automatic redirection enabled - Section 6 For 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 having been 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 program Must have been successfully run in simulation mode. It is possible to set this state from the API - see Section 6. Must have been marked as runnable on standby. It is possible to set this state from the API - see Section 6. 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 ERROR trigger will update the number of concurrent program standby errors. If the number of standby errors exceed the program level maximum, programs will be marked as no longer runnable on standby.
To reinstate ADG support after it has been removed: 1. 2. 3. 4. 5. Connect to SQLPLUS as the <APPS> user. execute fnd_adg_utility.switch_rpc_system_on; execute fnd_adg_utility.compile_rpc_dependents; execute fnd_adg_utility.enable_database_triggers; execute fnd_adg_utility.enable_adg_support;
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
12/21
9/24/12
Document
Trace file Each entry is tagged with "*** READ-ONLY VIOLATION BY MODULE ..."
The violation count is recorded in the session level statistic, 'read-only violation count'. 11.2.0.2+ e.g. to query the current sessions violations
select a.value from v$mystat a, v$statname b where 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 following underscore 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 the following 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 the buffer. Default is 100. Note that these additional reporting features are not currently used by the simulation implementation.
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128 13/21
9/24/12
Document
If both simulation and database triggers have been enabled, then it is simply a matter of connecting via the simulation service to enable READ ONLY violation reporting.
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
9/24/12
Document
Tax Exempt Customer Report US Sales Tax Report Commitment Balance Report Cash Requirement Report Sales Journal by GL Account Report AR Reconciliation Report Account Analysis - (180 Char) Agreement Activity Report Audit History Report Cancelled Orders Reason Detail Report Cancelled Orders Report Comprehensive Order Detail Report Credit Check Processor Credit Order Detail Report Credit Order Discrepancy Report Credit Order Summary Report Defaulting Rules Listing Report Export Compliance Report to Government Export Compliance Screening Failure Report Internal Order and Purchasing Requisition Discrepancy Report Lines on Credit Check Hold Report Order Discount Detail Report Order Discount Summary Report Order/Invoice Detail Report Order/Invoice Summary Report Orders Summary Report Orders by Item Report Orders on Credit Check Hold Report Outstanding Holds Report Payment Receipt Processing Constraints Listing Report Returns by Reason Report Sales Order Acknowledgement
ZXXSTTEC ZXXSTR RAXCBR APXCRRCR RAXGLR ARXRECON GLACTANL2 OEXOEASR OEXAUDHR OEXOEOCR OEXOEOCS OEXOECOD OEXAUCRC OEXOEORD OEXCRDIS OEXOEORS OEXDERUL OEXITMGV OEXITMSF OEXIODIS OEXOECCL OEXPRPRD OEXPRPRS OEXOEIOD OEXOEIOS OEXOEOSR OEXOEITR OEXOECCH OEXOHOHS OEXPMTRC OEXOEPCL OEXOEORR OEXOEACK
E-Business Tax E-Business Tax Receivables Payables Receivables Receivables General Ledger Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management Order Management
15/21
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
9/24/12
Document
Sales Order Workflow Status Report Sales Order and Purchase Order Discrepancy Report Salesperson Order Summary Report Transaction Types Listing Report Unbooked Orders Detail Report Unbooked Orders Report Workflow Assignments Report Discrete Job Pick List Report WIP Account Distribution Report Cycle count listing Discrete Job Shortage Report Discrete Job Value Report - Standard Costing Shipping Transaction Summary Report Subinventory quantities report Prepayments Status Report Overtaken Vacation and Holiday
OEXOEWFR OEXPODIS OEXOESOS OEXORDTP OEXOEUBD OEXOEUBK OEXWFASG WIPDJPCK WIPUTACD INVARCLI WIPDJORQ WIPRDJVR CSTRSTSR INVIRSIQ APXINPSR HXT015A
Order Management Order Management Order Management Order Management Order Management Order Management Order Management Work In Progress Work In Progress Inventory Work In Progress Work In Progress Bills of Material Inventory Payables Time and Labor
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
16/21
9/24/12
Document
rmcenu e la p eeuefdaguiiycoecen xct n_d_tlt.ln_la; rmeeuefdaguiiycenal e xct n_d_tlt.la_l; rmCenali a atraiet coecen Ntnral ue.I wl rmv eeyhn, e la_l s n lentv o ln_la. o omly sd t il eoe vrtig rmicuigRCpcae adAGcnurn pormdt. e nldn P akgs n D ocret rga aa rmeeuefdaguiiyrsn_opl_ietv;- Ol rqie i cenali ue. e xct n_d_tlt.eyccmiedrcie - ny eurd f la_l s sd eeuefdaguiiypeaefrrcsse; xct n_d_tlt.rpr_o_p_ytm bgn ei fdaguiiyrgse_oncin n_d_tlt.eitrcneto ( fdaguiiyCCNETSADYT_RMR, n_d_tlt._ONC_TNB_OPIAY 'D_OPIAYU.RCECM, AGT_RMR.KOAL.O' 'ULC, PBI' 'D' AG ) ; ed n; / eeuefdaguiiysic_p_ytmo; xct n_d_tlt.wthrcsse_n eeuefdaguiiycmiercdpnet; xct n_d_tlt.opl_p_eedns bgn ei fdaguiiyrgse_oncin n_d_tlt.eitrcneto ( fdaguiiyCCNETPIAYT_TNB, n_d_tlt._ONC_RMR_OSADY 'D_OSADYU.RCECM, AGT_TNB.KOAL.O' 'ULC, PBI' 'D_OSADY, AGT_TNB' fle as, 1 ) ; fdaguiiyrgse_oncin n_d_tlt.eitrcneto ( fdaguiiyCCNETT_IUAE_TNB, n_d_tlt._ONC_OSMLTDSADY 'D_OSMLTDSADYU.RCECM, AGT_IUAE_TNB.KOAL.O' 'ULC, PBI' 'D_IUAE' AGSMLTD ) ; ed n; / rmEapeueo otos e xml s f pin bgn ei fdaguiiystsmltdsadyotos n_d_tlt.e_iuae_tnb_pin ( peal_iuae_tnb = tu, _nbesmltdsady > re peal_uosmlto = fle _nbeat_iuain > as,
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128 17/21
9/24/12
Document
psmltdsadysrie= 'D_IUAE' _iuae_tnb_evc > AGSMLTD, ptaedrcoyoj= 'D_RMR_RC_I' _rc_ietr_b > AGPIAYTAEDR, psmlto_ro_hehl = 4 _iuainerrtrsod > ) ;
fdaguiiystcnrlotos n_d_tlt.e_oto_pin ( psadyerrtrsod= 6 _tnb_ro_hehl > , pdbgrc= 1 _eu_p > ) ; ed n; / rmrgse sadyC cas e eitr tnb M ls bgn ei fdaguiiyrgse_tnb_mcas n_d_tlt.eitrsadyc_ls (1 , 0 - seiyrqie api , - pcf eurd p d 458- seiyrqie casi 49 - pcf eurd ls d ) ; ed n; /
9/24/12
Document
9/24/12
Document
Table Name
Type
Description Contains one row and stores all control information, including connections, state, control options and simulation options. The mapping is one to one with corresponding procedure arguments except for RPC state. The rows map one to one with FND_CONCURRENT_PROGRAM and contains all program control information . The column mapping is one to one with the corresponding arguments in fnd_adg_utility.manage_concurrent_program. Records READ ONLY violations from simulation sessions and contains one row for each simulation session. The table is populated via the LOGOFF trigger. If the LOGOFF trigger is disabled, no information will be recorded. Column LOG_SEQ ORACLE_PROCESS_ID OS_PROCESS_ID ORACLE_SESSION_ID REQUEST_ID Description Internal sequence As per FND_CONCURRENT_REQUESTS As per FND_CONCURRENT_REQUESTS As per FND_CONCURRENT_REQUESTS As per FND_CONCURRENT_REQUESTS. Set to -1 if trigger [ simulation ]has been run outside of a concurrent job.
FND_ADG_CONTROL
Number
FND_ADG_CONCURRENT_PROGRAM
Number
MAGIC_SWITCH_ENABLED Should always be Y. A value of N would imply that the LOGOFF trigger has been fired but the LOGON trigger has been disabled. READ_ONLY_VIOLATIONS The total number of read only violations. It is calculated from both the V$ view and the trace file itself. If there is a discrepancy between the two counts, the higher one is chosen. See also TRACE_ACCESS_ERROR TRACE_FILE_NAME TRACE_ACCESS_ERROR Name of the database trace file. Indicates possible errors during LOGOFF trigger processing. The base point for the error depends on whether there is a discrepancy between read only violations. 0 - no discrepancy 100 - Trace file count > V$ count 200 - V$ count > Trace file count After subtracting the base point, a non-zero value indicates an error
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128 20/21
FND_ADG_SIMULATED_STNDBY_TRC
Boolean
9/24/12
Document
accessing the trace file. 1 - Invalid path 2 - Invalid file name and/or permissions 3 - Unknown open error. 4 - Read error. FND_ADG_PACKAGE FND_ADG_COMMIT_WAIT Boolean Number Internal support table. Internal support table.Currently unused.
Change Log
Date Jun, 2012 Description Removed controlled release restriction for 9526837.
Apr, 2011
Jan, 2011
Nov, 2010
Aug, 2010
Mar, 2010
Initial creation.
My Oracle Support Knowledge Document 1070491.1 by Oracle E-Business Suite Development Copyright 2010, Oracle
https://support.oracle.com/epmos/faces/ui/km/DocumentDisplay.jspx?_adf.ctrl-state=uwfh2uefp_128
21/21