È 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