Friday, December 2, 2016

EBS R12 -- MISSING CHARTS in XML PUBLISHER / BI PUBLISHER REPORTS -- Enabling XDO DEBUG log

In an EBS 12.1 environment, we encountered a strange problem in one of our custom XML/BI Publisher reports.
The problem was in the output. Actually the output could be created but the graphs, that needed to be embedded to the output, were not there.
In other words, rather than the dynamic graphs, there was empty spaces in the PDF output of our custom XML Publisher report.

So we named the problem as  "PROBLEM:GRAPHS MISSING IN XML PUBLISHER(BI PUBLISHER) reports"

We checked the concurrent request and OPP logs.. All were clean.. --no errors.

Then, we enabled debug for XDO log by following the steps below;

  • Connect to the apps node
  • Create $XDO_TOP/temp and $XDO_TOP/resource directories
  • Create an xdodebug.cfg file in $XDO_TOP/resource directory
  • Add the following lines to the xdodebug.cfg
    •     LogLevel=STATEMENT 
    •     LogDir=[full XDO_TOP]/temp  (we use the full path of XDO_TOP here)
  • Restart the Apache

Next, we resubmitted the report and checked the xdo.log.

XDO.LOG contents:

120216_031530408][][ERROR] java.lang.NullPointerException
        at javax.swing.MultiUIDefaults.getUIError(MultiUIDefaults.java:117)
        at javax.swing.UIDefaults.getUI(UIDefaults.java:741)
        at javax.swing.UIManager.getUI(UIManager.java:1012)
        at javax.swing.JPanel.updateUI(JPanel.java:109)
        at javax.swing.JPanel.<init>(JPanel.java:69)
        at javax.swing.JPanel.<init>(JPanel.java:78)
        at oracle.dss.dataView.Dataview.<init>(Dataview.java:198)
        at oracle.dss.graph.Graph.<init>(Graph.java:196)
        at sun.reflect.GeneratedConstructorAccessor31.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at oracle.apps.xdo.template.rtf.img.RTFChartUtil.generateChartAsBase64(RTFChartUtil.java:186)
        at oracle.apps.xdo.template.rtf.XSLTFunctions.chart_svg(XSLTFunctions.java:175)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        --output truncated

We analyzed the XDO debug log and concluded that our search keyword should be the oracle.dss.graph.Graph.<init>, as all the other lines in the error/call stack were generic..
Also, as we were dealing with a graph problem, why not searching for something related with graph.. (something related with drawing the graphs in java:)

SUPPORT SEARCH KEYWORD :

oracle.dss.graph.Graph.<init>

Once we did our search, we reached the applicable document. Note that, this environment was 12.1

SOLUTION DOCUMENT:

R12 BI Publisher reports with graph included fail with error "String index out of range: -1" (Doc ID 1251964.1)

This time , the solution was applying the patch "Patch 10192670 - 12.1.4:10192626 FORWARD PORT: BI 3.1.1.11 :GRAPH IS NOT WORKING ON 64 BIT LINUX", as our BI Bean version was not the up-to-date one.
(we checked it by the command "cat $COMMON_TOP/java/classes/oracle/dss/graph/version.txt" and  saw that it was 3.1.1.10, not 3.1.1.11)

--Important note, in order to put graphs to our reports, apps tier should be able to open X sessions. That means, we need to have a X server (i.e vncserver) running from the DISPLAY where our concurrent manager 's are configured. (DISPLAY env variable defined in adcmctl.sh).. Also we need to give permission to our apps Os user to use that DISPLAY.  (I'm talkin about xhost + here...)

No comments :

Post a Comment