How to Debug Issues related to XML Publisher Report

1. How to obtaining XML Publisher version ?

a) From the template/output in word/pdf format

If the output file (doc/pdf) file is generated then it can be used. Otherwise template stored inside can be used.

To get the XML Publisher version from template stored
Responsibility: XML Publisher Administrator
Tab: Templates
search for a pdf/RTF template
choose Preview
save the PDF file to locally

Open the PDF file in Adobe Acrobat
Menu File
Document Properties
Description: PDF Producer XML Publisher x.x.x.

Open the RTF file in MS Word
Menu File
Document Properties
Comments: PDF Producer XML Publisher x.x.x.

b) From Database using query

SELECT DECODE (bug_number
, '3554613', '4.5.0', '3263588', 'XDO.H', '3822219', '5.0.0'
, '4236958', '5.0.1', '4206181', '5.5.0', '4561451', '5.6.0', '4905678', '5.6.1‘, ‘5097966’,’ 5.6.2’, ‘5472959’,’ 5.6.3’)
FROM ad_bugs
WHERE bug_number IN
('3554613', '3263588', '3822219'
, '4236958', '4206181', '4561451', '4905678‘,’5097966’,’5472959’)


Note :
If XML publisher version is lower then apply the patch and migrate the templates

•4561451 : XDO 5.6
•4905678 : XDO 5.6.1
•5097966 : XDO 5.6.2
•5472959 : XDO 5.6.3


2 How to Migrate XML Publisher Report Templates

It is required to migrate the XML Publisher Report templates after applying a patch.
Responsibility :XML Publisher Administrator
XML Publisher Template Re-Generator
(Parameter re-generation criteria as 'ALL’)


3 How to identify at which stage XML Report fails


Check the status of the concurrent request. After the request is completed wait for another 2 or 3 minutes and re query the concurrent request. If it generates an XML file with data in that, it means first step is working fine.

Run the concurrent request XML Publisher separately and pass the parameters from the above run.
If the concurrent request is not available, it has to be added separately.
Responsibility : System Administrator
XML Report Publisher
Executable:XML Report Publisher
Short Name:XDOREPPB
File name:JCP4XMLPublish


4.How to obtain the OPP debug log files

Responsibility : System Administrator
Concurrent Manager Administration
Select the Output Post Processor
Click on the Processes button
Select the process that was active during the time frame that your request ran. Select Manager Log

5 Common Errors found in OPP log

a) File not found

•[5/13/09 11:52:50 AM] [UNEXPECTED] [22867:RT327657] java.io.FileNotFoundException:
/APP/inst/apps/TEST_oratest/logs/appl/conc/out/o327657.out (No such file or directory)

Template file for Report is missing from its location.
Use the report short name or the application short name

Select lob_code, lob_type from xdo_lobs where lob_code ='GMFAACCP' ;

select * from XDO_LOBS xl
where xl.APPLICATION_SHORT_NAME='GMF' ;

If you are on R12 make sure you have the latest XML Publisher version. If not apply the patch and regenerate XML Publisher Templates.

b) Time out issue.

java.sql.SQLException: Closed Connection at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) at . oracle.jdbc.driver.PhysicalConnection.setAutoCommit(PhysicalConnection.java:10 .

Run the XML Report publisher separately / Modify timeout profiles

c) SQLException java.sql.SQLException: ORA-01722: invalid number

>> Template is old and the new version has more fields. So when a number is assigned to a character field
In the template above error message is thrown.

Apply the latest patch and migrate the template (step 2)


d) Out of Memory Exception

oracle.apps.xdo.oa.schema.server.TemplateHelper.processTemplate(TemplateHelper.java:1278)
at oracle.apps.xdo.oa.cp.JCP4XMLPublisher.runProgram(JCP4XMLPublisher.java:807)
at oracle.apps.fnd.cp.request.Run.main(Run.java:148)
Caused by: java.lang.OutOfMemoryError

1. Increase the number of Output Post Processor as follows:

* Logon to Applications with "System Administrator" responsibility
* Navigate to Concurrent -> Manager -> Define
* Query for "Output Post Processor"
* Click on "Work Shifts" and Increase the number of processes.
(If you have 2 processes then make them 4).
* make sure that you have
oracle.apps.fnd.cp.opp.OPPServiceThread:2:0:max_threads=5
under Parameters.

2. Increase the value of the Concurrent:OPP Process Timeout as follows:

* Logon to Applications with "System Administrator" responsibility
* Navigate to Profile -> System
* Query for "Concurrent:OPP Response Timeout".
If the value of the Concurrent:OPP Response Timeout is 120 increase it to 240. (Value * 2)
* Query for "Concurrent:OPP Process Timeout".
Set the value to 10800 sec (3 hours)

3. Please ensure the following settings:

* Logon to Applications with "XMLPublisher Administrator" responsibility
* On the admin tab ensure the following settings:
- Use XML Publisher's XSLT processor TRUE
- Enable scalable feature of XSLT processor TRUE
- Enable XSLT runtime optimization TRUE
* Set the Temporary Directory to a valid path
Make sure that the tmp directory is at least 5GB or 20x larger than largest data file running


4. Under Concurrent > Program > Define, query for concurrent program that is receiving the error.
(Only for two step method when not using the OPP)

* In the 'Options' field changed the value to -Xmx1024M. (or higher)
* Restart the concurrent manager so that changes take effect
Note: Enabling the scalability feature and changing the heap size to -Xmx1024M' is not recommended to be on the global level ,let it only on concurrent program level


6 Large Data Report Recommendations
  • When the report output is more than 10,000 pages the chances are that OPP gets timed out waiting for the request to complete.
  • Reduce the large data by running it for less data ( only one source at a time)
  • Run the report for the whole data but keep NO report output. Most of the times customer runs this for the whole data to check for errors.
  • Improve the performance of the concurrent request by using parallel processing.
  • Improve the performance of the OPP Manager
  • Modify the timeout parameters


7 Time out related profiles


Concurrent:OPP Response Timeout
Concurrent:OPP Process Timeout

OPP response timeout happens when the OPP is handling other requests and still running Concurrent Manager will wait for the OPP for a 2 minutes and then it will time out.

OPP Process Timeout happens when the report generation is taking more time

Modify these profile values in order to avoid timeout

For version 5 & 5.6 if the XML file output is very large (file size is above OS limit) then XSLT scalable can be used.
Use XML Publisher's XSLT processor -> True
Use scalable feature of XSLT processor à True ( By default this is False)

8 How to improve XML Reports performance
XML reports performance depends on the concurrent request that generates the XML data and the OPP Manager which calls the XML reports engine.

a) Concurrent request performance:
Either reduce the data or increase the performance by implementing parallel processing. Parallel processing allows to start multiple processes and it produces the XML output within short time. For more information about parallel processing please log a SR.

b) OPP Manager performance

The number of Concurrent Requests that the Output Post Processor can handle in parallel depends on:
- the number of Processes
- the number of Threads Per Process

The default values are 2 Processes and 5 Threads Per Process so a total of 10 reports can be processed in parallel

Maximum throughput defined as:
#processes X #threads = MAX #parallel reports
if needed, increase the default values