Oracle
 sql >> Base de données >  >> RDS >> Oracle

comment reconstruire la file d'attente wf_java_deferred

Les étapes suivantes doivent être suivies pour reconstruire la file d'attente


(1) Vérifiez quels enregistrements seront sauvegardés sur la table de sauvegarde 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) Arrêtez le service d'écoute de l'agent de workflow et sauvegardez les enregistrements de la file d'attente WF_JAVA_DEFERRED dans la table de sauvegarde apps.wf_queue_temp_jms_table.

Administrateur système> Oracle Applications Manager> Workflow> Composants de service> Service d'écoute de l'agent de workflow

sqlplus apps/ @wfaqback.sql

Par exemple :

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

(3) Assurez-vous que tous les enregistrements sont dans la table 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) Définissez aq_tm_processes =0.

alter system set aq_tm_processes=0;

(5) Notez le nom du tablespace contenant l'index sur CORRID qui devra être recréé plus tard.

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

(6) Supprimez la file d'attente et la queue_table WF_JAVA_DEFERRED.

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

S'il se bloque, nous pouvons utiliser la force

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

(7) Recréez la file d'attente WF_JAVA_DEFERRED.

sqlplus / @wfbesqc.sql

Par exemple :

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

(8) Ajoutez les abonnés.

sqlplus APPSusr/<pass> @wfbesqsubc.sql

Exemple de syntaxe :

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

(9) Recréez l'index (veuillez ignorer toute erreur ORA-00955 concernant l'objet déjà existant car cela ajoute un index pour d'autres objets.):

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

Exemple de syntaxe :

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

(10) Remettez les données de WF_JAVA_DEFERRED dans la file d'attente.

sqlplus apps/<pass> @wfaqrenq.sql

Par exemple :

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

(11) Confirmez que tous les enregistrements sont de retour dans la file d'attente.

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) Démarrez le service d'écoute de l'agent de workflow et confirmez qu'il traite maintenant les événements de la file d'attente.

Administrateur système> Oracle Applications Manager> Workflow> Composants de service> Service d'écoute de l'agent de workflow

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;

J'espère que vous aimez le poste. Veuillez fournir des commentaires pour améliorer