Tuesday, April 3, 2018

C-runtime error in OBIEE 12c

Issue Description:

OBIEE dashboards are intermittently failing with C-runtime error occurred (std::bad_alloc).

You intermittently receive the follower error when accessing dashboards.
  
Error
Viewer Error Display
A C-runtime error occurred (std::bad_alloc)
Error Details
Error Codes: ILQWWCUT
  
  • The error may sometimes go away when when you refresh the browser.
  • The error may go away when you restart the Presentation Server.
  • The error at times seems random or intermittent.
  • The error may or could occur under a heavy concurrent user load.

This document describes some methods to correct or prevent this issue.


Solution 1:

Increase the Presentation Server cache entries in the instanceconfig.xml. 
Increasing the memory cache so new threads are not required so often for BI Server requests

<ServerInstance>
......
   <!-- Increasing the memory cache so new threads are not required so often for BI Server requests -->
  <!-- Increase the maximum age of the cache so that it does not need to refresh as often consuming a thread. -->
  <!-- MaxAgeMinutes default="0" -->
  <!-- Remove from the cache every thing older than N minutes -->
   <Cache>
     <CatalogXml>
       <!-- Remove from the cache everything older than N minutes -->
       <MaxAgeMinutes>240</MaxAgeMinutes>
       <MaxLastAccessedSeconds>14400</MaxLastAccessedSeconds>
     </CatalogXml>
     <Query>
       <MaxEntries>20000</MaxEntries>
       <AbsoluteMaxEntries>80000</AbsoluteMaxEntries>
       <CruiseEntries>10000</CruiseEntries>
       <ForceLRU>true</ForceLRU>
     </Query>
   </Cache>
.....
</ServerInstance>



Decrease the client expiration time in the instanceconfig.xml. 

<Cache>
    <MaxAgeMinutes>60</MaxAgeMinutes>
</Cache>



Solution 2:

Increase virtual memory map

As 'root' user:

Temporary change: /sbin/sysctl -w vm.max_map_count=262144

Permanent change: add to /etc/sysctl.conf

Consult your linux system administrator or documentation.