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

素晴らしい24人のコンカレントマネージャーの面接の質問

    これは、コンカレントマネージャーの作業スキルをテストするためにほとんどのインタビューで尋ねられる24のコンカレントマネージャーインタビューの質問です

    質問1: 同時管理者の種類は何ですか?

    回答 コンカレントマネージャーにはいくつかの種類があります。重要なもの:
    内部マネージャー
    標準マネージャー。
    競合解決マネージャー
    内部モニター
    サービスマネージャー
    トランザクションマネージャー
    カスタムマネージャーの定義

    以下のリンクで詳細を読む

    Oracle Concurrent Manager

    質問2: 内部並行マネージャーとは何ですか?

    回答 :他のすべての同時マネージャーを制御する責任があります。その主なタスクは、他のすべての同時マネージャーが稼働していることを確認することです。サービスマネージャーへのリクエストを通じて他のマネージャーを制御します。また、すべてのノードのサービスマネージャーを開始、停止、および再起動します。

    質問3: 競合解決マネージャー(CRM)とは何ですか?

    回答: プログラムの非互換性を解決し、キュー内の要求を実行中の要求と並行して実行できるかどうかを確認します。プログラムが単独で実行されていると識別された場合、同時管理者が同じ競合ドメイン内の他のプログラムを開始することを防ぎます。

    質問4: スタンダードマネージャーとは何ですか?

    回答 :StandardManagerはマスターコンカレントマネージャーです。常に実行されており、同時リクエストの処理を処理できます。プログラムに他のマネージャーが割り当てられていない場合、そのプログラムは標準マネージャーによって選択されます。

    質問5:
    同時リクエストが送信されると、舞台裏で何が起こりましたか?

    回答

    (1)ユーザーがコンカレント要求を送信すると、テーブルFND_CONCURRENT_REQUESTSが要求の詳細で自動的に更新されます。テーブルは、同時リクエストのスケジュールに関する情報で更新されます。これは、すぐにスケジュールされているか、固定時間にスケジュールされているかを示します。

    (2要求に互換性がない/制約が定義されている場合、実行する要求時間が来ると、そのステータスは保留中/スタンバイに設定されます。これで、競合解決マネージャーが要求を処理し、非互換性を見つけて、ステータスを保留に設定します。非互換性が解消されると正常になります。

    (3)非互換性がない場合、実行する要求時間が到着すると、ステータスは保留中/通常に設定されます

    (4)すべての標準同時マネージャーおよび特殊マネージャーは、FND_CONCURRENT_REQUESTSテーブルを継続的にポーリングします。コンカレントマネージャーの役​​割は、保留中/通常フェーズ/ステータスにあり、特殊化ルールに従って実行する資格があるコンカレント要求を実行することです。

    (5)同時マネージャープロセス
    –独立して行動する
    –次のリクエストのみを選択します:(a)マネージャーの専門化ルールに一致する、(b)保留中/通常、(c)要求された開始時刻<=sysdate

    (6)リクエストが処理されると、FND_CONCURRENT_REQUESTSテーブルがステータスで更新されます。

    質問6: ビジネスユーザーは、コンカレントリクエストの完了に時間がかかるというインシデントを作成します。それをデバッグするためのあなたのアプローチは何ですか?

    回答

    1)最初に同時リクエストのステータスを見つけます。後でスケジュールされるか、保留中/スタンバイモードになるか、すべての並行マネージャーが他の要求の実行に専念する可能性があります。保留中/スタンバイ中の場合は、実行中の互換性のないプログラムを見つけて、ユーザーに通知する必要があります。多くの場合、ユーザーはリクエストを後で実行するようにスケジュールします。

    2)同時リクエストのデータベースsidを見つけて、ロックを待機していることを確認します。ジョブを完了するために、ブロックしているOracleセッションを強制終了します

    3)request-idでトレースを実行して、実行中のSQLを見つけ、その説明プランを生成できます。 sidが特定のSQLでスタックしているかどうかを確認できます。特定のSQLの場合は、関連するテーブルの統計を確認することをお勧めします。そのクエリの調整の機会を探すことができます

    4)リクエストが実行されるパラメータを確認できます。 (たとえば、ユーザーがリクエストで出力を印刷していないと言った場合、考えられることを確認すると、印刷部数=0でリクエストをスケジュールしていることがわかりました。)

    質問7: 内部の並行マネージャーが突然死んだ場合はどうなりますか?直後にすべてのマネージャーも殺されましたか?

    回答

    すべての標準マネージャーが要求を実行および実行し続けるわけではありません。内部マネージャーが停止した場合、以下のキュー制御要求は実行されません

    a)他のすべてのプロセスを開始します。
    b)管理者から送信された「制御要求」を実行します。
    c)並行マネージャーをアクティブ化/非アクティブ化/中止します
    d)並行要求を終了します
    e )プロセスを監視し、失敗したプロセスを再開します。
    f)現在の作業シフトに基づいて、各サービスのプロセスの目標数を設定します。

    質問8: 内部マネージャーは、自分自身のリクエストを実行またはスケジュールしますか?

    回答

    いいえ、内部マネージャーはリクエストを実行またはスケジュールしません。リクエストのスケジュールや、特定のリクエストを実行するマネージャーの決定とは何の関係もありません。その機能は、「キュー制御」要求を実行することだけです

    a)他のすべてのプロセスを開始します。
    b)管理者から送信された「制御要求」を実行します。
    c)並行マネージャーをアクティブ化/非アクティブ化/中止します
    d)並行要求を終了します
    e )プロセスを監視し、失敗したプロセスを再開します。
    f)現在の作業シフトに基づいて、各サービスのプロセスの目標数を設定します。

    質問9: より多くの同時リクエストを並行して処理するにはどうすればよいですか?

    回答

    並列処理を増やすために、並行マネージャーのターゲットプロセスを増やすことができます。これは、コンカレントマネージャフォームの定義を使用するか、sqlplusからの直接更新を介して実行できます

    質問10: 内部マネージャーがダウンした場合、内部マネージャーを再起動する前にすべてのマネージャーを強制終了する必要がありますか?

    回答
    いいえ、内部マネージャーがダウンした場合、すべてのマネージャーを殺す必要はありません。 startmgrを使用して内部マネージャーを起動するだけです。

    質問11 :アプリケーションのシャットダウン中に直面した問題は何ですか?

    回答

    アプリケーションをシャットダウンしている間、他のいくつかのリクエストが実行されている可能性があるため、通常、並行マネージャーはダウンしません。 fnd_concurrent_requests、fnd_concurrent_program_vl、v $ session、v $ process、v $ sqltextをクエリすることで、実行中の同時リクエストが何であるかを確認します。

    そのリクエストが一部のselectステートメントのみを実行している場合は、それらのリクエストを強制終了します。それ以外の場合は、そのリクエストの前回の実行をクエリして完了までにかかる時間を確認し、次に何を実行するかを決定します。

    質問12: 内部モニターとは何ですか?

    回答: 内部モニターは特にPCPで使用され、他の利用可能な中間層ノードへのICMフェイルオーバーを可能にします。
    a)障害が発生した場合にICMを開始できるノードに内部モニターを配置します。
    b)内部モニターは、デフォルトで登録済みのすべてのノードにシードされます。
    c)ICMがダウンすると、内部モニターはローカルノードで新しいICMを開始しようとします。
    d)複数のICMが開始された場合、最初のものだけがアクティブのままになります。他の人は優雅に終了します。

    質問13: コンカレントマネージャーを削除できますか?
    回答:

    はい、任意のコンカレントマネージャを削除できます。削除するには、定義されたコンカレント・マネージャー・フォームでマネージャーを照会してから、行を削除します。

    事前定義されたコンカレントマネージャーを削除することはお勧めしません。削除しないでください。削除すると、システムが不安定になる可能性があります。

    質問14: 特定のリクエストに対して作成されたトレースファイルをどのように知ることができますか?

    回答

    以下のスクリプトを使用して同じことを見つけることができます。トレースは、データベースサーバーのudumpの場所に配置されます。


    prompt
    accept request prompt ‘Please enter the concurrent request id for the appropriate concurrent program:’
    prompt
    column traceid format a8
    column tracename format a80
    column user_concurrent_program_name format a40
    column execname format a15
    column enable_trace format a12
    set lines 80
    set pages 22
    set head off
    SELECT ‘Request id: ‘||request_id, ‘Trace id: ‘||oracle_Process_id, ‘Trace flag: ‘||req.enable_trace, ‘Trace Name: ‘||dest.value||’ ‘||lower(dbnm.value)||’ora’||oracle_process_id||’.trc’, ‘Prog. Name: ‘||prog.user_concurrent_program_name, ‘File name: ‘||execname.execution_file_name||execname.subroutine_name , ‘Status :’||decode(phase_code, ‘R’, ‘Running’)||’ ‘||’-‘||decode(status_code, ‘R’, ‘Normal’), “SID Serial: “||ses.sid||” , “||ses.serial#, “Module : “||ses.module
    from fnd_concurrent_requests req,
    v$session ses, v$process proc,
    v$parameter dest, v$parameter dbnm,
    fnd_concurrent_programs_v1 prog,
    fnd_executables execname
    where req.request_id = &request
    and req.oracle_process_id=proc.spid(+)
    and proc.addr = ses.paddr(+)
    and dest.name=’user_dump_dest’
    and dbnm.name=’db_name’
    and req.concurrent_program_id =
    prog.concurrent_program_id
    and req.program_application_id =
    prog.application_id
    and prog.application_id =
    execname.application_id
    and
    prog.executable_id=execname.executable_id;

    最も有用な並行マネージャークエリトップ30

    質問15: 並列並行処理(PCP)の仕組みを説明してください。

    回答
    並列並行処理の場合、すべてのマネージャーにプライマリノードとセカンダリノードが割り当てられます。マネージャーは、デフォルトでプライマリノードで開始されます。ノード障害またはOracleインスタンス障害の場合、そのノード上のすべての並行マネージャーが2次ノードに切り替えられます。プライマリノードが再び使用可能になると、セカンダリノードの並行マネージャーがプライマリノードに移行されます。移行プロセス中に、マネージャーがプライマリノードとセカンダリノードの両方に分散する場合があります。

    並列並行処理の場合、並列並行処理が構成されているノードで、Oracleインスタンスが実行されている場合と実行されていない場合があります。 Oracleを実行していないノードであるコンカレント・マネージャーは、Net8を介してOracleを実行しているノードに接続します。
    内部コンカレント・マネージャーは、任意のノードで実行でき、すべてのノードでコンカレント・マネージャーをアクティブ化および非アクティブ化できます。内部並行マネージャーは常にアクティブである必要があるため、高いフォールトトレランスが必要です。このフォールトトレランスを提供するために、並列並行処理は内部モニタープロセスを使用します。内部監視プロセスの役割は、内部マネージャを常に監視し、障害が発生したときに起動することです。 1つのノードでアクティブにできる内部モニタープロセスは1つだけです。システムを構成するときに、どのノードに内部モニタープロセスがあるかを決定します。各内部モニタープロセスにプライマリノードとセカンダリノードを割り当てて、フェイルオーバー保護を確保することもできます。コンカレントマネージャーのような内部モニタープロセスには、ワークシフトを割り当てることができ、内部コンカレントマネージャーによってアクティブ化および非アクティブ化されます。

    並列並行処理

    質問16: コンカレントマネージャーをバウンスする必要がある状況は何ですか?

    回答:コンカレントマネージャーをバウンスする必要がある状況はたくさんあります

    a)プリンタの定義を変更する場合
    b)環境変数を変更する場合。 APPLTMP変数とAPPLPTMP変数を変更したとします。
    c)すべてのリクエストが保留中でハングしていて、処理が行われていない場合
    d)パッチアプリケーションでCMのバウンスが必要
    e)複数の同時マネージャーや他のプロセスによるロックが原因で、システム内で多くのグローバルハングが発生します

    質問17: コンカレントマネージャーがハングする理由は何ですか?

    回答:

    並行マネージャーは、多くの理由でハングします。それらのいくつかは次のとおりです。
    –長時間実行されるジョブ
    –内部マネージャーがアプリケーションシステムの所有者以外の誰かによってアクティブ化されました
    –オペレーティングシステムのファイルシステムがいっぱいです
    –ログファイルを作成できません
    –内部マネージャーをシャットダウンしましたが、実際には番号が含まれています
    –アーカイブログファイルがいっぱいになっている可能性があるため、データベースがハングしています
    –保留中/スタンバイリクエストが多すぎます

    質問18: 競合解決マネージャーを有効/無効にするにはどうすればよいですか?

    回答: これは、プロファイルオプション「同時:ICMを使用」を使用して実行できます。 「Y」に設定すると、競合解決マネージャーが有効になります。無効にするには、プロファイルオプションを「N」に設定します。

    質問19: トランザクションマネージャーとは何ですか?

    回答: トランザクションマネージャーは、クライアント側のアプリケーションからの要求がないかDBMSパイプを継続的に監視することにより、同期ジョブ処理を提供します。トランザクションマネージャーの仕事は、このジョブをすぐに処理し、パイプを使用してクライアントに情報を送り返すことです。

    a)トランザクションマネージャーが同期ジョブ処理を提供する
    b)クライアントが特定のトランザクションマネージャーにプログラムの実行を要求し、そのプログラムの結果を待つ
    c)製品チームのプログラムが直接リンクされているトランザクションマネージャーの実行可能ファイル
    d)PO、CRP、INV、AR、およびOEはすべてトランザクションマネージャーを出荷します

    質問20: ログと出力ファイルを表示するメカニズムはブラウザからどのように機能しますか?

    回答

    イベントの順序は次のとおりです。
    1。アプリケーションセッション内のユーザーが、ログアウトファイルまたはログアウトファイルの表示を要求します。
    2。ブラウザはリクエストを受信し、CGIプログラムFNDWRR.exeを生成します
    3。 FNDWRR.exeはデータベースにログインし、FND_CONCURRENT_REQUESTSにクエリを実行して、この要求のファイルがどのノードに保存されているかを検出します。
    4。 FNDWRR.exeは、そのノード上のファイルサーバーのサービス名を作成します。そして、このサービス名についてリスナーに連絡するためにtns呼び出しを行います。
    5。リスナーは、listener.oraファイルで定義されているように、ローカルFNDFS実行可能ファイルを生成することで応答します。これで、FNDFSとFNDWRR.exeは、RPC呼び出しを使用して直接通信できるようになりました。
    6。 FNDWRR.exeは、ユーザーが選択したファイルを転送するようFNDFSに要求します。
    7。 FNDFSは、ファイルの内容をWebサーバーのノード上の一時ファイルディレクトリに転送します。
    8。 Webサーバーはファイルの内容をユーザーに表示します。

    質問21: 並行マネージャーが並行プログラムをキューに入れるのはなぜですか?マネージャーが単にプログラムを実行させないのはなぜですか?
    回答: なぜなら、任意の時点で、並行マネージャーは10個以下のプログラムを同時に実行できるからです。もちろん、この10の数字は構成可能です。最初に、マネージャーは送信されたプログラムをキューに入れ、次に、マネージャーは使用可能なスロットがあるかどうかを確認します(つまり、現在実行中のプログラムは10未満です)。使用可能なスロットが見つかった場合、並行マネージャーはプログラムを実行します。そうでない場合は、並行プログラムをステータスが保留中のキューに保持します。

    質問22: リクエストが非アクティブ/マネージャーなしの場合の対処方法

    回答: これは非常に難しい質問です。
    a)プログラムを許可する専門ルールを持つアクティブマネージャーが少なくとも1人いることを確認してください。
    b)前のポイントを確認した場合、問題は古くなっている可能性があります。ワーカーリクエストビュー
    –ビューは、リクエストをマネージャーにマッピングするために内部的に使用されます
    –ビューは、マネージャーが作成されるか、特殊化ルールが変更されると再生成されます
    c)ビューを手動で再生成できます
    FNDLIBRFNDFNDCPBWVアプリ/アプリSYSADMIN'システム管理者'SYSADMIN

    質問23: サービスマネージャーとは何ですか?

    回答: サービスマネージャは、ICMのエージェントとして機能するために、GSM対応システムの中間層ノードに生成されます。 ICMは、中間層ノードでコンカレントマネージャープロセスの開始などの機能を実行するためにサービスマネージャーが必要であると判断すると、そのノードのAppsリスナーにリモートプロシージャコントロール(RPC)呼び出しを行って開始します。サービスマネージャ。サービスマネージャーが開始されて初期化されると、ICMはRPCを介してSMと直接通信し、そのノード上のサービスを管理するための情報を提供します。 SMは、APPSTNSリスナーから生成されます。 APPS TNSリスナーは、システム内のすべての中間層ノードで開始し、ICMを開始するユーザー(applmgrなど)が開始する必要があります。TNSリスナーは、ローカルノードのICMのエージェントとして実行するようにServiceManagerを生成します。
    Service Managerは、必要に応じてICMによってオンデマンドで開始されます。ノードで管理アクションが必要ない場合、サービスマネージャーは必要になるまでICMによって開始されません。 ICMが終了すると、サービスマネージャーも終了します。

    質問24: ICMプロセスモニターによってすべて実行されるのは何ですか?

    回答: ICM自体とICMによって生成された各プロセスは、FND_CONCURRENT_PROCESSESにエントリを持ち、一意の名前のDBMSロックを保持します。
    ICMの一意のロックの形式はFNDCPLK_ICMです。このデータベースセッションロックは、ICMがマネージャーとサービスプロセスがまだ生きている各PMONサイクルを保証する方法です。 ICMがプロセスのDBMSセッションロックを取得できる場合、ICMはそのマネージャーまたはサービスの新しいプロセスを開始します。

    これが、デッドプロセスのようなエントリが見つかり、ICMログファイルで新しいプロセスを開始することがよくある理由です。

    コンカレントマネージャーの関連記事

    アップグレード後のコンカレント・プログラムをR12.2の別のマネージャー・キューに分離する:アップグレードによって送信されたコンカレントを別のコンカレント・マネージャーに分離して、通常のコンカレント処理に影響を与えないようにする方法
    コンカレント・プログラムの出力を送信する方法email:Oracle EBS R12バージョンでの並行プログラム出力の配信オプション。
    OracleAppsのリクエストセット:リクエストセットは、単一のトランザクションを使用して同じリクエストセットを定期的に送信する機能を提供します。
    CPアナライザ: CP Analyzerは、CP構成を確認し、それらをOracleのベストプラクティスと比較します。
    同時:要求フェーズとステータス:同時要求フェーズとステータスに関するすべての情報。意味は、組み合わせごとに導き出されます。
    ORA-01427:チェックアウトこれは、ORA-01427の解決策です。単一行のサブクエリが複数の行エラーを返します。並行マネージャで発生した場合の解決方法
    並行プログラムの優先順位:この投稿には詳細な説明があります。並行プログラムまたはユーザーの優先度の変更に関する説明、またはユーザーの重要なレポート実行の問題を解決するためのリクエスト

    推奨コース

    以下は、さらに一歩進んだ場合に購入できる推奨コースの一部です。

    以下にいくつかのコースへのリンクを示します


    Oracle DBA 11g / 12c –ジュニア​​DBAのデータベース管理 :このコースは、ジュニアDBAとして始めている人、またはOracleDBAを目指している人に適しています。これにより、バックアップとリカバリおよび一般的な管理タスクを十分に理解できます。
    Oracleデータベース:Oracle 12CR2RAC管理 :このコースでは、Oracle RACのインストール、管理について説明します。 OracleRACのスキルをアップグレードしたいOracleDBAに適したコース
    OracleDataGuard:Oracle12CR2のデータベース管理 :このコースでは、Oracle Dataguardのインストール、管理について説明します。 OracleDataguardのスキルをアップグレードしたいOracleDBAに適したコース

    おすすめの本
    OCA / OCP Oracle Database 12cオールインワン試験ガイド(試験1Z0-061、1Z0-062、および1Z0-063)
    Oracle Database 12c DBAハンドブック(Oracle Press)
    Oracle DBAオールインワンスクリプト–すべてのDBAに必要なガイド:Oracledbaスクリプトエキスパートデータベース管理者が毎日使用するコレクション。あなたの毎日の活動のためにdbaスクリプトを持っている必要があります!


    1. null列で一意性制約を作成する

    2. RedHat8にSQLServerをインストールする方法

    3. PostgreSqlの予約から作業時間のみを返す方法は?

    4. MacにSQLclをインストールする方法