Следните стъпки трябва да се следват, за да се изгради отново опашката
(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.
Системен администратор> Oracle Applications Manager> Workflow> Service Components> Workflow Agent Listener Service
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) Стартирайте услугата слушател на агент на работния поток и потвърдете, че сега обработва събитията в опашката.
Системен администратор> Oracle Applications Manager> Workflow> Service Components> Workflow Agent Listener Service
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;
Надявам се публикацията да ви хареса. Моля, предоставете обратната връзка за подобряване