Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

File dump inti dan menambahkan kode debug dalam aplikasi yang dapat dieksekusi untuk Oracle Apps

Pembuatan file dump inti dari Oracle Concurrent Manager

Manajer konkuren Oracle terdiri dari banyak executable dan kami sering menghadapi berbagai masalah dengannya. Ketika executable berakhir dengan kesalahan segmentasi atau sinyal 11, file inti untuk oracle konkuren manager  harus dibuat.

Jika Anda tidak menemukan bahwa file inti telah dibuat, maka ulimit dapat disetel ke 0 untuk file inti di sistem Anda.
Periksa ini sebagai berikut:
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

Periksa output untuk "ukuran file inti (blok)" Jika ini disetel ke 0 atau nilai rendah, ini dapat diatur ulang untuk memungkinkan file inti dari berbagai ukuran dibuat di sesi saat ini menggunakan sintaks:

ulimit -c unlimited

Jika pengguna Unix memiliki set ini di lingkungan sebelum memulai pengelola bersamaan, dan pendengar Aplikasi,
maka lingkungan pemrosesan bersamaan akan dapat membuat file inti.

Eksekusi yang diakhiri dengan kesalahan segmentasi atau sinyal 11 harus ditautkan ulang dengan simbol debug dalam
untuk mendapatkan file inti yang berguna. Ini dilakukan dengan meneruskan parameter link_debug=y ke adrelink.sh.
Misalnya:

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

Setelah file yang dapat dieksekusi ditautkan kembali dengan simbol debug dan Anda memiliki file inti, pastikan Anda memiliki
file inti yang tepat untuk file yang dapat dieksekusi yang mogok menggunakan sintaks:

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

Sekarang gunakan debugger untuk mendapatkan pelacakan tumpukan.
Untuk Linux, debuggernya adalah gdb:

gdb $FND_TOP/bin/FNDLIBR core

Untuk Solaris, debuggernya adalah dbx:

dbx $FND_TOP/bin/FNDLIBR core

Menambahkan kode Debug ke Aplikasi yang Dapat Dieksekusi seperti yang disediakan oleh Dukungan Oracle

Sering terlihat bahwa dump inti yang dihasilkan di atas tidak cukup untuk memecahkan masalah. Jadi Dukungan Oracle mungkin memberikan kode debug untuk lebih mendalami masalah tersebut

Berikut adalah langkah-langkah Umum tentang Cara menambahkan kode debug di aplikasi yang dapat dieksekusi.

Sebenarnya ini adalah langkah-langkah yang bahkan diikuti oleh adpatch untuk mengganti file lib di produk yang dapat dieksekusi

Katakanlah Anda perlu menautkan file objek “invir.o” ke dalam INVLIBR yang dapat dieksekusi.

Sebelum melakukan apa pun, pastikan manajer bersamaan dimatikan.

Pertama mari kita periksa versinya:

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 $

Jadi saat ini kami memiliki versi 115.6 di sistem kami, dan perlu menautkan di 115.6.debug
Langkah pertama adalah mencadangkan versi saat ini:

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

Salin dalam versi debug:

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

Ambil cadangan file

cp libinv.a libinv.a.save

Sekarang tambahkan versi debug ke libinv.a (Jangan lupa langkah ini)

ar rv libinv.a invir.o

Sekarang Anda dapat menautkan ulang INVLIBR:(Anda juga dapat menggunakan admin)

adrelink.sh force=y "inv INVLIBR"

Memeriksa versi sekarang menunjukkan:

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

Kode debug kami ditautkan dan siap dijalankan. Mulai cadangan manajer, dan hal-hal debug akan tersedia. Setelah masalah direproduksi, kita dapat mematikan debugging dengan mengikuti prosedur di bawah ini

Langkah pertama adalah mencadangkan versi saat ini dan memindahkan kembali kode lama

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

Pulihkan file .a

yang lama
cp libinv.a.save libinv.a

Sekarang Anda dapat menautkan ulang INVLIBR:(Anda juga dapat menggunakan admin)

adrelink.sh force=y "inv INVLIBR"

Memeriksa versi sekarang menunjukkan:

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

Artikel Terkait

Bagaimana menemukan versi komponen EBS R12

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

Oracle DBA:Hanganalyze , dump status sistem, v$wait_chains

Cara mengaktifkan SQL trace, 10046 event di database Oracle dan trcsess, tkprof utility


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle Data Mining (ODM) – Instalasi &Pengaturan

  2. Membuktikan kesetaraan kueri SQL

  3. AUTONOMOUS_TRANSACTION

  4. Bagaimana cara saya terhubung ke Oracle Database di R?

  5. MODIFY COLUMN di Oracle - Bagaimana cara memeriksa apakah suatu kolom dapat dibatalkan sebelum disetel ke dapat dibatalkan?