Вы находитесь на странице: 1из 13

BI Publisher - Troubleshooting Oracle Business Intelligence

(XML) Publisher For The Oracle E-Business Suite (Doc ID


364547.1)

In this Document
Purpose
Troubleshooting Steps
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
6. Valuable Self-Service Resources
7. Community Discussions
References

Applies to:
BI Publisher (formerly XML Publisher) - Version 11.5 and later
Oracle Inventory Management - Version 12.1.3 to 12.1.3 [Release 12.1]
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 E-Business Suite 11i, Release 12.0 and 12.1.

Troubleshooting Steps
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
o 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.
2.3 All other situations
o 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:

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
o 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:
...
+------------- 1) PUBLISH -------------+
Beginning post-processing of request 3181529 on node PBREUGEL at 11-APR2008 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 service log for deta
ils.
+--------------------------------------+
...

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.
o 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:
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, 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

Note: The SQL statement will only return data for those Concurrent
Requests having a Layout specified (Upon Completion... window).
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
3. 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
o (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 ..." --> from the LOV, 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_queues fcq, fnd_
cp_services fcs
where fcs.service_handle = 'FNDOPP' and fcs.service_id = fcq.manag
er_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.concurr
ent_process_id);
fnd_cp_opp_ipc.send_command(crec.concurrent_process_id, 'sqlplus',
'oracle.apps.fnd.cp.opp.OPPSetDebugCommand', '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
o Single step and two step publishing method, with concurrent processing:

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=[enter full path to XDO_TOP here]/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.
o Direct report publishing via the XML Publisher Core APIs, without concurrent
processing:
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=[enter full path to XDO_TOP here]/temp
4. Restart the Apache server.
5. Reproduce the problem.
Note: The xdodebug.cfg file can also be created in the
$OA_JRE_TOP/jre/lib directory.
o 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/jre/lib/rt.jar]
[Opened /oracle/vispb12/apps/tech_st/10.1.3/appsutil/jdk/jre/lib/jsse.jar]
[Opened /oracle/vispb12/apps/tech_st/10.1.3/appsutil/jdk/jre/lib/jce.jar]
[Opened /oracle/vispb12/apps/tech_st/10.1.3/appsutil/jdk/jre/lib/charsets.
jar]
[Loaded sun.reflect.misc.ReflectUtil from /oracle/vispb12/apps/tech_st/1
0.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=[enter full path to XDO_TOP here]/temp
6. Reproduce the problem.
o 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 in
Note 362496.1 How to Determine the Version of Oracle XML Publisher for Oracle EBusiness Suite 11i and Release 12.

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', 'Templ

ate',
'???') "LEVEL",
DECODE (TO_CHAR (xcv.config_level), '10', '',
'30', xd.application_short_name || '|' || xd.data_source_code,
'50', xt.application_short_name || '|' || xt.template_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_application fa1, fnd_application_
tl fat1
WHERE fa1.application_id = fat1.application_id AND fat1.LANGUAG
E = '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_source_code AND xdt.LANGU
AGE = 'US'),
'50', (SELECT fat2.application_name || '|' || xtt.template_name
FROM xdo_templates_tl xtt, fnd_application fa2, fnd_application_tl fat
2
WHERE fa2.application_id = fat2.application_id AND fat2.LANGUAG
E = '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_templates_b xt
WHERE xcp.property_code = xcpt.property_code AND xcpt.LANGUAGE = 'US'
AND xcv.property_code = xcp.property_code
AND xd.application_short_name(+) = xcv.application_short_name
AND xd.data_source_code(+) = xcv.data_source_code
AND xt.application_short_name(+) = xcv.application_short_name
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 postprocessing 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 ma
rked
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 Post-processor to finish
this request.
...
+------------- 1) PUBLISH -------------+

The concurrent manager has timed out waiting for the Output Post-processor to finish th
is request.
Check that there are enough Output Post-processor service processes 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.

6. Valuable Self-Service Resources


Below is a list of available resources that might provide a solution to the issue encountered:

BI Publisher Community on My Oracle Support


https://community.oracle.com/community/support/oracle_e-business_suite/bi_publisher

My Oracle Support Knowledge Content


http://support.oracle.com/

BI Publisher Documentation on OTN


http://www.oracle.com/technology/products/xml-publisher/xmlpdocs.html

BI Publisher Blog
http://blogs.oracle.com/xmlpublisher

Oracle BI Publisher Consulting


http://bipconsulting.blogspot.com/

BI Publisher Forum on OTN


http://forums.oracle.com/forums/forum.jspa?forumID=245

The best search results are retrieved when using specific keywords which are directly related to
the issue such as:

Java exceptions: oracle.xdo.parser.v2.XMLParseException,


java.lang.NullPointerException , ...

Keywords describing the failing process: OPP, XDOREPPB, Bursting, ...

Use the Advanced Search feature on My Oracle Support to refine the search results to the
product named 'BI Publisher (formerly XML Publisher)'.

Join our Oracle BI Publisher Community to discuss further with other Oracle BI Publisher
Experts and learn more from your peers.
For more information on BI Publisher Product documentation, Announcements, Hot Topics,
Community, Blog and Training details. Take a look at the Oracle BI Publisher (BIP) Product
Information Center (PIC) (Doc ID 1338762.1).

7. Community Discussions
Still have questions? Use the live My Oracle Support BI Publisher Community window below,
to search for similar discussions or start a new discussion on this subject.

Вам также может понравиться