Các bước tiếp theo sẽ được thực hiện để xây dựng lại hàng đợi
(1) Kiểm tra xem bản ghi nào sẽ được sao lưu trên bảng sao lưu 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) Tắt Dịch vụ trình xử lý tác nhân quy trình làm việc và sao lưu các bản ghi trên hàng đợi WF_JAVA_DEFERRED vào bảng sao lưu apps.wf_queue_temp_jms_table.
Quản trị viên hệ thống> Trình quản lý ứng dụng Oracle> Dòng công việc> Thành phần dịch vụ> Dịch vụ trình xử lý tác nhân dòng công việc
sqlplus apps/ @wfaqback.sql
Ví dụ:
sqlplus apps/apps @$FND_TOP/sql/wfaqback.sql WF_JAVA_DEFERRED
(3) Đảm bảo rằng tất cả các bản ghi đều nằm trong bảng 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) Đặt aq_tm_processes =0.
alter system set aq_tm_processes=0;
(5) Lưu ý tên của vùng bảng chứa chỉ mục trên CORRID sẽ cần được tạo lại sau này.
SELECT index_name, tablespace_name
FROM all_indexes
WHERE index_name = 'WF_JAVA_DEFERRED_N1';
(6) Bỏ hàng đợi WF_JAVA_DEFERRED và queue_table.
declare
begin
dbms_aqadm.stop_queue(queue_name => 'APPLSYS.WF_JAVA_DEFERRED', wait =>
FALSE);
end;
/
Nếu nó bị treo, chúng ta có thể sử dụng vũ lực
declare
begin
dbms_aqadm.drop_queue_table(queue_table => 'APPLSYS.WF_JAVA_DEFERRED', force
=> TRUE);
end;
/
(7) Tạo lại hàng đợi WF_JAVA_DEFERRED.
sqlplus / @wfbesqc.sql
Ví dụ:
sqlplus apps/apps @$FND_TOP/patch/115/sql/wfbesqc.sql APPLSYS APPS
(8) Thêm người đăng ký.
sqlplus APPSusr/<pass> @wfbesqsubc.sql
Cú pháp mẫu:
sqlplus apps/<pass> @$FND_TOP/patch/115/sql/wfbesqsubc.sql APPLSYS APPS
(9) Tạo lại chỉ mục (Vui lòng bỏ qua bất kỳ lỗi ORA-00955 nào về đối tượng đã tồn tại vì điều này thêm chỉ mục cho các đối tượng khác.):
sqlplus APPSusr/<pass> @FND_TOP/patch/115/sql/wfbesqidxc.sql APPLSYS APPS tablespace_name
Cú pháp mẫu:
sqlplus apps/apps @$FND_TOP/patch/115/sql/wfbesqidxc.sql APPLSYS APPS APPS_TS_QUEUES
(10) Đưa dữ liệu cho WF_JAVA_DEFERRED trở lại hàng đợi.
sqlplus apps/<pass> @wfaqrenq.sql
Ví dụ:
sqlplus apps/apps @$FND_TOP/sql/wfaqrenq.sql WF_JAVA_DEFERRED
(11) Xác nhận rằng tất cả các bản ghi đã trở lại hàng đợi.
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) Khởi động Dịch vụ Trình xử lý Tác nhân Dòng công việc và xác nhận rằng nó hiện đang xử lý các sự kiện trên hàng đợi.
Quản trị viên hệ thống> Trình quản lý ứng dụng Oracle> Dòng công việc> Thành phần dịch vụ> Dịch vụ trình xử lý tác nhân dòng công việc
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;
Hy vọng bạn thích bài viết. Vui lòng cung cấp phản hồi để cải thiện