NaturalOracle DataGaurd tutorial Series Coming Soon!! Natural
For Any queries, please mail us at support@funoracleapps.com

Concurrent Manager Flow and Working

No comments
In this post we are going to see how concurrent mangers flow works


  • Internal Concurrent Manager (ICM) requests the Service Manager (FNDSM) to start up the Concurrent Manager process. For the Standard Manager processes, the binary executable FNDLIBR is started. For the Inventory Manager, it’s  INVLIBR. Other mangers will have their process as well.



  • The manager process connects to the database(DB Listener should be up and running ) and reads the settings (e.g profile options, sleep seconds, cache size).



  • The process saves information about itself in FND_CONCURRENT_PROCESSES table (os process id, database name, instance name, DB session identifiers, logfile path and name, and others). It also updates FND_CONCURRENT_QUEUES by increasing the value of RUNNING_PROCESSES.



  • The concurrent manager process collects information from the database to build the SQL for querying the FND_CONCURRENT_REQUESTS table. The query will be used every time the manager process looks for scheduled concurrent requests.  This is the only time the manager process reads the Specialization Rules (which programs it is allowed to execute) from the database. Keep in mind that if the specialization rules are changed while the managers are running, they are bounced without warning as that is the only way to update the specialization rules cached by the manager process.



  • The SQL (from above step) is executed to collect information about pending concurrent requests from FND_CONCURRENT_REQUESTS table.



  • The results are checked to verify if any requests are pending for execution.



  • If no requests are pending for execution, the manager process sleeps and then goes to next step. The “Sleep Seconds” parameter of the  “Work Shifts” settings of the concurrent manager determines how long the process sleeps before FND_CONCURRENT_REQUESTS table is queried again. This is the only time the “sleep seconds” setting is used.



  • If there is at least one concurrent request pending for execution, the concurrent manager process caches rowids for the FND_CONCURRENT_REQUESTS rows of pending concurrent requests. The “Cache Size” setting of the concurrent manager specifies how many rowids to cache.



  • The cached list of rowids is checked to verify if there are any unprocessed concurrent requests (rows in FND_CONCURRENT_REQUESTS table) left. If none are left – the processing returns to above step and the FND_CONCURRENT_REQUESTS table is queried again



  • The next unprocessed rowid is picked from the process cache, and the processing starts.



  • Concurrent manager process executes a SELECT-for-UPDATE statement to lock the STATUS_CODE in FND_CONCURRENT_PROCESSES for the request it’s about to process. This is the mechanism to ensure that each concurrent request is executed only once and only by one manager process even if many processes are running simultaneously. The SELECT-for-UPDATE statement can complete with “ORA-00054: resource busy and acquire with NOWAIT specified” or “0 rows updated” if another manager process has started processing the request already.



  • If the STATUS_CODE of the request was locked successfully, the concurrent manager executes the concurrent request. The processing moves to step  where the cached list of concurrent requests (rowids) is being checked again.
































































No comments :

Post a Comment

CPADMIN Utility for Managing Concurrent Processing

No comments
CPADMIN command line utility for managing the Concurrent Processing in Oracle Apps R12.2.6 version and above.


It is an ADADMIN-style utility that can be used for multiple tasks like below:
  • View Concurrent Manager status
  • Clean CP tables
  • Set Concurrent Manager diagnostics
  • Start, stop, or verify an individual Concurrent Manager
  • Rebuild Concurrent Manager views
  • Move request files
  • Analyze requests
  • Configure request log/out file directory locations
Running the cpadmin utility
Complete the steps below to run the command-line utility and its maintenance tasks.

1. Set the application Run environment.
2. From any directory, start cpadmin with the below command:
   $ cpadmin.sh
   The utility starts and prompts you for the APPS password (required).
3. Respond to prompts. Supply the information requested by cpadmin prompts. Prompts unique to an option are described with the option. When you complete the prompts, the Main Menu appears.
4.Choose one of the tasks listed above.
5. Exit the cpadmin utility.


It has the following menu options:
Manager Status
This option is used to view the status of concurrent managers and services.
Use this option to display running managers (with or without process IDs) or display all managers.
The same status information is shown in Administer Concurrent Managers form and OAM Concurrent Managers page.

Clean CP Tables
Use this option to clean up the concurrent processing tables. This utility replaces cmclean.sql. Use this option when the Internal Concurrent Manager (ICM) fails to start due to corrupted/conflicted tables. Note the following actions when choosing this option:
Managers must be stopped first (the utility will verify this).
Clean up inconsistencies in manager tables; remove corruption.
Reset manager states for clean start-up.
Clean and reset Advanced Queue tables for the Output Post-Processor and FNDSM Service Manager.
Reset request conflicts for the Conflict Resolution Manager (CRM).
Identify and clean orphaned requests.
This option is supported by Oracle for use on client systems.
Important: DO NOT USE the cmclean.sql script.

Set Manager Diagnostics
Turn diagnostics on or off for individual managers with this option. You can use this option to turn diagnostics on/off for specific managers without bouncing all services.
This option is available for:
ICM
CRM
Output Post-Processor
Request Processing Managers
Transaction Managers
Each option will display the current diagnostic status (ON or OFF) of the running managers/services and allow you to change the status.

Manager Control
Use this option to send a request such as start, stop, or verify to an individual manager.
Use to send a control request to a manager or service.
This option does the following:
Displays current status of all managers and processes.
Once a manager or service is chosen, offers valid control options for that specific choice.
Valid options for managers: activate, deactivate, verify, restart, abort, shut down.
Valid options for services also include: suspend and resume. Any service can be programmed to respond appropriately to each option; but if one is not, then the service will not respond.

Rebuild Manager Views
Use when Manager Views must be rebuilt.
This option rebuilds the FND_CONCURRENT_WORKER_REQUEST and FND_CONCURRENT_CRM_REQUESTS views with the following steps:
Managers must be stopped first. The utility verifies that these are stopped.
Rebuilds FND_CONCURRENT_WORKER_REQUESTS.
Rebuilds FND_CONCURRENT_CRM_REQUESTS.
Running this option is the same action as running FNDCPBWV.

Move Request Files
Change request log and output file locations with this option.
Use to update the concurrent processing tables for changing the following values for request LOG file, OUT file, or BOTH:
Individual requests: fully qualified file name or node name
Range of requests: directory name or node name
Range of requests can be selected by minimum/maximum date or minimum/maximum request_id
Important: The cpadmin utility changes only the concurrent processing database table values to support movement. The files must be manually moved by an administrator.

Analyze Request
Use this option to analyze a concurrent request.
Use when analyzing a request for any reason. This is non-destructive.
Managers need not be shut down for this option.
This option does the following:
Checks the manager's status.
Analyzes the request's status.
Provides a detailed report on concurrent program.
Gives a detailed report on request's current status.


Reference:

R12 E-Business Suite Concurrent Processing Script Cpadmin.sh Command Line Utility Which Consolidates Existing CP Tools Into A Single Menu-Based Shell Script (Doc ID 2319585.1)

No comments :

Post a Comment

DataGaurd Useful Commands

No comments
Start redo apply in foreground:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;

Stop redo apply process on the Standby database (stop MRP):

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Start real-time redo apply:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

Start redo apply in background:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
or
SQL> RECOVER MANAGED STANDBY DATABASE DISCONNECT;

Check redo apply  and Media recovery service status:

SQL> SELECT PROCESS,STATUS, THREAD#,SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY ;

If managed standby recovery is not running or not started with real-time apply, restart managed recovery with real-time apply enabled:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

Gather Data Guard configuration information(standby)

SQL> SELECT DATABASE_ROLE,OPEN_MODE, PROTECTION_MODE FROM V$DATABASE 

DATABASE_ROLE OPEN_MODE PROTECTION_MODE
---------------- -------------------- --------------------
PHYSICAL STANDBY MOUNTED MAXIMUM PERFORMANCE

SQL> SELECT RECOVERY_MODE FROM V$ARCHIVE_DEST_STATUS WHERE RECOVERY_MODE!='IDLE';

RECOVERY_MODE
-----------------------
MANAGED REAL TIME APPLY


Calculate the Redo bytes per second

SQL> SELECT SUM (BLOCKS * BLOCK_SIZE) / 1024 / 1024 / 60 / 60 / 30 REDO_MB_PER_SEC
 FROM GV$ARCHIVED_LOG
 WHERE FIRST_TIME BETWEEN TO_DATE ('01.05.2016', 'DD.MM.YYYY')
 AND TO_DATE ('01.06.2016', 'DD.MM.YYYY')
check status of Data Guard synchronization(standby):

SQL> SELECT NAME, VALUE FROM V$DATAGUARD_STATS;

NAME VALUE
--------------------- -------------------------------
transport lag          +00 00:00:00
apply lag              +00 00:00:00
apply finish time      +00 00:00:00.000
estimated startup time 32

Verify there is no log file gap between the primary and the standby database:

SQL> SELECT STATUS, GAP_STATUS FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID = 3;

STATUS GAP_STATUS
--------- ------------------------
VALID NO GAP

Find Sync between Primary and STANDBY(Archive Difference)

SQL> SELECT ARCH.THREAD# "Thread", ARCH.SEQUENCE# "Last Sequence Received",
APPL.SEQUENCE# "Last Sequence Applied", (ARCH.SEQUENCE# - APPL.SEQUENCE#) "Difference"
FROM
(SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE (THREAD#,FIRST_TIME ) IN
(SELECT THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#)) ARCH,
(SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE (THREAD#,FIRST_TIME ) IN
(SELECT THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL
WHERE
ARCH.THREAD# = APPL.THREAD#;

Verify Managed Recovery is running on the standby :

SQL> SELECT PROCESS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE 'MRP%'; 

PROCESS
---------
MRP0

Information about the protection mode, the protection level, the role of the database, and switchover status:

SQL> SELECT DATABASE_ROLE, DB_UNIQUE_NAME INSTANCE, OPEN_MODE, PROTECTION_MODE, PROTECTION_LEVEL, SWITCHOVER_STATUS FROM V$DATABASE;

DATABASE_ROLE     INSTANCE    OPEN_MODE    PROTECTION_MODE     PROTECTION_LEVEL     SWITCHOVER_STATUS
---------------- ---------- ------------ -------------------- -------------------- -------------------- --------------------
PRIMARY           TESTCDB    READ WRITE    MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE   STANDBY
On the standby database, query the V$ARCHIVED_LOG view identify existing files in the archived redo log.

SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
Or
SQL> SELECT THREAD#, MAX(SEQUENCE#) AS "LAST_APPLIED_LOG" FROM V$LOG_HISTORY GROUP BY THREAD#;
On the standby database, query the V$ARCHIVED_LOG view verify the archived redo log files were applied.

SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

Determine which log files were not received by the standby site.

SQL> SELECT LOCAL.THREAD#, LOCAL.SEQUENCE#
FROM (SELECT THREAD#, SEQUENCE#
FROM V$ARCHIVED_LOG
WHERE DEST_ID = 1) LOCAL
WHERE LOCAL.SEQUENCE# NOT IN (SELECT SEQUENCE#
FROM V$ARCHIVED_LOG
WHERE DEST_ID = 2 AND THREAD# = LOCAL.THREAD#);

Check archive log apply  on primary database:

SQL> SET LINESIZE 150
SET PAGESIZE 999
COL NAME FORMAT A60
COL DEST_TYPE FORMAT A10
COL ARCHIVED FORMAT A10
COL APPLIED FORMAT A10

SELECT SEQUENCE#,
NAME,
DEST_ID ,
CASE WHEN STANDBY_DEST = 'YES' THEN 'Standby' ELSE 'Local' END
AS DEST_TYPE ,
ARCHIVED ,
APPLIED
FROM V$ARCHIVED_LOG
WHERE SEQUENCE# > (SELECT MAX (SEQUENCE#)
FROM V$ARCHIVED_LOG
WHERE STANDBY_DEST = 'YES' AND APPLIED = 'YES')
ORDER BY SEQUENCE# , DEST_ID ;


 SEQUENCE#  NAME                                                          DEST_ID  DEST_TYPE  ARCHIVED APPLIED
---------- -------------------------------------------------------------- -------  ---------- -------- --------
 23748      +FRA/TEST/ARCHIVELOG/2016_07_09/thread_2_seq_23748.10041.9   1      Local        YES       NO
 23748      +DATA/TEST/ARCHIVELOG/2016_07_09/thread_2_seq_23748.10062.   2      Local        YES       NO
 23748      TESTSTB                                                         3      Standby      YES       NO

3 rows selected.

No comments :

Post a Comment

Adding or Maintaining New Language in R12

No comments

Adding a new NLS language in EBS


Example New Language: Simplified Chinese

Adding languages after the implementation is complete may require a change in character set, unless UTF8 or AL32UTF8 was chosen

Languages in the same language category can be supported in a single instance using either Unicode (UTF8 or AL32UTF8) or the character set listed with the category. Languages from different language categories in a single instance can only be supported using Unicode. For example, since German is in the Western European language category and Polish is in the Eastern European category, only Unicode can support both German and Polish. However, English data is supported in any language category, because English characters are included in all of the other character sets.

Language is translated in Forms (F), Reports (R), and UIX (U).

1.      Check the Character set whether new language you are enabling is supporing or not? Refer Note Note 393861.1



SQL> select value from nls_database_parameters where parameter='NLS_CHARACTERSET';

VALUE

--------------------------------------------------------------------------------

UTF8



2.      Activate new language from License Manager from Oracle Application Manager


Deactivating a language is not supported. Even if you are not using them, once activated, you must maintain all languages that are active in an NLS system


3.  Check from the tables, new language is activated or not?

SQL> select NLS_LANGUAGE from FND_LANGUAGES where INSTALLED_FLAG in ('B','I');

NLS_LANGUAGE

------------------------------

AMERICAN
SIMPLIFIED CHINESE

2 rows selected.

4. Run Maintain Multi-lingual Tables from Adadmin

Select Option 4.
Select option 3

5. Run Maintain Snapshot information from Adadmin


Select Option 4


6. Run the Translation Synchronization Patch utility (adgennls.pl) using below command

 perl $AD_TOP/bin/adgennls.pl

 The manifest generated from the tool is located at : $APPL_TOP/admin/$TWO_TASK/out/adgennls.txt

7. After you generate your manifest, you can go to https://updates.oracle.com/TransSync 

(use your My Oracle Support username and password).


   Follow the instructions on the screen to upload the manifest file. A Translation synchronization patch will be generated specifically based    on your manifest for each of your active language. The patch will synchronize the language file versions and American English file versions    in your Applications instance.


8. Install the Release 12 NLS Help for the new language (optional)
9. Generate message files from adadmin



Known issues
-------------

+ Performance Issue with Maintain Multilingual Tables EGONLINS.sql And INVNLINS.sql Taking Long Time (Doc ID 1391050.1)
+ Performance Issues Using Maintain Multi-Lingual Table, INVNLINS.SQL (Doc ID 981868.1)
+ Bug 12922572 : WHEN RUNNING MAINTAIN MULTILINGUAL TABLES, EGONLINS AND INVNLINS TAKE MORE 24 HR

References:
===========

How To Add A New Or Maintain A Language In R12 (Doc ID 1511692.1)

NLS Frequently Asked Questions (Doc ID 399789.1)
Globalization Guide for Oracle Applications Release 12 (Doc ID 393861.1)
Oracle Applications NLS Release Notes, Release 12.1 (Doc ID 788053.1)
Oracle E-Business Suite Maintenance Procedures. See the Adding and Maintaining NLS Languages section in Chapter 1
Requesting Translation Synchronization Patches (Doc ID 252422.1)



No comments :

Post a Comment

Oracle Application Products and Short Names

No comments
Please use attached document for Application products and its shortnames.

No comments :

Post a Comment