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

wf_java_deferredキューを再構築する方法

    キューを再構築するには、次の手順に従います


    (1)wf_queue_temp_jms_tableバックアップテーブルにバックアップされるレコードを確認します。


    select wfjd.corr_id corrid, msg_state state, count(*) COUNT
    from applsys.aq$wf_java_deferred wfjd
    where msg_state IN('READY', 'WAIT')
    group by corr_id, wfjd.msg_state;

    (2)ワークフローエージェントリスナーサービスをシャットダウンし、WF_JAVA_DEFERREDキューのレコードをapps.wf_queue_temp_jms_tableバックアップテーブルにバックアップします。

    システム管理者>OracleApplicationsManager>ワークフロー>サービスコンポーネント>ワークフローエージェントリスナーサービス

    sqlplus apps/ @wfaqback.sql

    例:

    sqlplus apps/apps @$FND_TOP/sql/wfaqback.sql WF_JAVA_DEFERRED

    (3)すべてのレコードがwf_queue_temp_jms_tableテーブルにあることを確認します。

    select CORR_ID corrid, QUEUE queue, count (*)
    from apps.wf_queue_temp_jms_table
    group by CORR_ID, QUEUE;

    (4)aq_tm_processes=0に設定します。

    alter system set aq_tm_processes=0;

    (5)後で再作成する必要があるCORRIDのインデックスを含むテーブルスペースの名前をメモします。

    SELECT index_name, tablespace_name
    FROM all_indexes
    WHERE index_name = 'WF_JAVA_DEFERRED_N1';

    (6)WF_JAVA_DEFERREDキューとqueue_tableを削除します。

    declare
    begin
    dbms_aqadm.stop_queue(queue_name => 'APPLSYS.WF_JAVA_DEFERRED', wait =>
    FALSE);
    end;
    /
    >

    ぶら下がっている場合は、力を使うことができます

    declare
    begin
    dbms_aqadm.drop_queue_table(queue_table => 'APPLSYS.WF_JAVA_DEFERRED', force
    => TRUE);
    end;
    /
    >

    (7)WF_JAVA_DEFERREDキューを再作成します。

    sqlplus / @wfbesqc.sql

    例:

    sqlplus apps/apps @$FND_TOP/patch/115/sql/wfbesqc.sql APPLSYS APPS

    (8)サブスクライバーを追加します。

    sqlplus APPSusr/<pass> @wfbesqsubc.sql

    構文例:

    sqlplus apps/<pass> @$FND_TOP/patch/115/sql/wfbesqsubc.sql APPLSYS APPS

    (9)インデックスを再作成します(他のオブジェクトのインデックスが追加されるため、オブジェクトに関するORA-00955エラーは無視してください。):

    sqlplus APPSusr/<pass> @FND_TOP/patch/115/sql/wfbesqidxc.sql APPLSYS APPS tablespace_name

    構文例:

    sqlplus apps/apps @$FND_TOP/patch/115/sql/wfbesqidxc.sql APPLSYS APPS APPS_TS_QUEUES

    (10)WF_JAVA_DEFERREDのデータをキューに戻します。

    sqlplus apps/<pass> @wfaqrenq.sql

    例:

    sqlplus apps/apps @$FND_TOP/sql/wfaqrenq.sql WF_JAVA_DEFERRED

    (11)すべてのレコードがキューに戻っていることを確認します。

    select wfjd.corr_id corrid, msg_state state, count(*) COUNT
    from applsys.aq$wf_java_deferred wfjd
    where msg_state IN('READY', 'WAIT')
    group by corr_id, wfjd.msg_state;

    (12)ワークフローエージェントリスナーサービスを開始し、キュー上のイベントを処理していることを確認します。

    システム管理者>OracleApplicationsManager>ワークフロー>サービスコンポーネント>ワークフローエージェントリスナーサービス

    select wfjd.corr_id corrid, msg_state state, count(*) COUNT
    from applsys.aq$wf_java_deferred wfjd
    where msg_state IN('READY', 'WAIT')
    group by corr_id, wfjd.msg_state;

    投稿が気に入っていただければ幸いです。改善するためにフィードバックを提供してください


    1. CONTINUE In Loopsを使用して、Oracleで制御を再開します

    2. Postgresqlで同等のテーブル値パラメーター

    3. LinuxにMysql56をインストールする手順

    4. CONNECTBYまたはOracle以外のRDBMSの階層クエリ