Troubleshooting XML Publisher Reports

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 11
At a glance
Powered by AI
The document discusses troubleshooting Oracle XML Publisher, including determining the version, understanding delivery channels, available debug methods, and specific situations that may cause issues.

The three main delivery channels discussed are the two-step publishing method, one-step publishing method, and other situations like web/forms-based invocations.

Debug files are generated depending on the delivery channel. For the one-step publishing method, the Output Post Processor log file can provide details. Other methods may use different logs.

Subject: Troubleshooting Oracle XML Publisher For The Oracle E-Business Suite Doc ID: 364547.

1 Type: TROUBLESHOOTING Modified15-APRStatus: PUBLISHED Date : 2009 In this Document


Purpose Last Review Date Instructions for the Reader Troubleshooting Details 1. Which version of Oracle XML Publisher is used? 2. Delivery channels - How does the Oracle XML Publisher Core engine gets invoked? 3. Data gathering - Which debug methods are available? 4. Reproducible test case - Which information does Global Customer Support (GCS) need? 5. Specific Situations References

@ (AuthWiz 2.5.5) @ Click here to edit in wizard.

Applies to:
Oracle XML Publisher - Version: 11.5.0 Oracle XML Publisher - Version: 12.0.0 Information in this document applies to any platform. FORM:FNDRSRUN.FMB - Run Reports EXECUTABLE:XDOREPPB - Generate PDF from XML output and given template

Purpose
The purpose of this document is to provide a comprehensive troubleshooting guide specific to Oracle XML Publisher as part of the Oracle E-Business Suite. Data gathering is the first step towards problem resolution and this document is intended to be the reference guide for that. It is applicable to both the Oracle EBusiness Suite 11i and Release 12.

Last Review Date


April 15, 2009
Instructions for the Reader A Troubleshooting Guide is provided to assist in debugging a specific issue. When possible, diagnostic tools are included in the document to assist in troubleshooting.

Troubleshooting Details 1. Which version of Oracle XML Publisher is used?


There are various ways to determine the version of Oracle XML Publisher that is used. This is described in Note 362496.1 How to Determine the Version of Oracle XML Publisher for Oracle E-Business Suite 11i and Release 12.

2. Delivery channels - How does the Oracle XML Publisher Core engine gets invoked?
It is important to understand how XML Publisher is invoked because there are specific debug methods for each of the existing delivery channels. As a first step it needs to be determined which of the following delivery channel applies to the issue that is being investigated. There are three possible methods: 2.1 Two step publishing method 1. Submit a concurrent program of which the Output Format is set to XML 2. Submit the XML Report Publisher concurrent request to produce the final output. At submission time, specify the request ID from step 1, choose the desired template and the Output Format (PDF, RTF,...). 2.2 One step publishing method Submit a Concurrent Program with the Output Format is set to XML. At submission time select the desired template and the Output Format (PDF, RTF,...). In the background the Output Post Processor (OPP) automatically applies the layout template to the generated XML data file and creates the output file. This method is the most common usage of XML Publisher.
o

2.3 All other situations These delivery channels do not use the concurrent managers but they are web or forms based, where the XML Publisher Core API's are called directly in JAVA code. No concurrent request is involved and only the XML Publisher Core engine is used. Examples of such situations are the following:
o

Pick Slip Dunning Letters Blanket Agreement (Preview and Print)

3. Data gathering - Which debug methods are available?

Debug files are generated depending on how the XML Publisher Core engine is invoked. 3.1 One step publishing method: the Output Post Processor log file The Concurrent Request ends with Phase 'Completed' and Status 'Warning' which indicates that the Output Post Processor (OPP) failed to generate an output file.
o

In such cases the request log file shows a generic error message indicating the the post-processing action has failed:
o

... +------------- 1) PUBLISH -------------+ Beginning post-processing of request 3181529 on node PBREUGEL at 11-APR-2008 11:41:30. Post-processing of request 3181529 failed at 11-APR-2008 11:41:31 with the error message: One or more post-processing actions failed. Consult the OPP se rvice log for details. +--------------------------------------+ ...

Note: If the request log file shows a different error in regards to the postprocessing action then please refer to paragraph 5. Specific Situations of this note for more information.

The actual error returned by the XML Publisher Core engine is captured in the OPP log file. There are three possible ways to obtain the OPP log file:
o

1. 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, fc p.logfile_name FROM fnd_conc_pp_actions fcpp, fnd_concurrent_processes f cp WHERE fcpp.processor_id = fcp.concurrent_process_id AND fcpp.action_type = 6 AND fcpp.concurrent_request_id = &&request_id

2.

Via the Forms application: 1. Login to the application as SYSADMIN 2. Responsibility: System Administrator 3. Function: 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 Via the Oracle Application Manager (OAM) 1. Login to the application as SYSADMIN 2. Responsibility: System Administration 3. Function: Oracle Applications Manager --> Concurrent Managers 4. Select the Output Post Processor Service and click on View Details 5. Click on View Processes 6. Select the Concurrent Process which was active during the time that the request ran 7. Click on the Log button to open the Output Post Processor log file

3.

(optional) Statement level logging for the Output Post Processor: Enabled via Oracle Application Manager (OAM): 1. Login to the application as SYSADMIN 2. Responsibility: System Administration 3. Navigation Path: 1. Concurrent Managers 2. Click on Output Post Processor 3. Select Service Instance and ... select Statement 4. Click on the Set Log Level button 5. Restart the Concurrent Managers or at the very least, the Output Post Processor

Via SQL*Plus using the following anonymous PL/SQL block, executed as APPS:
set serveroutput on declare cursor c is

select concurrent_process_id from fnd_concurrent_processes fcp, fnd_concurrent_queu es fcq, fnd_cp_services fcs where fcs.service_handle = 'FNDOPP' and fcs.service_id = fcq.manager_type and fcq.concurrent_queue_id = fcp.concurrent_queue_id and fcp.process_status_code = 'A'; begin for crec in c loop dbms_output.put_line('Setting debug on for process id: ' || crec.concurrent_process_id); fnd_cp_opp_ipc.send_command(crec.concurrent_process_id, 'sqlplus', 'oracle.apps.fnd.cp.opp.OP PSetDebugCommand', '1'); end loop; end; /

Note: Low-level logging may be requested by development but in general it is not required for troubleshooting. 3.2 All other delivery channels: the XML Publisher Core engine debug Single step and two step publishing method, with concurrent processing:
o

1. Connect to the concurrent manager server as applmgr. 2. Create an $XDO_TOP/temp and an $XDO_TOP/resource directory. 3. Create an xdodebug.cfg file in the $XDO_TOP/resource directory, containing the following 2 lines:
LogLevel=STATEMENT LogDir=[full XDO_TOP]/temp

4. Restart the concurrent managers in case of single step publishing method (not required for two step publishing method). 5. Reproduce the problem. Note: The xdodebug.cfg file can also be created in the $AF_JRE_TOP/jre/lib OR $AF_JRE_TOP/lib directory.

Direct report publishing via the XML Publisher Core APIs, without concurrent processing:
o

1. Connect to the Apache server as applmgr. 2. Create an $XDO_TOP/temp and an $XDO_TOP/resource directory. 3. Create an xdodebug.cfg file in the $XDO_TOP/resource directory, containing the following 2 lines:
LogLevel=STATEMENT LogDir=[full XDO_TOP]/temp

4. 5.

Restart the Apache server. Reproduce the problem.

Note: The xdodebug.cfg file can also be created in the $OA_JRE_TOP/jre/lib directory.

All other situations, enabling debug via the JRE itself: 1. Connect to the server as 'applmgr'. 2. Run (source) the correct APPS*.env file to setup environment variables. 3. Create an $XDO_TOP/temp directory. 4. Execute these commands:
$ cd $OA_JRE_TOP/bin $ ./java -verbose | grep jre [Opened /oracle/vispb12/apps/tech_st/10.1.3/appsutil/jdk/jr e/lib/rt.jar] [Opened /oracle/vispb12/apps/tech_st/10.1.3/appsutil/jdk/jr e/lib/jsse.jar] [Opened /oracle/vispb12/apps/tech_st/10.1.3/appsutil/jdk/jr e/lib/jce.jar] [Opened /oracle/vispb12/apps/tech_st/10.1.3/appsutil/jdk/jr e/lib/charsets.jar] [Loaded sun.reflect.misc.ReflectUtil from /oracle/vispb12/a pps/tech_st/10.1.3/appsutil/jdk/jre/lib/rt.jar] -jre-restrict-search | -jre-no-restrict-search

The location of the rt.jar file illustrates the real jre/lib directory in which the xdodebug.cfg file should be created.

5. Create an xdodebug.cfg file in the same directory as the rt.jar file, containing the following 2 lines:
LogLevel=STATEMENT LogDir=[full XDO_TOP]/temp

6.
o

Reproduce the problem.

In each of the cases described above, several debug files will be created under the $XDO_TOP/temp directory after reproducing the problem: xdo.log : XML Publisher Core engine debug log file xdo_...xsl : XSL-FO version of the RTF template xdo_...xml : XML data file xdo_...fo : temporary file created by the FO Engine (only RTF / XSL templates) xdo_...out : output file (may not exist in case of complete failure). 3.3 Two step publishing method: the XML Report Publisher request log o Run the concurrent program to obtain the XML output.

o Run the XML Report Publisher request which ends with Phase Completed and Status Error. o The error returned from the XML Publisher Core engine is captured in the XML Report Publisher request log. o (optional) Run the XML Report Publisher program in debug mode: 1. Responsibility: System Administrator 2. Function: Concurrent --> Program --> Define 3. Query the XML Report Publisher program 4. Click on Parameters 5. Select the Debug Flag parameter 6. Change the Default Value from N to Y 7. Rerun the XML Report Publisher program to capture the complete error

4. Reproducible test case - Which information does Global Customer Support (GCS) need?
Global Customer Support (GCS) may request for a reproducible test case in order to resolve any issues related to the Oracle XML Publisher Core engine, such as:

An XML Report Publisher request which runs in error. An incorrect layout for the generated output. ...

It is highly recommended to keep all reproducible test cases as simple as possible, especially for custom templates. For all of the above situations, the following information must be provide during the creation of a new service request: 4.1 Problem description Does the process ends in error? --> Gather the log files as described in paragraph 3. Data gathering: Which debug methods are available? Is the layout of the output incorrect? --> Layout template file and XML data file

4.2 Oracle XML Publisher version Determine the version of Oracle XML Publisher that is used by following the steps from 1. Which version of Oracle XML Publisher is used?

4.3 Template file The template can be download it via the Template Manager (XML Publisher Administrator responsibility). It is saved under the LogDir when the XML Report Publisher Engine runs in debug mode.

4.4 XML data file Single step publishing method, perform the following steps within the Forms application: 1. Menu View 2. Select Requests 3. Query the request that failed 4. Click on the Diagnostics button 5. Click on the View XML button. Two step publishing method: the Output File of the first concurrent request. Direct Report publishing: saved under the LogDir when the XML Report Publisher Engine runs in debug mode.

4.5 Runtime Properties

Run the following SQL statement to create a summary of the runtime properties defined on the environment. The output is preferable provided in a CSV or Excel format.

SELECT

xcpt.property_name, xcp.xdo_cfg_name, DECODE (TO_CHAR (xcv.config_level), '10', 'Site','30', 'DataSource','50', 'Template', '???') "LEVEL", DECODE (TO_CHAR (xcv.config_level), '10', '', '30', xd.application_short_name || '|' || xd.d ata_source_code, '50', xt.application_short_name || '|' || xt.t emplate_code, '???') "CONTEXT_SHORT", DECODE (TO_CHAR (xcv.config_level), '10', '', '30', (SELECT fat1.application_name || '|' || xdt.data_source_name FROM xdo_ds_definitions_tl xdt, fnd_a pplication fa1, fnd_application_tl fat1 WHERE fa1.application_id = fat1.applic ation_id AND fat1.LANGUAGE = 'US' AND xd.application_short_name = fa1. application_short_name AND xd.application_short_name = xdt. application_short_name AND xd.data_source_code = xdt.data_s ource_code AND xdt.LANGUAGE = 'US'), '50', (SELECT fat2.application_name || '|' || xtt.template_name FROM xdo_templates_tl xtt, fnd_applic ation fa2, fnd_application_tl fat2 WHERE fa2.application_id = fat2.applic ation_id AND fat2.LANGUAGE = 'US' AND xt.application_short_name = fa2. application_short_name AND xt.application_short_name = xtt. application_short_name AND xtt.template_code = xt.template_ code AND xtt.LANGUAGE = 'US'), '???' ) "CONTEXT_DETAIL", xcv.VALUE FROM xdo_config_properties_b xcp, xdo_config_properties_tl xcpt, xdo_config_values xcv, xdo_ds_definitions_b xd, xdo_te mplates_b xt WHERE xcp.property_code = xcpt.property_code AND xcpt.LANGUA GE = 'US' AND xcv.property_code = xcp.property_code AND xd.application_short_name(+) = xcv.application_short_n ame AND xd.data_source_code(+) = xcv.data_source_code AND xt.application_short_name(+) = xcv.application_short_n

ame

AND xt.template_code(+) = xcv.template_code ORDER BY xcv.config_level, xcp.CATEGORY, xcp.sort_order

5. Specific Situations
A concurrent request which completed in error due to a failure encountered during the post-processing phase most often prints the generic error message as shown in paragraph 3.1, stating that the "Post-processing of request 3181529 failed". In others words, the OPP was invoked and the related errors will have been written in the corresponding log file. There are situations for which the concurrent manager process (FNDLIBR) does produce an XML data file but the post-processing of the request fails due to a different issue encountered, some of which the OPP does not even get invoked in the first place:

The Output Post Processor is not running or does not pick up the request:

... +------------- 1) PUBLISH -------------+ Unable to find an Output Post Processor service to post-process request 260006. Check that the Output Post Processor service is running. +--------------------------------------+ ...

The OPP log file cannot be determined using the SQL statement as described in paragraph 3.1 as the OPP did not perform any action of the given request. 1. Verify that the Output Post Processor is enabled and active. 2. If confirmed, retrieve the OPP log file either via the Forms application or via the Oracle Application Manager.

The Output Post Processor is running but has not picked up the request:

... +------------- 1) PUBLISH -------------+ The Output Post-processor is running but has not picked up this request. No further attempts will be made to post-process this request, and the request will be marked with Warning status. Setting the profile option Concurrent: OPP Response Timeout to a higher value may be necessary. +--------------------------------------+ ...

The OPP log file cannot be determined using the SQL statement as described in paragraph 3.1 as the OPP did not perform any action of the given request. See Note 352518.1 Concurrent Request Fails Due to Timeout of the Post Processing Action for more information. The concurrent manager has timed out waiting for the Output Postprocessor to finish this request.

... +------------- 1) PUBLISH -------------+ The concurrent manager has timed out waiting for the Output Pos t-processor to finish this request. Check that there are enough Output Post-processor service proce sses running. More information may be found in the service process logfile. +--------------------------------------+ ...

The concurrent manager process has successfully invoked the OPP but it a timeout is encountered as the OPP takes too long to complete the job. See Note 352518.1 Concurrent Request Fails Due to Timeout of the Post Processing Action for more information.

You might also like