Generování souboru výpisu jádra aplikace Oracle Concurrent Manager
Souběžní správci Oracle se skládají z mnoha spustitelných souborů a často jsme s nimi čelili různým problémům. Když spustitelný soubor skončí chybou segmentace nebo signálem 11, měl by být vytvořen základní soubor pro souběžného správce Oracle.
Pokud nezjistíte, že je vytvořen soubor jádra, pak může být ulimit nastaven na 0 pro základní soubory ve vašem systému.
Zkontrolujte to následovně:
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
Zkontrolujte výstup pro „velikost souboru jádra (bloky)“ Pokud je tato hodnota nastavena na 0 nebo nízkou hodnotu, lze ji resetovat, aby bylo možné v aktuální relaci vytvářet základní soubory libovolné velikosti pomocí syntaxe:
ulimit -c unlimited
Pokud má uživatel systému Unix toto nastavení v prostředí před spuštěním správce souběžných aplikací a posluchače aplikací,
bude prostředí souběžného zpracování schopno vytvářet základní soubory.
Spustitelný soubor, který končí chybou segmentace nebo signálem 11, by měl být znovu propojen se symboly ladění,
aby se získal užitečný soubor jádra. To se provádí předáním parametru link_debug=y do adrelink.sh.
Například:
adrelink.sh force=y link_debug=y "fnd FNDLIBR"
Jakmile je spustitelný soubor znovu propojen se symboly ladění a máte základní soubor, ujistěte se, že máte správný
soubor jádra pro spustitelný soubor, který se zhroutil, pomocí syntaxe:
file core core: ELF 32-bit MSB core file SPARC Version 1, from 'FNDLIBR'
Nyní použijte debugger k získání trasování zásobníku.
Pro Linux je debugger gdb:
gdb $FND_TOP/bin/FNDLIBR core
Pro Solaris je debugger dbx:
dbx $FND_TOP/bin/FNDLIBR core
Přidání ladícího kódu do spustitelného souboru aplikace, jak poskytuje podpora Oracle
Často je vidět, že výše vygenerovaný výpis jádra nestačí k vyřešení problému. Podpora Oracle tedy může poskytnout ladicí kód, aby se problém dále hlouběji ponořil
Zde jsou obecné kroky, jak přidat ladicí kódy do spustitelného souboru aplikace.
Ve skutečnosti jsou to kroky, po kterých dokonce následuje adpatch k nahrazení souborů lib ve spustitelném souboru produktu
Řekněme, že potřebujete propojit objektový soubor „invir.o“ se spustitelným souborem INVLIBR.
Než cokoliv uděláte, ujistěte se, že jsou souběžní správci vypnuti.
Nejprve se podívejme na verze:
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 $
Takže v současné době máme v našem systému verzi 115.6 a potřebujeme propojit 115.6.debug
Prvním krokem je záloha aktuální verze:
cd $INV_TOP/lib; cp invir.o invir.o.save
Zkopírujte v ladicí verzi:
cp /u00/to/debug/file/invir.o .
Proveďte zálohu souborů
cp libinv.a libinv.a.save
Nyní přidejte ladicí verzi do libinv.a (nezapomeňte na tento krok)
ar rv libinv.a invir.o
Nyní můžete znovu propojit INVLIBR:(můžete také použít admin)
adrelink.sh force=y "inv INVLIBR"
Kontrola verze nyní ukazuje:
adident Header $INV_TOP/bin/INVLIBR |grep invir.o $Header: invir.opp 115.6.debug 2001/04/11 21:19:07 aweisber ship $
Náš ladicí kód je připojen a připraven ke spuštění. Spusťte správce zálohy a ladicí věci by byly k dispozici. Jakmile bude problém reprodukován, můžeme ladění vypnout podle níže uvedeného postupu
Prvním krokem je zálohování aktuální verze a přesunutí starého kódu zpět
cd $INV_TOP/lib; cp invir.o invir.o.debug cp invir.o.save invir.o
Obnovte starý soubor .a
cp libinv.a.save libinv.a
Nyní můžete znovu propojit INVLIBR:(můžete také použít admin)
adrelink.sh force=y "inv INVLIBR"
Kontrola verze nyní ukazuje:
adident Header $INV_TOP/bin/INVLIBR |grep invir.o $Header: invir.opp 115.6 2001/04/11 21:19:07 aweisber ship $
Související články
Jak najít verzi komponent EBS R12
Oracle EBS 11i/R12/R12.1/R12.2
Oracle DBA:Hanganalyze, výpis stavu systému, v$wait_chains
Jak zapnout trasování SQL, událost 10046 v databázi Oracle a trcsess, nástroj tkprof