How to troubleshoot Output Post Processor Issues

 The Output Post Processor (OPP) is designed to support XML Publisher as a post-processing action for concurrent requests. If a request is submitted with an XML Publisher template specified as a layout for the concurrent request output, then after the concurrent manager finishes running the concurrent program, it will contact the OPP to apply the XML Publisher template and create the final output.

Memory Usage Per Process:

The maximum amount of memory or maximum Java heap size a single OPP process can use is by default set to 512MB. This value is needed by the Loader Data File: $FND_TOP/patch/115/import/US/afoppsrv.ldt which specifies that the DEVELOPER_PARAMETERS is “J:oracle.apps.fnd.cp.gsf.GSMServiceController:-mx512m”.

How to determine the current Java heap size:

SELECT service_id, service_handle, developer_parameters
FROM fnd_cp_services
WHERE service_id = (SELECT manager_type
FROM fnd_concurrent_queues
WHERE concurrent_queue_name = ‘FNDCPOPP’);



Increase the maximum Java heap size for the OPP

To 1024MB (1GB):

UPDATE fnd_cp_services
SET developer_parameters =
'J:oracle.apps.fnd.cp.gsf.GSMServiceController:-mx1024m'
WHERE service_id = (SELECT manager_type
FROM fnd_concurrent_queues
WHERE concurrent_queue_name = 'FNDCPOPP');

To 2048MB (2GB):

 UPDATE fnd_cp_services SET developer_parameters = 'J:oracle.apps.fnd.cp.gsf.GSMServiceController:-mx2048m' WHERE service_id = (SELECT manager_type FROM fnd_concurrent_queues WHERE concurrent_queue_name = 'FNDCPOPP'); 

Then we need to bounce the OPP to get it into effect

Recreate the OPP queue

The OPP queue can be Recreated using the $FND_TOP/patch/115/sql/afopp002.sql file as an ‘APPLSYS’ user. On running the script you will be prompted for username and password.

Profile options related to OPP

There are 2 new that can be used to control the timeouts

Profile Option : Concurrent: OPP Response Timeout
Internal Name : CONC_PP_RESPONSE_TIMEOUT
Description: Specifies the amount of time a manager waits for OPP to respond to its request for post-processing.

Profile Option : Concurrent:OPP Process Timeout
Internal Name : CONC_PP_PROCESS_TIMEOUT
Description: Specifies the amount of time the manager waits for the OPP to actually process the request.

How to check OPP logfiles

To investigate XML issues or other publishing problems, often the OPP log file is needed. Below are the steps to find logfile from the Front end

  1. Login to the application as SYSADMIN  
  2. Responsibility: System Administrator
  3. Concurrent –> Manager –> Administration
  4. Select the Output Post Processor
  5. Click on the Processes button
  6. Select the Concurrent Process which was active during the time that the request ran
  7. Click on the Manager Log button to open the Output Post Processor log file

Directly from the file system based after identifying the corresponding OPP log file name using the following SQL statement:

SELECT fcpp.concurrent_request_id req_id, fcp.node_name, fcp.logfile_name
FROM fnd_conc_pp_actions fcpp, fnd_concurrent_processes fcp
WHERE fcpp.processor_id = fcp.concurrent_process_id
AND fcpp.action_type = 6
AND fcpp.concurrent_request_id = &&request_id

Threads and Processes for Output post-processor

OPP Service is a multi-threaded process.

OPP processes and threads can be seen from Concurrent Manager define form

1) Logon to Applications with “System Administrator” responsibility

2) Concurrent -> Manager -> Define

3) Query for “Output Post Processor”

4) Click on “Work Shifts” and This will show the number of processes

One service instance of the OPP service is by default. This seeded OPP service instance has one work shift with one process

We can see the parameter of the threads as below:

oracle.apps.fnd.cp.opp.OPPServiceThread:2:0:max_threads=5

General Issues with OPP

 CONC-PP NO RESPONSE:

Setting the profile option Concurrent: OPP Response Timeout to a higher value may be necessary.

Solution:

By default, a timeout will occur if it takes longer than 120 seconds (2 min.) for the Output Post Processor to pick up the request from the Concurrent Manager process. Increase the same if required.

CONC-PP TIMEOUT:

By default, a timeout will occur if it takes longer than 300 seconds (5 min.) for the XML Publisher engine to generate the output file. We will need to increase the timeout if necessary 

java.lang.OutOfMemoryError error

A high number of threads increases the risk of running into java.lang.OutOfMemoryError errors during peak loads. So Limit  the number of threads per OPP process

For the specific concurrent program which is showing OPP related out of memory issues, think of increasing run time memory

Go to “System Administrator” responsibility.

Concurrent – > Program – > Define.

Search for the concurrent program

Set the Options field to -Xmx1024M

Save.

Bounce the Concurrent Manager for the effects to take place.

How to restart OOP Services



Using System Administrator responsibility navigate to

Concurrent–>Manager–>Administer ->Output Post Processor


Deactivate and Activate

Alternatively, click on Restart.

If not stopped/deactivated check the processes and kill and try to start


ps -ef |grep java | grep -v grep | grep FNDOPP

Comments

Popular posts from this blog

How to fix Oracle SQL Developer connection issue "Got minus one from a read call"

How to troubleshoot Long Running Concurrent Request in EBS 12.2

Few Important steps of Oracle Database Clone