This document contains official content from the BMC Software Knowledge Base. It is automatically updated when the knowledge article is modified.
TrueSight Capacity Optimization
TSCO version 10.x, 11.x running with the Oracle version 11.2.X 12.1 client
In TrueSight Capacity Optimization, the components fail with a Java Out of Memory (java.lang.OutOfMemoryError: GC overhead limit exceeded) error after running for some time. Increasing the Java Heap Size does not appear to prevent the problem (although it may increase the length of time between component failures).
- A typical symptom of this problem will be errors in cpit.log (for Web or Datahub or Scheduler components):
- Another typical symptom of this problem will be errors in the Backend Services status screen for Datahub
DYNAMIC Protocol violation [5,] sql code: select * from dual
BCO_DH_ERR011: com.bco.rest.client.RestCommunicationException: Received Error code '503 Service unavailable' while calling RESTful web service - headers: Connection=close
After a certain amount of uptime the component java heap is filled, since the Oracle jdbc driver does not release all the memory but leaves some connection handlers open.
Oracle driver bug: PROBLEM id=1901449.1 this is documented in Metalink : https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=465114073877748&parent=EXTERNAL_SEARCH&sourceId=PROBLEM&id=1901449.1&_afrWindowMode=0&_adf.ctrl-state=oyf9f1fux_85
The memory leak is within the Oracle Client that is installed on the TrueSight Capacity Optimization Application Server
This problem exists in the Oracle 12.1.x client library package but does not appear to have been addressed in the latest Oracle 12.1.x client library package installation. But, the Oracle 12.2 JDBC client library package can be used and the ojdb*.jar files can be copied into the Oracle 12.1.x client installation directory.
(1) Download the ojdbc8.jar Oracle JDBC driver for Oracle 12.2 from here http://www.oracle.com/technetwork/database/features/jdbc/jdbc-ucp-122-3110062.html
(2) Copy and rename the ojdbc8.jar from the patch package to $ORACLE_HOME/java/lib/ojdbc7.jar. The reason is that CO doesn't recognize the ojdbc8.jar version of the driver (which has been renamed by Oracle), but renaming it to ojdbc7.jar will allow CO to interface with it properly.
(3) Restart the CO components to apply changes