Kernedumpfilgenerering af Oracle Concurrent Manager
Oracle concurrent managers består af mange eksekverbare, og vi stødte ofte på forskellige problemer med det. Når en eksekverbar ender med en segmenteringsfejl eller signal 11, bør der oprettes en kernefil til oracle concurrent manager.
Hvis du ikke opdager, at der er oprettet en kernefil, kan ulimit være sat til 0 for kernefiler på dit system.
Tjek dette som følger:
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
Kontroller outputtet for "kernefilstørrelse (blokke)". Hvis dette er indstillet til 0 eller en lav værdi, kan det nulstilles for at tillade, at kernefiler af enhver størrelse oprettes i den aktuelle session ved hjælp af syntaksen:
ulimit -c unlimited
Hvis Unix-brugeren har dette indstillet i miljøet, før du starter den samtidige manager og Apps-lytteren,
så vil det samtidige behandlingsmiljø være i stand til at oprette kernefiler.
Den eksekverbare fil, der ender med segmenteringsfejl eller signal 11, bør genlinkes med fejlfindingssymboler for at
få en nyttig kernefil. Dette gøres ved at sende parameteren link_debug=y til adrelink.sh.
For eksempel:
adrelink.sh force=y link_debug=y "fnd FNDLIBR"
Når den eksekverbare fil er genlinket med fejlfindingssymboler, og du har en kernefil, skal du sikre dig, at du har den rigtige
kernefil til den eksekverbare, der gik ned ved hjælp af syntaksen:
file core core: ELF 32-bit MSB core file SPARC Version 1, from 'FNDLIBR'
Brug nu debuggeren til at få en stak-sporing.
For Linux er debuggeren gdb:
gdb $FND_TOP/bin/FNDLIBR core
For Solaris er debuggeren dbx:
dbx $FND_TOP/bin/FNDLIBR core
Tilføjelse af fejlretningskode til den eksekverbare applikation som leveret af Oracle Support
Det ses ofte, at kernedumpet, der er genereret ovenfor, ikke er nok til at fejlfinde problemet. Så Oracle Support kan give en fejlretningskode for at dykke problemet yderligere i dybden
Her er de generelle trin til, hvordan du tilføjer fejlretningskoder i applikationens eksekverbare.
Faktisk er disse trin endda fulgt af adpatch for at erstatte lib-filer i produktets eksekverbare
Lad os sige, at du skal linke objektfilen "invir.o" til den eksekverbare INVLIBR.
Før du gør noget, skal du sørge for, at de samtidige ledere er lukket ned.
Lad os først tjekke versionerne:
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 i øjeblikket version 115.6 på vores system og skal linke i 115.6.debug
Det første skridt er at sikkerhedskopiere den nuværende version:
cd $INV_TOP/lib; cp invir.o invir.o.save
Kopiér i fejlretningsversionen:
cp /u00/to/debug/file/invir.o .
Tag backup af filer
cp libinv.a libinv.a.save
Tilføj nu fejlretningsversionen til libinv.a (Glem ikke dette trin)
ar rv libinv.a invir.o
Nu kan du genlink INVLIBR:(du kan også bruge adadmin)
adrelink.sh force=y "inv INVLIBR"
Når du tjekker versionen nu, vises:
adident Header $INV_TOP/bin/INVLIBR |grep invir.o $Header: invir.opp 115.6.debug 2001/04/11 21:19:07 aweisber ship $
Vores fejlretningskode er linket ind og klar til at blive kørt. Start managerne sikkerhedskopier, og fejlretningsting ville være tilgængeligt. Når problemet er gengivet, kan vi deaktivere fejlfindingen ved at følge nedenstående procedure
Det første trin er at sikkerhedskopiere den aktuelle version og flytte den gamle kode tilbage
cd $INV_TOP/lib; cp invir.o invir.o.debug cp invir.o.save invir.o
Gendan den gamle .a-fil
cp libinv.a.save libinv.a
Nu kan du genlink INVLIBR:(du kan også bruge adadmin)
adrelink.sh force=y "inv INVLIBR"
Når du tjekker versionen nu, vises:
adident Header $INV_TOP/bin/INVLIBR |grep invir.o $Header: invir.opp 115.6 2001/04/11 21:19:07 aweisber ship $
Relaterede artikler
Sådan finder du EBS R12-komponentversion
Oracle EBS 11i/R12/R12.1/R12.2
Oracle DBA:Hanganalyze, system state dump, v$wait_chains
Sådan aktiveres SQL-sporingen, 10046-hændelsen i Oracle-databasen og trcsess, tkprof-værktøjet