When you connecting to OBIEE from Tableau/Power BI/Qlik using BI Connector, reports/queries/data source that extract or query around a million records are intermittently failing with C-runtime error occurred (std::bad_alloc).
You intermittently receive the follower error in Tableau/Power BI/Qlik and also in BI Connector log file.
A C-runtime error occurred (std::bad_alloc)
- This error is due to OBIEE running out of resources to execute your query. It is not a BI Connector issue.
- The error may sometimes go away when when you reduce the number of rows or columns that you are fetching
- The error may go away when you restart the OBIEE Presentation Server.
- The error at times seems random or intermittent.
- The error may or could occur under a heavy concurrent user load.
This document suggests some methods to correct or prevent this issue. We also recommend that you consult your linux system administrator + documentation + file a service request with Oracle.
Please refer the folol article on minimizing c-runtime error using filters in Tableau Visualization tool: How to apply filter using BI Connector
Also refer the following article on how to apply row data filter using BI Connector: How to increase/decrease the number of rows fetched from OBIEE into Tableau or Power BI or Qlik Sense using BI Connector?
Increase the OBIEE Presentation Server cache entries in the instanceconfig.xml.
Increase the memory cache so new threads are not required so often for BI Server requests
<!-- 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 -->
<!-- Remove from the cache everything older than N minutes -->
Decrease the client expiration time in the instanceconfig.xml.
Increase virtual memory map
As 'root' user:
Temporary change: /sbin/sysctl -w vm.max_map_count=262144
Permanent change: add to /etc/sysctl.conf
Finally, as suggested earlier, please consult your linux system administrator + documentation + file a service request with Oracle.