Oracle
 sql >> Database >  >> RDS >> Oracle

come ricostruire la coda wf_java_deferred

È necessario seguire i seguenti passaggi per ricostruire la coda


(1) Verifica di quali record verrà eseguito il backup sulla tabella di backup 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) Chiudere il servizio di ascolto dell'agente del flusso di lavoro ed eseguire il backup dei record nella coda WF_JAVA_DEFERRED nella tabella di backup apps.wf_queue_temp_jms_table.

Amministratore di sistema> Oracle Applications Manager> Flusso di lavoro> Componenti del servizio> Servizio listener dell'agente flusso di lavoro

sqlplus apps/ @wfaqback.sql

Ad esempio:

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

(3) Assicurati che tutti i record siano nella tabella 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) Imposta aq_tm_processes =0.

alter system set aq_tm_processes=0;

(5) Prendere nota del nome del tablespace contenente l'indice su CORRID che dovrà essere ricreato in seguito.

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

(6) Elimina la coda WF_JAVA_DEFERRED e la queue_table.

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

Se si blocca, possiamo usare la forza

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

(7) Ricrea la coda WF_JAVA_DEFERRED.

sqlplus / @wfbesqc.sql

Ad esempio:

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

(8) Aggiungi gli iscritti.

sqlplus APPSusr/<pass> @wfbesqsubc.sql

Esempio di sintassi:

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

(9) Ricrea l'indice (ignora eventuali errori ORA-00955 sull'oggetto già esistenti poiché questo aggiunge l'indice per altri oggetti.):

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

Esempio di sintassi:

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

(10) Rimetti i dati per WF_JAVA_DEFERRED nella coda.

sqlplus apps/<pass> @wfaqrenq.sql

Ad esempio:

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

(11) Conferma che tutti i record sono di nuovo in coda.

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) Avviare il servizio di ascolto dell'agente del flusso di lavoro e confermare che ora sta elaborando gli eventi nella coda.

Amministratore di sistema> Oracle Applications Manager> Flusso di lavoro> Componenti del servizio> Servizio listener dell'agente flusso di lavoro

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;

Spero che il post ti piaccia. Si prega di fornire il feedback per migliorare