Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

कोर डंप फ़ाइल और Oracle ऐप्स के लिए निष्पादन योग्य एप्लिकेशन में डिबग कोड जोड़ना

Oracle Concurrent Manager का कोर डंप फ़ाइल निर्माण

Oracle समवर्ती प्रबंधकों में कई निष्पादन योग्य होते हैं और हमें अक्सर इसके साथ विभिन्न मुद्दों का सामना करना पड़ता है। जब एक निष्पादन योग्य खंड विभाजन दोष या सिग्नल 11 के साथ समाप्त होता है, तो oracle समवर्ती प्रबंधक के लिए एक कोर फ़ाइल बनाई जानी चाहिए।

यदि आप नहीं पाते हैं कि कोर फ़ाइल बनाई गई है, तो आपके सिस्टम पर कोर फ़ाइलों के लिए ulimit को 0 पर सेट किया जा सकता है।
इसे निम्नानुसार जांचें:
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

"मुख्य फ़ाइल आकार (ब्लॉक)" के लिए आउटपुट की जाँच करें यदि यह 0 या कम मान पर सेट है, तो इसे सिंटैक्स का उपयोग करके वर्तमान सत्र में किसी भी आकार की कोर फ़ाइलों को बनाने की अनुमति देने के लिए रीसेट किया जा सकता है:

ulimit -c unlimited

यदि यूनिक्स उपयोगकर्ता के पास समवर्ती प्रबंधक और ऐप्स श्रोता को प्रारंभ करने से पहले परिवेश में यह सेट है,
तो समवर्ती संसाधन परिवेश कोर फ़ाइलें बनाने में सक्षम होगा।

एक्ज़ीक्यूटेबल जो सेगमेंटेशन फॉल्ट या सिग्नल 11 में समाप्त हो रहा है, उसे एक उपयोगी कोर फ़ाइल प्राप्त करने के क्रम में डिबग प्रतीकों के साथ फिर से लिंक किया जाना चाहिए। यह adrelink.sh को link_debug=y पैरामीटर पास करके किया जाता है।
उदाहरण के लिए:

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

एक बार जब निष्पादन योग्य डीबग प्रतीकों के साथ फिर से जुड़ जाता है और आपके पास एक कोर फ़ाइल होती है, तो सुनिश्चित करें कि आपके पास निष्पादन योग्य के लिए सही
कोर फ़ाइल है जो सिंटैक्स का उपयोग करके क्रैश हो गई है:

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

अब स्टैक ट्रेस प्राप्त करने के लिए डीबगर का उपयोग करें।
लिनक्स के लिए डीबगर gdb है:

gdb $FND_TOP/bin/FNDLIBR core

सोलारिस के लिए डिबगर dbx है:

dbx $FND_TOP/bin/FNDLIBR core

ओरेकल सपोर्ट द्वारा प्रदान किए गए निष्पादन योग्य एप्लिकेशन में डीबग कोड जोड़ना

अक्सर यह देखा जाता है कि ऊपर उत्पन्न कोर डंप समस्या को दूर करने के लिए पर्याप्त नहीं है। इसलिए Oracle समर्थन समस्या को और गहरा करने के लिए एक डिबग कोड प्रदान कर सकता है

एप्लिकेशन निष्पादन योग्य में डीबग कोड कैसे जोड़ें, इस पर सामान्य चरण यहां दिए गए हैं।

वास्तव में ये ऐसे चरण हैं जिनका पालन  उत्पाद निष्पादन योग्य में lib फ़ाइलों को बदलने के लिए adpatch द्वारा किया जाता है

मान लें कि आपको ऑब्जेक्ट फ़ाइल "invir.o" को INVLIBR निष्पादन योग्य में लिंक करने की आवश्यकता है।

कुछ भी करने से पहले सुनिश्चित करें कि समवर्ती प्रबंधकों को बंद कर दिया गया है।

पहले संस्करणों की जाँच करें:

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 $

इसलिए वर्तमान में हमारे पास हमारे सिस्टम पर संस्करण 115.6 है, और 115.6.debug में लिंक करने की आवश्यकता है
पहला चरण वर्तमान संस्करण का बैकअप लेना है:

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

डीबग संस्करण में कॉपी करें:

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

फाइलों का बैकअप लें

cp libinv.a libinv.a.save

अब डिबग संस्करण को libinv.a में जोड़ें (इस चरण को न भूलें)

ar rv libinv.a invir.o

अब आप INVLIBR को फिर से लिंक कर सकते हैं:(आप एडमिन का भी इस्तेमाल कर सकते हैं)

adrelink.sh force=y "inv INVLIBR"

अब संस्करण की जाँच से पता चलता है:

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

हमारा डिबग कोड जुड़ा हुआ है और चलाने के लिए तैयार है। प्रबंधकों को बैक अप प्रारंभ करें, और डिबगिंग सामग्री उपलब्ध होगी। एक बार जब समस्या पुन:उत्पन्न हो जाती है, तो हम नीचे दी गई प्रक्रिया का पालन करके डिबगिंग को बंद कर सकते हैं

पहला कदम वर्तमान संस्करण का बैकअप लेना और पुराने कोड को वापस ले जाना है

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

पुरानी .a फ़ाइल को पुनर्स्थापित करें

cp libinv.a.save libinv.a

अब आप INVLIBR को फिर से लिंक कर सकते हैं:(आप एडमिन का भी इस्तेमाल कर सकते हैं)

adrelink.sh force=y "inv INVLIBR"

अब संस्करण की जाँच से पता चलता है:

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

संबंधित लेख

EBS R12 घटक संस्करण कैसे खोजें

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

Oracle DBA:Hanganalyze, सिस्टम स्टेट डंप,v$wait_chains

SQL ट्रेस को कैसे चालू करें, Oracle डेटाबेस में 10046 ईवेंट और tkprof उपयोगिता, tkprof उपयोगिता


  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 में केवल गैर-अल्फ़ान्यूमेरिक वर्ण वाली पंक्तियों को वापस करने के 2 तरीके

  2. वृद्धि पंक्ति संख्या जब Oracle में फ़ील्ड का मान बदलता है

  3. Oracle SQL*Plus का उपयोग करके CSV फ़ाइल में कैसे लिखें?

  4. एसक्यूएल कॉलम उपनाम को पहचान नहीं रहा है जहां खंड

  5. Oracle में ABS () फ़ंक्शन