OPP Fails To Pick Up Concurrent Requests With Error ‘Unable to find an Output Post Processor service to post-process request

CAUSE :
———-
Incorrect data is present in the OPP queue table AQ$FND_CP_GSM_OPP_AQTBL_S, which occurs when the concurrent managers are not shutdown correctly.
A quick sql query shows orphaned OPP subscribers in APPLSYS.AQ$FND_CP_GSM_OPP_AQTBL_S, causing the select_random_subscriber routine to pick a
non-running process.

SOLUTION:
————–
To resolve the issue test the following steps in a development instance and then migrate accordingly:

1. Find the active processes for OPP:

SQL> SELECT fcp.concurrent_process_id
FROM fnd_concurrent_queues fcq, fnd_concurrent_processes fcp
WHERE concurrent_queue_name = ‘FNDCPOPP’
AND fcq.concurrent_queue_id = fcp.concurrent_queue_id
AND fcq.application_id = fcp.queue_application_id
AND fcp.process_status_code = ‘A’;

Output example:

CONCURRENT_PROCESS_ID
————————————-
93557
93558

2. Find the OPP subscribers:

SQL> select name from APPLSYS.AQ$FND_CP_GSM_OPP_AQTBL_S;

The name in the table is the concurrent_process_id prefixed with ‘OPP’.
The output should normally correspond to the output of first query: have the same number of records and have as name the concurrent_process_id of the running OPP processes prefixed by OPP

Output example:

NAME
————————-
OPP93558
OPP93557
OPP88933
OPP92625

3. If there are extra subscribers which are left from previous runs of OPP processes, unsubscribe them via the following command:

SQL> exec fnd_cp_opp_ipc.unsubscribe(‘<concurrent_process_id>’);

Example:

SQL> exec fnd_cp_opp_ipc.unsubscribe(‘88933’);
SQL> exec fnd_cp_opp_ipc.unsubscribe(‘92625’);

4. Re-test some concurrent requests and confirm the post processing actions now complete successfully.

Recent Posts