sql >> Databasteknik >  >> RDS >> Oracle

Oracle Concurrent Manager

Oracle Concurrent Manager är en viktig del i Oracle E-Business Suite-produkten. det hjälper till vid batchbearbetning av många saker.

Jag presenterar här några detaljer om det

Den består av flera delar. Förklara var och en av dessa i detalj .Det ger dig en glimt av hur en E-Business Suite Concurrent Manager-process fungerar

Innehållsförteckning

Typer av Oracle Concurrent Manager

Intern Concurrent Manager (ICM)

Internal Concurrent Manager (ICM) kan betraktas som "hjärnan" av samtidig bearbetning. Den ansvarar för följande funktionalitet:

-Startar alla andra processer som Konfliktlösningshanterare, standardhanterare
-Utför "kontrollförfrågningar" som skickats av administratören.
-Aktivera/Avaktivera/Avbryt Concurrent Manager
-Avsluta Concurrent Request
-Övervakar processer, startar om alla som misslyckades.
-Ställer in målantalet processer för varje tjänst baserat på det aktuella arbetsskiftet.

Starta ICM

-adcmctl.sh script
-TNS Apps Listener måste startas innan ICM startas

Stänger av ICM

-Att stänga av ICM kommer att stoppa alla andra tjänster som konfliktlösningshanterare, standardhanterare
– Normal avstängning signalerar att processer ska avslutas efter att de har slutfört sina nuvarande uppgifter.
– Avbryt kommer att avsluta tjänsteprocesser.
– ICM avslutas inte förrän alla andra processer har avslutats.
-Använd adcmctl.sh för att stänga av ICM.

Service Managers (FNDSM)

Service Managers skapas på mellannivånoderna i ett GSM-aktiverat system för att fungera som en agent för ICM. När ICM ser att den behöver en tjänstehanterare för att utföra någon funktion, som att starta en samtidig hanterarprocess, på en nod på mellannivå, kommer den att göra fjärrkontrollanrop till Apps-avlyssnaren på den noden för att starta tjänsthanteraren. När Service Manager har startats och initierats, kommunicerar ICM direkt till Service Manager via Remote Procedural Call (RPC), och ger den information för att hantera tjänsterna på den noden.

-Tjänsthanteraren skapas från APPS TNS Listener
– APPS TNS Listener måste startas på varje mellannivånod i systemet och startas av användaren som startar ICM (t.ex. applmgr)
- TNS Listener skapar tjänstehanteraren att köras som agent för ICM för den lokala noden
-Servicehanteraren startas av ICM vid behov när det behövs. Om inga hanteringsåtgärder behövs på en nod kommer en Service Manager inte att startas av ICM förrän det behövs. När ICM avslutar dess Service Managers avslutas också.
-Service Manager-miljön ställs in av APPSORA.env enligt definitionen i listener.ora
- Lister.ora och tnsnames.ora-filerna måste konfigureras korrekt för lyssnaren för att kunna skapa tjänstehanteraren och för att ICM ska kunna kontrollera status för tjänstehanteraren.

Interna monitorer (FNDIMON)

Interna övervakare används specifikt i parallell parallell bearbetning för att möjliggöra för intern samtidig hanterare att övergå till andra tillgängliga noder på mellannivå.

-Placera en intern övervakare på valfri nod där ICM kan starta i händelse av ett fel.
-Interna monitorer seedas på varje registrerad nod som standard.
-Om ICM går ner, kommer den interna monitorn försök att starta en ny ICM på den lokala noden.
-Om flera ICM startas förblir bara den första aktiv. De andra kommer graciöst att lämna.

Oracle Concurrent Managers(FNDLIBR,INVLIBR)

Concurrent Managers tillhandahåller asynkron jobbbearbetning genom att övervaka tabellen FND_CONCURRENT_REQUESTS i en kontinuerlig cykel. En samtidig chefs jobb är att utföra samtidiga förfrågningar som är i väntande/normal fas/status och som den är kvalificerad att köra enligt dess specialiseringsregler.

Samtidiga chefsprocesser
– Agera oberoende
– Välj endast förfrågningar som:(a) matchar chefens specialiseringsregler, (b) är väntande/normala, (c) har en begärd starttid

Beskrivning om viktiga Oracle Concurrent Manager-oracle-tabeller

FND_CONCURRENT_QUEUES
TARGET_NODE
-Används för att indikera var ytterligare processer ska startas
-Används av chefer för att avgöra om de ska stänga av sig själva för migrering
-Hanterare jämför parametervärde som skickas vid start med detta värde
-Används av användargränssnittet för att indikera var processer finns (inte helt korrekt i migreringsfallet)
-Tilldelat av ICM baserat på primära, sekundära inställningar

NODE_NAME
- Indikerar primär nod för PCP – riktad belastning
-Där processer ska startas om inte noden inte är online eller har fastställts vara otillgänglig
-Om ingen nod är angiven kommer ICM att tilldela mål nod som standard till NODE_NAME2
- Indikerar sekundär nod för PCP – riktad belastningsfel
-Endast tilldelad som TARGET_NODE om primär nod inte är tillgänglig

FND_CONCURRENT_PROCESSES
NODE_NAME
- Indikerar var hanterarprocessen körs
- Indikerar även var chefens filer finns
-Puleras med värde från uname() (fysiskt maskinnamn)
-Används av ICM vid avslutande av process
-Används vid visning av loggfil i användargränssnitt(UI)
-Används av Purge Program för att ta bort processloggfil
-Kan användas för beräkningar av arbetsbelastningsstatistik
-Kommer sannolikt att användas av RPM för att försöka hitta en lokal OPP
-Används på liknande sätt i 11i.X för att lokalisera Reports Server

FND_CONCURRENT_REQUESTS
LOGFILE_NODE_NAME, OUTFILE_NODE_NAME
-Ange var filer finns
-Används i användargränssnittet (UI) för filvisning
-Används av Purge Program för att radera filer
-Värde ifyllt genom mgr-process, baserat på sin egen nod

FND_NODES

NODE_NAME
- Indikerar nodnamn där DBC-filen finns.
-Adgendbc.sh-skriptet skapar DBC-fil.

SERVER_ID
-Kommer att användas för att autentisera anslutningar från noden.
-Uppdaterat av adgendbc.sh som anropar AdminAppServer API.

Samtidiga Manager-tabeller

FND_NODES: Innehåller all information om nodnivå

FND_CONCURRENT_PROCESSES : Innehåller all processinformation för samtidig chef
FND_CONCURRENT_REQUESTS : Innehåller en fullständig historik över alla samtidiga förfrågningar (både tidigare historik och de som är planerade att köras i framtiden).

FND_CONCURRENT_QUEUES :Innehåller informationen för alla samtidiga hanterare som skapats i systemet
FND_CONCURRENT_PROGRAMS :Innehåller informationen för alla samtidiga program som finns tillgängliga i systemet
FND_EXECUTABLES
FND_CP_SERVICES
FND_QUE_CONSIRRENT_QUE_CUSIRRENT_QUE_CUSIRRENT_QUE_CUSIRRENT_QUE_CUTABLES>FND_CONCURRENT_QUEUE_CONTENT
FND_CONCURRENT_PROGRAM_SERIAL
FND_CONCURRENT_TIME_PERIODS
FND_CONCURRENT_PROCESSORS

FNDSVCRG
Den körbara FNDSVCRG-filen triggas från kontrollskripten före och efter att ett skript startar eller stoppar tjänsten. FNDSVCRG kommer att ansluta till databasen för att verifiera konfigurationen av Seeded GSM-tjänsten. Om tjänsten i fråga inte är aktiverad för att hanteras under GSM, kommer FNDSVCRG-filen att göra ingenting och avslutas. Skriptet skulle sedan fortsätta att utföra sina normala start/stopp-åtgärder. Om tjänsten är aktiverad för GSM-hantering kommer den körbara FNDSVCRG-filen att uppdatera tjänstrelaterad information i databasen inklusive miljökontexten, den aktuella tjänstens loggfilplats och tjänstens nuvarande tillstånd

Concurrent Request Fas status Beskrivning

VÄNTA/Normal -Begäran väntar på nästa tillgängliga chef.
VÄNTAR/Väntar - Begäran om program att köra är inkompatibel med andra program som körs för närvarande.
VÄNTA/schemalägga -Begäran är schemalagd att starta vid en framtida tidpunkt eller ett framtida datum.
VÄNTAR/Väntar -En barnförfrågan väntar på att dess föräldraförfrågan ska markera den som redo att köras. Till exempel måste en begäran i en begäran som körs sekventiellt vänta på att en tidigare begäran slutförs.
RUNNING/Normal -Begäran körs normalt.
KÖR/Pausad - Föräldrabegäran pausas för att alla dess underordnade förfrågningar ska slutföras. Till exempel pausas en uppsättning förfrågningar för att alla förfrågningar i uppsättningen ska slutföras.
KÖR/ÅTERupptar -Alla förfrågningar som skickats in av samma överordnade begäran har körts. Den överordnade begäran återupptas.
KÖR/Avslutas -Begäran avslutas genom att välja knappen Avbryt begäran i fönstret Requests.
SLUTAD/Normal -Begäran har slutförts.
SLUTAD/FEL - Begäran kunde inte slutföras.
SLUTAD/Varning -Förfrågan kompletterad med varningar. Till exempel genereras en begäran framgångsrikt men kan inte skrivas ut.
SLUTAD/Avbruten - Väntande eller inaktiv förfrågan avbryts genom att välja knappen Avbryt begäran i fönstret Förfrågningar.
SLUTAD/Avslutad -Begäran avslutas genom att klicka på knappen Avbryt begäran i fönstret Requests.
INAKTIV/Inaktiverad -Program att köra begäran är inte aktiverad. Kontakta din systemadministratör.
INAKTIV/På vänt- Väntande begäran parkeras genom att välja knappen Spärrbegäran i fönstret Requests.
INAKTIV/Ingen chef -Ingen chef är definierad för att köra begäran. Kontrollera med din systemadministratör. Statusen Ingen chef ges också när alla chefer är låsta av ensamförfrågningar.

hur man startar concurrent manager i oracle apps r12

Starta Concurrent Manager i R12
Anslut till Application Tier-användare vanligtvis dess applmgr

cd $ADMIN_SCRIPTS_HOME
./adcmctl.sh start apps/<apps-pass>

hur man stoppar samtidig hanterare i Oracle Apps r12

Stoppa Concurrent Manager i R12
Anslut till Application Tier-användare vanligtvis dess applmgr

cd $ADMIN_SCRIPTS_HOME
./adcmctl.sh stop apps/<apps-pass>

hur man kontrollerar status samtidigt hanterare i oracle apps r12

För att kontrollera status för Concurrent Manager
Anslut till Application Tier-användare vanligtvis dess applmgr

cd $ADMIN_SRCIPTS_HOME
./adcmctl.sh status apps/<apps-pass>

Concurrent Manager Log-filplats i R12

Concurrent Manager, ICM och concurrent request genererar alla loggfilerna

A) Logfil för samtidig begäran – dokumenterar exekveringen av en viss förfrågan ( l.req )
B) Managerloggfil – dokumenterar prestandan för en samtidig chefsprocess. ( W.mgr )
C) Internal Manager Log File – dokumenterar prestandan för ICM.(std.mgr). Den här loggfilen visar parametrarna som används med kommandot 'adcmctl'.

om $APPLCSF är inställt

Loggfiler  finns i mappen  $APPLCSF/$APPLLOG.
Loggfiler kan också ses inifrån applikationerna från formuläret Visa samtidiga förfrågningar

R12.2  APPLCSF =$NE_BASE/inst//logs/appl/conc/log

R12.1 APPLCSF=$INST_TOP//logs/appl/conc/log

Om $APPLCSF inte är inställt

Loggfiler  finns i mappen  $PRODUCT_TOP/$APPLLOG.

På samma sätt för utdatafiler,

om $APPLCSF är inställt

R12.2 APPLCSF=$NE_BASE/inst//logs/appl/conc/

R12.1 APPLCSF=$INST_TOP//logs/appl/conc/

Concurrent Manager-felsökning

Hur kontrollerar du statusen för Oracles samtidiga hanterare från operativsystemet
–Linux-kommando:

$ ps -ef | grep LIB

- Observera att Internal Concurrent Manager kan ses i den här listan eftersom dess kommando är “FNDLIBR FND CPMGR …” medan de andra visar mer som “FNDLIBR FND Concurrent_Processor …”
-Unix-användar-id som visas i den första kolumnen i denna noteringen är avgörande:dessa samtidiga hanterarprocesser bör ägas av samma Unix-användar-id som äger applikationskoden ($APPL_TOP och dess underkataloger); den här användaren brukar kallas "applmgr"

Vart tar alla filer som genereras av Oracles samtidiga hanterare vägen?

-ICM-loggfilen hamnar i $FND_TOP/log-katalogen och matchar vanligtvis std.mgr.
-Arbetarnas loggfiler går in i $FND_TOP/log och matchar W.mgr
-The utloggnings-/utloggningsfiler för samtidiga förfrågningar hamnar under produktens översta katalog som är associerad med produkten som kör förfrågan:utloggnings-/utloggningsfiler för AR-rapporter går till exempel under $AR_TOP.
-Loggfilerna för samtidiga förfrågningar hamnar i $ APPLLOG underkatalog under lämplig produkt toppkatalog och matcha l
.req
-Ut-filerna för samtidiga förfrågningar går in i underkatalogen $APPLOUT
-Om APPLCSF är inställt bör den peka på den fullständiga sökvägen till en katalog som har underkatalogerna $APPLLOG och $APPLOUT. Denna $APPLCSF-katalog kommer att användas istället för de olika produktkatalogerna för att skriva
alla logga/ut-filerna till.


De vanligaste problemen med samtidiga hanterare orsakas av filskyddsproblem på Unix/linux-nivå.

-Startar du de samtidiga hanterarna som applmgr?
-Kan applmgr göra följande för att skapa en fil i
$FND_TOP/$APPLLOG-katalogen?
$FND_TOP/$APPLOUT-katalogen?
Unix:$ tryck på $FND_TOP/$APPLLOG/a
-Om detta misslyckas, vem äger katalogen?
Unix:$ ls -ld $FND_TOP/$APPLLOG
-Är den här katalogen en symbolisk länk? i så fall, vilka är skydden på katalogen som den pekar till?
-Blir du slut på diskutrymme på den här partitionen? i-noder?
Unix:$ df -k
Unix (på vissa system) för att kontrollera i-noder:$ df -i
-Är APPLCSF inställd?
-I så fall , kan applmgr göra detta?
Unix:$ touch $APPLCSF/$APPLLOG/a
-Kolla $APPLOUT (vanligtvis "out") kataloger precis som loggkataloger.

Om ett PL/SQL-samtidigt program inte kan skriva till en extern fil kommer du att få ett felmeddelande som liknar:

MSG-00102: Error Message :ORA-20100: File o0000071.tmp creation for FND_FILE failed.
You will find more information on the cause of the error in request log.
ORA-06512: at "APPS.FND_FILE", line 378
ORA-06512: at "APPS.FND_FILE", line 473
ORA-06512: at "APPS.AP_XYZ", line 192
REP-1419: 'beforereport': PL/SQL program aborted.

OBS:Applikationer producerar också temporära PL/SQL-utdatafiler som används vid samtidig bearbetning. Dessa filer skrivs till en plats på databasservernoden som anges av miljöinställningen APPLPTMP. APPLPTMP-katalogen måste vara samma katalog som anges av parametern utl_file_dir i din databasinitieringsfil.
.
Snabbinstallation ställer både APPLPTMP och utl_file_dir-parametern till samma standardkatalog. Eftersom de temporära filerna som placeras i den här katalogen kan innehålla sammanhangskänslig information, bör det vara en säker katalog på databasservernoden med läs- och skrivåtkomst för databasserverns ägare. I ett system med flera noder behöver den katalog som definieras av APPLPTMP inte finnas på applikationsnivåservrarna. Under en uppgradering med AutoUpgrade måste du ange parametervärdet utl_file_dir för miljöinställningen APPLPTMP.

För att isolera var problemet finns, kontrollera följande:

1) Se till att namnet på filen är giltigt (filnamnet ska inte innehålla tecken som "^")

2) Se till att APPLPTMP är inställt på en giltig katalog och att BÅDE applmgr-användaren och databasanvändaren har läs- och skrivbehörigheter för den katalogen (normalt kan den ställas in på samma katalog som APPLTMP)

3) Se till att filen inte avslutas i katalogen som pekas av APPLPTMP

4) Se till att katalogen som pekas av APPLPTMP är den första posten i utl_file_dir. Kontrollera också att alla poster i utl_file_dir är giltiga och att applmgr har läs-/skrivbehörighet.

Om du använder en spfil, verifiera rätt syntax för att ställa in utl_file_dir:

Ex.

ALTER SYSTEM SET UTL_FILE_DIR='directory1','directory2' scope=spfile;

5) Om du fortfarande har problem, kontrollera om du kan skriva en fil direkt med FND_FILE, vilket är paketet som används av applikationen. Från SQLPLUS, ansluten som appanvändare, kör:

SQL> exec FND_FILE.PUT_LINE(FND_FILE.LOG, 'THIS IS A TEST');

Detta bör dumpa en fil på APPLPTMP.

Om det här testet fungerar skulle det indikera att FND_FILE är OK och att problemet möjligen ligger i programmet.

Du kanske vill lämna bara en post på utl_file_dir för detta test.

6) Om du fortfarande har problem, kontrollera om du kan skriva en fil med UTL_FILE, som används av FND_FILE.

Kör PL/SQL nedan och byt till den första posten på utl_file_dir (du kanske vill lämna bara en post på utl_file_dir för detta test).

set serveroutput on
DECLARE file_location VARCHAR2(256) := '';
file_name VARCHAR2(256) := 'utlfile1.lst';
file_text VARCHAR2(256) := 'THIS IS A TEST';
file_id UTL_FILE.file_type;
BEGIN
file_id := UTL_FILE.fopen(file_Location,file_name, 'W');
UTL_FILE.put_line(file_id, file_text);
UTL_FILE.fclose(file_id);
EXCEPTION
WHEN UTL_FILE.INVALID_PATH
THEN
dbms_output.put_line('Invalid path ' || SQLERRM);
WHEN OTHERS
THEN
dbms_output.put_line('Others '|| SQLCODE || ' ' || SQLERRM);
END;
/

Detta program bör dumpa en fil i den begärda katalogen. Om testet misslyckas ligger problemet förmodligen på databassidan.

SAMTIDIGT BEHANDLINGSSERVERSKRIPT


afcmstat.sql Visar alla definierade förvaltare, deras maximala kapacitet, pids och deras status.
afimchk.sql Visar status för aktuella ICM- och PMON-metoder, ICM:s loggfil och avgör om den samtidiga administratörsövervakaren körs.
afcmcreq.sql Visar den samtidiga hanteraren och namnet på dess loggfil som behandlade en begäran.
afrqwait.sql Visar de förfrågningar som är väntande, hållna och schemalagda.
afrqstat.sql Visar en sammanfattning av samtidigt körningstid för begäran och status sedan ett visst datum.
afqpmrid.sql Visar operativsystemets process-id för FNDLIBR-processen baserat på ett samtidig begäran-id. Process-id:t kan sedan användas med verktyget ORADEBUG.
afimlock.sql Visar process-id, terminal och process-id som kan orsaka lås som ICM och CRM väntar på att få. Du bör köra det här skriptet om det är långa förseningar när du skickar jobb, eller om du misstänker att ICM är i en gridlock med en annan orakelprocess.

Hur man gör samtidig Manager Tuning

Justera Internal Concurrent Manager (ICM)

ICM-prestandan påverkas av de tre viktiga Oracle-parametrarna PMON-cykel, köstorlek och vilotid.

PMON-cykel — Detta är antalet sömncykler som ICM väntar mellan det att den kontrollerar för samtidiga chefsfel, som är standard till 20. Du bör ändra PMON-cykeln till ett lägre antal än 20 om dina samtidiga chefer har problem med onormala uppsägningar.

Köstorlek — Köstorleken är antalet PMON-cykler som ICM väntar mellan att leta efter inaktiverade eller nya samtidiga hanterare. Standardinställningen för köstorlek på 1 PMON-cykel ska användas.

Sleep Time — Parametern Sleep time indikerar de sekunder som ICM ska vänta mellan att leta efter förfrågningar som väntar på att köras. Standardinställningstiden är 60, men du kan sänka det här siffran om du ser att du har många förfrågningar som väntar (Väntar/Normal). Men att reducera detta antal till ett mycket lågt värde orsakar många överdrivet CPU-utnyttjande.

Justera den individuella Concurrent Manager-cachestorleken

Samtidiga chefsprestanda kan också förbättras genom att öka chefens cachestorlek till att vara minst dubbelt så många målprocesser. Cachestorleken anger antalet förfrågningar som kommer att cachelagras varje gång den samtidiga hanteraren läser från tabellen FND_CONCURRENT_REQUESTS. Att öka cachestorleken kommer att öka kapaciteten för cheferna genom att försöka undvika sömntid.

Rensa samtidiga förfrågningar
Det kan ses att när posterna i FND_CONCURRENT_PROCESSES och FND_CONCURRENT_REQUESTS överstiger 50K, kan du börja uppleva allvarliga prestandaproblem i dina Oracle-applikationer. För att undvika dessa problem bör vi regelbundet rensa data i dessa tabeller med hjälp av en specifik begäran som heter "Rensa samtidiga förfrågningar och/eller chefsdata". Den bör schemaläggas att köras regelbundet. Denna begäran kan konfigureras för att rensa förfrågningsdata från FND-tabellerna samt loggfiler och utdatafiler på ackumulering på disk.

Analysera Oracle Apps Dictionary-tabeller för hög prestanda

Samtidiga Manager-tabeller kan bli fragmenterade med tiden, så det rekommenderas att bygga om dem i regelbundet underhåll
Det är också mycket viktigt att köra begäran. Samla tabellstatistik
Några av de viktiga tabellerna är
FND_CONCURRENT_PROCESSES
FND_CONCURRENT_PROGRAMS
FND_CONCURRENT_REQUESTS,
FND_CONCURRENT_QUEUES.

Jag hoppas att du gillar det här inlägget på Oracle Concurrent Manager .

Läs även
Concurrent Manager-frågor:Den här artikeln innehåller fantastiska topp 30 Concurrent Manager-frågor för felsökning av Concurrent Manager, upplösning, körtid, detaljer
ORA-01427:Kolla in det här för lösningen på ORA-01427:enkelrad subquery returnerar mer än ett radfel, hur man löser det när det händer med Concurrent Manager
begäran inställd i oracle-appar:Request set ger möjlighet att skicka in samma uppsättning förfrågningar regelbundet med en enda transaktion.
Concurrent Manager Intervjufrågor ::Kolla in 24 Concurrent Manager Intervjufrågor som hjälper dig i EBS-intervju. Det här består av alla slags frågor om standardhanterare, servicechef
Parallell Concurrent Processing :Vad är PCP, hur man ställer in den, hur man definierar intern monitor
Oracle Concurrent Manager :How an E-Business Suite Concurrent Manager Process Works,Oracle Concurrent Manager,Vad är intern monitor,Vad är servicehanterare och felsökning
https://docs.oracle.com/cd/E18727_01/doc.121/e12893/T174296T174302.htm

Rekommenderade kurser

Följande är några av de rekommenderade kurserna du kan köpa om du vill ta ett steg längre

Nedan ges länkarna till några av kurserna


Oracle DBA 11g/12c – Databasadministration för Junior DBA :Den här kursen är bra för personer som börjar som Junior DBA eller strävar efter att bli Oracle DBA. Detta ger en god förståelse för säkerhetskopiering och återställning och allmänna administrationsuppgifter
Oracle Database:Oracle 12C R2 RAC Administration :Den här kursen täcker installation, administration av Oracle RAC. En bra kurs för Oracle DBA som vill uppgradera sina kunskaper för Oracle RAC
Oracle Data Guard:Database Administration for Oracle 12C R2 :Den här kursen täcker installation, administration av Oracle Dataguard. En bra kurs för Oracle DBA som vill uppgradera sina kunskaper för Oracle Dataguard


  1. Implementera kommentarer och likes i databasen

  2. SQL:Välj Top 3 Records + Sum of Quantity

  3. Hur man konverterar decimal till hexadecimal med TO_CHAR() i Oracle

  4. HEXTORAW() Funktion i Oracle