Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

como reconstruir a fila wf_java_deferred


As etapas a seguir devem ser seguidas para reconstruir a fila


(1) Verifique quais registros terão backup na tabela de 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) Encerre o Serviço de Ouvinte do Agente de Fluxo de Trabalho e faça backup dos registros na fila WF_JAVA_DEFERRED para a tabela de backup apps.wf_queue_temp_jms_table.

Administrador do Sistema> Oracle Applications Manager> Fluxo de Trabalho> Componentes de Serviço> Serviço de Ouvinte do Agente de Fluxo de Trabalho
sqlplus apps/ @wfaqback.sql

Por exemplo:
sqlplus apps/apps @$FND_TOP/sql/wfaqback.sql WF_JAVA_DEFERRED

(3) Certifique-se de que todos os registros estejam na tabela 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) Defina aq_tm_processes =0.
alter system set aq_tm_processes=0;

(5) Observe o nome do tablespace que contém o índice em CORRID que precisará ser recriado posteriormente.
SELECT index_name, tablespace_name
FROM all_indexes
WHERE index_name = 'WF_JAVA_DEFERRED_N1';

(6) Elimine a fila WF_JAVA_DEFERRED e queue_table.
declare
begin
dbms_aqadm.stop_queue(queue_name => 'APPLSYS.WF_JAVA_DEFERRED', wait =>
FALSE);
end;
/

Se travar, podemos usar a força
declare
begin
dbms_aqadm.drop_queue_table(queue_table => 'APPLSYS.WF_JAVA_DEFERRED', force
=> TRUE);
end;
/

(7) Recrie a fila WF_JAVA_DEFERRED.
sqlplus / @wfbesqc.sql

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

(8) Adicione os assinantes.
sqlplus APPSusr/<pass> @wfbesqsubc.sql

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

(9) Recrie o índice (Ignore quaisquer erros ORA-00955 sobre o objeto já existente, pois isso adiciona índice para outros objetos.):
sqlplus APPSusr/<pass> @FND_TOP/patch/115/sql/wfbesqidxc.sql APPLSYS APPS tablespace_name

Sintaxe de exemplo:
sqlplus apps/apps @$FND_TOP/patch/115/sql/wfbesqidxc.sql APPLSYS APPS APPS_TS_QUEUES

(10) Coloque os dados do WF_JAVA_DEFERRED de volta na fila.
sqlplus apps/<pass> @wfaqrenq.sql

Por exemplo:
sqlplus apps/apps @$FND_TOP/sql/wfaqrenq.sql WF_JAVA_DEFERRED

(11) Confirme se todos os registros estão de volta na fila.
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) Inicie o Serviço de Ouvinte do Agente de Fluxo de Trabalho e confirme se agora está processando os eventos na fila.

Administrador do Sistema> Oracle Applications Manager> Fluxo de Trabalho> Componentes de Serviço> Serviço de Ouvinte do Agente de Fluxo de Trabalho
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;

Espero que gostem do post. Por favor, forneça o feedback para melhorar