sql >> データベース >  >> RDS >> Oracle

OracleAppsのアプリケーション実行可能ファイルにコアダンプファイルとデバッグコードを追加する

    OracleConcurrentManagerのコアダンプファイルの生成

    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
    

    Unixユーザーが並行マネージャーとAppsリスナーを起動する前にこの設定を環境に設定している場合、
    並行処理環境でコアファイルを作成できるようになります。

    セグメンテーション違反またはシグナル11で終了する実行可能ファイルは、有用なコアファイルを取得するために、
    デバッグシンボルで再リンクする必要があります。これは、link_debug =yパラメーターをadrelink.shに渡すことによって行われます。
    例:

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

    実行可能ファイルがデバッグシンボルで再リンクされ、コアファイルができたら、次の構文を使用してクラッシュした実行可能ファイルに適した
    コアファイルがあることを確認してください。

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

    次に、デバッガーを使用してスタックトレースを取得します。
    Linuxの場合、デバッガーはgdbです:

    gdb $FND_TOP/bin/FNDLIBR core
    

    Solarisの場合、デバッガーはdbx:

    dbx $FND_TOP/bin/FNDLIBR core
    

    Oracleサポートが提供するアプリケーション実行可能ファイルへのデバッグコードの追加

    上記で生成されたコアダンプでは、問題をトラブルシューティングするには不十分であることがよくあります。そのため、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を再リンクできます:( adadminも使用できます)

    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を再リンクできます:( adadminも使用できます)

    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 $

    関連記事

    EBSR12コンポーネントのバージョンを見つける方法

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

    Oracle DBA:Hanganalyze、システム状態ダンプ、v $ wait_chains

    SQLトレース、Oracleデータベースおよびtrcsess、tkprofユーティリティの10046イベントをオンにする方法


    1. MySQLまたはMariaDBサーバーの本番環境への準備-パート1-

    2. SQLの別の列の各値の最も一般的な値を取得します

    3. インメモリOLTPのDMLステートメントのテスト

    4. BrentOzarとPinalDaveによるSQLServerのパフォーマンスに関するアドバイス