sql >> Databasteknik >  >> RDS >> Oracle

Kärndumpfil och lägga till felsökningskoder i programmets körbara program för Oracle Apps

Generering av kärndumpfiler av Oracle Concurrent Manager

Oracle concurrent managers består av många körbara filer och vi stötte ofta på olika problem med det. När en körbar fil slutar med ett segmenteringsfel eller signal 11, bör en kärnfil för Oracle Concurrent Manager skapas.

Om du inte upptäcker att en kärnfil har skapats kan ulimit ställas in på 0 för kärnfiler på ditt system.
Kontrollera detta enligt följande:
ulimit -a

ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) unlimited
coredump(blocks) unlimited
nofiles(descriptors) 4096
vmemory(kbytes) unlimited

Kontrollera utdata för "kärnfilstorlek (block)" Om detta är inställt på 0 eller ett lågt värde kan det återställas för att tillåta att kärnfiler av valfri storlek skapas i den aktuella sessionen med hjälp av syntaxen:

ulimit -c unlimited

Om Unix-användare har denna inställning i miljön innan den samtidiga hanteraren och Apps-lyssnaren startas,
kan den samtidiga bearbetningsmiljön skapa kärnfiler.

Den körbara filen som slutar med segmenteringsfel eller signal 11 bör länkas om med felsökningssymboler för att
få en användbar kärnfil. Detta görs genom att skicka parametern link_debug=y till adrelink.sh.
Till exempel:

adrelink.sh force=y link_debug=y "fnd FNDLIBR"

När den körbara filen är återlänkad med felsökningssymboler och du har en kärnfil, se till att du har rätt
kärnfil för den körbara filen som kraschade med hjälp av syntaxen:

file core
core: ELF 32-bit MSB core file SPARC Version 1, from 'FNDLIBR'

Använd nu felsökaren för att få en stackspårning.
För Linux är felsökaren gdb:

gdb $FND_TOP/bin/FNDLIBR core

För Solaris är debuggern dbx:

dbx $FND_TOP/bin/FNDLIBR core

Lägga till felsökningskod till programmets körbara fil enligt Oracle Support

Man ser ofta att kärndumpen som genereras ovan inte räcker för att felsöka problemet. Så Oracle Support kan tillhandahålla en felsökningskod för att fördjupa problemet ytterligare

Här är de allmänna stegen om hur du lägger till felsökningskoder i programmets körbara program.

I själva verket är dessa steg till och med följt av adpatch för att ersätta lib-filer i produktens körbara fil

Låt oss säga att du måste länka objektfilen "invir.o" till den körbara filen INVLIBR.

Innan du gör något, se till att de samtidiga cheferna stängs av.

Låt oss först kontrollera versionerna:

adident Header $INV_TOP/lib/invir.o
$Header: invir.opp 115.6 2001/04/11 16:14:32 pkm ship $

adident Header /u00/to/debug/file/invir.o
$Header: invir.opp 115.6.debug 2001/04/11 21:19:07 aeisber ship $

adident Header $INV_TOP/bin/INVLIBR |grep invir
$Header: invir.op 115.6 2001/04/11 16:14:32 pkm ship $

Så vi har för närvarande version 115.6 på vårt system och behöver länka i 115.6.debug
Första steget är att säkerhetskopiera den nuvarande versionen:

cd $INV_TOP/lib; cp invir.o invir.o.save

Kopiera i felsökningsversionen:

cp /u00/to/debug/file/invir.o .

Ta säkerhetskopia av filer

cp libinv.a libinv.a.save

Lägg nu till felsökningsversionen till libinv.a (glöm inte detta steg)

ar rv libinv.a invir.o

Nu kan du länka om INVLIBR:(du kan också använda adadmin)

adrelink.sh force=y "inv INVLIBR"

När du kontrollerar versionen nu visas:

adident Header $INV_TOP/bin/INVLIBR |grep invir.o
$Header: invir.opp 115.6.debug 2001/04/11 21:19:07 aweisber ship $

Vår felsökningskod är länkad och redo att köras. Starta säkerhetskopiering av cheferna, och felsökningsgrejer skulle vara tillgängliga. När problemet har reproducerats kan vi stänga av felsökningen genom att följa proceduren nedan

Det första steget är att säkerhetskopiera den aktuella versionen och flytta tillbaka den gamla koden

cd $INV_TOP/lib; 
cp invir.o invir.o.debug
cp invir.o.save invir.o

Återställ den gamla .a-filen

cp libinv.a.save libinv.a

Nu kan du länka om INVLIBR:(du kan också använda adadmin)

adrelink.sh force=y "inv INVLIBR"

När du kontrollerar versionen nu visas:

adident Header $INV_TOP/bin/INVLIBR |grep invir.o
$Header: invir.opp 115.6 2001/04/11 21:19:07 aweisber ship $

Relaterade artiklar

Hur man hittar EBS R12-komponentversion

Oracle EBS 11i/R12/R12.1/R12.2

Oracle DBA:Hanganalyze, systemstatusdump, v$wait_chains

Hur man aktiverar SQL-spårningen, 10046-händelsen i Oracle-databasen och trcsess, tkprof-verktyget


  1. MySQL COUNT() – Få antalet rader som ska returneras av en fråga

  2. Distribuera en Django-app till AWS Elastic Beanstalk

  3. importera redan skapad SQLite-databas (xamarin)

  4. Hur man returnerar element från en JSON-array i MariaDB