CO component out of memory failure after long uptime when using Oracle client version 11.2 - 12.1

Version 5

    This document contains official content from the BMC Software Knowledge Base. It is automatically updated when the knowledge article is modified.


    TrueSight Capacity Optimization


    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):
    StackTrace: com.neptuny.cpit.querymanager.QueryException: [java.sql.SQLException] - Protocol violation: [6, 7, 2]  
    • 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: Received Error code '503 Service unavailable' while calling RESTful web service - headers: Connection=close

    User-added image

    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 :



    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.

    Patch instructions:

    (1) Download the ojdbc8.jar Oracle JDBC driver for Oracle 12.2 from here
    (2)  Copy and rename the ojdbc8.jar from the patch package to $ORACLE_HOME/jdbc/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


    Article Number:


    Article Type:

    Solutions to a Product Problem

      Looking for additional information?    Search BMC Support  or  Browse Knowledge Articles