Monday, December 5, 2011

Displaying Data Labels Inside the Vertical Bars on the Bar Chart Graph

There was a requirement for us where we needed to show the data labels inside the vertical bar graph. In OBIEE, by default it is set as on the top of each bar.


Data Labels position can be modified using editing pcxml Files which contain formats for Charts.

Update the  file column.pcxml ( this is the file for the Bar Charts) with "i
nsideBottom" .

This is the tag ,we need to update in the pcxml file:

<DataLabels Font='Size:9;Style:Bold;' Position='InsideBottom' TransparentBackground='False' BGColor='#FFFFFFcd' BorderType='None' /> 
ml files, then stop and restart the BI JavaHost and BI processes.

For a Bar Chart the File to modify is column.pcxml

This file must be found in 2 locations ,
1.- Back Up the files before modifying them
2.- <OracleBI>\web\app\res\<s_style>\charts
Example: C:\OracleBI\web\app\res\s_oracle10\popbin
3.- In the folder where the Projhect has been deployed in the app server
Example :C:\OracleBI\oc4j_bi\j2ee\home\applications\analytics\analytics\res\s_oracle10\popbin
4.-After this BI Services, Application Services and Javahost Service must be restarted
 

Printing A Large OBIEE Answers Report Or Dashboard To PDF Fails With Error Code

I got the following  Fatal error message when I was  trying to print a large report to PDF.

Error Codes: AGEGTYVF

A fatal error occurred while processing the request.
The server responded with: Error while executing PDFRpcCall.processMessage com.siebel.analytics.utils.InputStreamWithLimit$ReadOverTheLimitException at com.siebel.analytics.utils.InputStreamWithLimit.incTotalBytes(InputStreamWithLimit.java:58) at com.siebel.analytics.utils.InputStreamWithLimit.read(InputStreamWithLimit.java:41) at com.siebel.analytics.utils.IOUtils.copyStreams(IOUtils.java:38) at com.siebel.analytics.utils.IOUtils.copyStreams(IOUtils.java:28) at com.siebel.analytics.web.javahostrpccalls.xmlp.XmlpAbstractRpcCall.processMessageInternal(XmlpAbstractRpcCall.java:40) at com.siebel.analytics.javahost.AbstractRpcCall.processMessage(AbstractRpcCall.java:94) at com.siebel.analytics.javahost.MessageProcessorImpl.processMessage(MessageProcessorImpl.java:175) at com.siebel.analytics.javahost.Listener$Job.run(Listener.java:223) at com.siebel.analytics.javahost.standalone.SAJobManagerImpl.threadMain(SAJobManagerImpl.java:205) at com.siebel.analytics.javahost.standalone.SAJobManagerImpl$1.run(SAJobManagerImpl.java:153) at java.lang.Thread.run(Thread.java:595)

It is a known bug in OBIEE and Oracle support team has provided with the following  solution.

Note: Reverse the slashes for a Linux/Unix platform.


  1. Modify <oracle_home>\OracleBIData\web\config\instanceconfig.xml and add the <JVMOptions> tag to increase JVM heap size :
<JavaHome>C:\Program Files\Java\jdk1.5.0_16</JavaHome>
<JavaHost>
<JVMOptions>-Xms256m -Xmx512m </JVMOptions>
</JavaHost>

  1. Modify <oracle_home>\OracleBI\web\javahost\config\config.xml 

    There are two locations of 
    <InputStreamLimitInKB>. One location is inside the <PDF> tag and another is inside the <XMLP> tag. For OBIEE (10.1.3.x), the correct tag for <InputStreamLimitInKB> is <XMLP>.

    Increase the value of 
    <InputStreamLimitInKB> inside the <XMLP> tag from default value (8192kb - 8MB) to 14336.

    For example: 
<PDF>
<!-- Size limit for PDF request message -->
<InputStreamLimitInKB>2048</InputStreamLimitInKB>
<!-- Path to PDF userconfig.xml file. -->
<!-- <UserConfigFile/> -->
</PDF>
...
<XMLP>
<InputStreamLimitInKB>14336</InputStreamLimitInKB>
</XMLP>

  1. After modifying the xml files, then stop and restart the BI JavaHost and BI processes
  2. Retest the problematic report and observe the outcome. Adjust if necessary in small increments.
Note: An appropriated number of <InputStreamLimitInKB> is not a magic number and you may have to try to tune it to suite your environment.
<InputStreamLimitInKB> when it is set to 0 (zero) equals unlimited; however, unlimited is not recommended. The <InputStreamLimitInKB> was designed to be a governor to prevent system overload.