FND voucher printing warning in EBS R12: OPP response timeout

Close to the end of the year, the recent year has been busy and flying. This is the background. Today, the operation and maintenance department reported an error in the printing of journal vouchers. After reading the background request, it was found that the request had a warning.

The warning of "Concurrency: OPP response timeout" is found in the log. The response timeout in this place may be caused by the influence of "Concurrency: OPP timeout response" and other relevant parameters in the configuration file. The OPP service does not respond in time within the specified time. Of course, the cause of the problem may be deep-seated. Here we need to find the OPP service log.

Then, how to find the OPP service log? We query the location of the OPP service log through the request number:

SELECT Fcpp.Concurrent_Request_Id Req_Id
  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 = 25168707

After querying the service log, we check the contents of the service log and find the following errors:

/18/06 5:00:14 PM] [UNEXPECTED] [128085:RT1585526] java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at oracle.apps.xdo.common.xml.XSLT10gR1.invokeProcessXSL(XSLT10gR1.java:580)
at oracle.apps.xdo.common.xml.XSLT10gR1.transform(XSLT10gR1.java:378)
at oracle.apps.xdo.common.xml.XSLT10gR1.transform(XSLT10gR1.java:197)
at oracle.apps.xdo.common.xml.XSLTWrapper.transform(XSLTWrapper.java:156)
at oracle.apps.xdo.template.fo.util.FOUtility.generateFO(FOUtility.java:916)
at oracle.apps.xdo.template.fo.util.FOUtility.generateFO(FOUtility.java:178)
at oracle.apps.xdo.template.FOProcessor.createFO(FOProcessor.java:1507)
at oracle.apps.xdo.template.FOProcessor.generate(FOProcessor.java:913)
at oracle.apps.xdo.oa.schema.server.TemplateHelper.runProcessTemplate(TemplateHelper.java:1766)
at oracle.apps.xdo.oa.schema.server.TemplateHelper.processTemplate(TemplateHelper.java:1277)
at oracle.apps.fnd.cp.opp.XMLPublisherProcessor.process(XMLPublisherProcessor.java:229)
at oracle.apps.fnd.cp.opp.OPPRequestThread.run(OPPRequestThread.java:153)
Caused by: java.lang.OutOfMemoryError
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java(Compiled Code))
at oracle.xdo.parser.v2.XMLOutputStream.flush(XMLOutputStream.java(Inlined Compiled Code))
at oracle.xdo.parser.v2.XMLOutputStream.write(XMLOutputStream.java(Compiled Code))
at oracle.xdo.parser.v2.XMLOutputStream.writeChars(XMLOutputStream.java(Compiled Code))

So here we can clearly see the specific cause of the problem. It is because the server does not have enough memory to allocate when inputting large files. It may be because OPP does not have enough stack size during business peak hours. This may be caused by too small memory parameters or memory leakage caused by the coding in the template file.

Here you can refer to the official document: Output Post Processor (OPP) Log Contains Error "java.lang.OutOfMemoryError" (document ID 1266368.1)

According to the official documents, there are several methods to solve this problem (these methods can be selected):

  • 1. Log in to XML Publisher Administrator.
    2. Navigate to home - Administration - configuration.
    3. Under general properties, select temporary directory.
    4. Select the temporary file location on the concurrent processing node. This should be at least 5Gb or 20 times larger than the largest XML data file you generate.


  • 1. Log in to XML Publisher Administrator.
    2. Navigate to home - Administration - configuration.
    3. Under FO processing attribute set:
    a) The XSLT processor using XML Publisher is True.
    b) Make the extensibility of XSLT processor False.
    c) Enable XSLT runtime optimization to True.


  • 1. As a system administrator: navigate to concurrent - > program - > define.
    2. Query report: account analysis report (for example).
    3. Add a parameter named ScalableFlag:
    Value set: yes_no 
    Default: Yes
    Select the check box to enable security and required
    Uncheck the check box to display, or the user can turn it off at run time.
    The token needs to be ScalableFlag (this is a case sensitive value).
    Note: for application general ledger and Sub Ledger accounting concurrent program definitions, complete the following steps.


  • 1. Determine the heap size of each OPP process:
SELECT Developer_Parameters
  FROM Fnd_Cp_Services
 WHERE Service_Id = (SELECT Manager_Type
                       FROM Fnd_Concurrent_Queues
                      WHERE Concurrent_Queue_Name = 'FNDCPOPP');

       2. The default value should be:


       3. Increase the heap space of each process to 1024

UPDATE Fnd_Cp_Services
   SET Developer_Parameters =
 WHERE Service_Id = (SELECT Manager_Type
                       FROM Fnd_Concurrent_Queues
                      WHERE Concurrent_Queue_Name = 'FNDCPOPP');

       4. Restart concurrency Manager


  • 1. Navigate to system administrator responsibilities.
    2. Navigate to Concurrent - Program - Define.
    3. Query the short name of XDOTMGEN executable file.
    4. In the options field, add values such as - Xmx512m or - Xmx1024m or other related numbers to increase the heap size.
    5. Save the changes.
    6. Resubmit the request.


Of course, the official hope is that we can apply the latest ATG RUP and XDO patch sets on time. That's what we'll talk about later.

Posted by herbat8 on Thu, 12 May 2022 01:28:37 +0300