TrueSight Capacity Optimization  -  ORA-02291 error when an ETL is inserting data

Version 3
    Share This:

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


    PRODUCT:

    TrueSight Capacity Optimization


    COMPONENT:

    Capacity Optimization


    APPLIES TO:

    TrueSight Capacity Optimization Capacity Optimization



    PROBLEM:

    In theory the error can be error can generated by any ETL and means that an hierarchy object required for the insert is missing.
     

    ORA-02291: integrity constraint (************) violated - parent key not found 
      
      It simply means that a parent object is missing, for example a VM is inserted without that the related parent host or cluster does existing in the hierarchy, but it could also means that a metric is imported without have the VM in the tree.

    To understand more about the error it is recommended to log to the ETL generated the error , to understand the Type of the ETL and  to check import log files and CSV files, and bad files.  

    Examples messages are blow, to the see only the  output files  in an ETL Log in the TrueSight Capacity Optimization Console  Filter out the Type of the messages to OUTPUT.
     
      
      
    > FAILED BCO_ETL_ERR117: Loader - dataset OBJREL - [ORA-02291] count: 4 > FAILED Load completed with exit code 2. Check /opt/bmc/cpit/etl/output/OBJRELQBOC159156.ctl.log for additional details. Rejected samples are stored in /opt/bmc/cpit/etl/output/OBJRELQBOC159156.bad file. > OUTPUT [OracleCTLL] /opt/bmc/cpit/etl/output/OBJRELQBOC159156.ctl;/opt/bmc/cpit/etl/output/OBJRELQBOC159156.ctl.log;/opt/bmc/cpit/etl/output/OBJRELQBOC159156.bad
      
      

     


    SOLUTION:

    The Solution depends on the type of the ETL

    - If this is the OBREL ETL, or a custom ETL the hierarchy to import is not complete, there is a child parent relation missing, TrueSight Capacity Optimization tries to import a object but this fails because a parent is missing. It is required to research the output files to understand what is missing and to change the custom ETL  or OBJREL ETL to import the complete hierarchy.

    - If this error did happen with the vCenter ETL it could be related with a Reconcile or Auto Reconcile of Duplicates run when the ETL has imported the metrics. The following actions in vCenter could cause this VMs detected as duplicates which can be reconciled.
     

       
    • VM is moved cross vCenters
    •  
    • VMs are cloned, or backup are taken.
    •  
    • Multiple offboarding – onboarding on vCenter for the same VM
      
      
    The vCenter ETL is loading the lookup in memory, when a Reconcile or Auto Reconcile is running this changes the Hierarchy but the ETL is using still the old lookup and the imports of objects go reconciled failed. An improvement was created to improve that situation to not show the error, rather warning and  to consider ways to avoid this error related with Reconcile. 

    Determine first if related with the Reconcile, the Error should be in the ETL around the time when manually Reconcile of the VMware Reconcile System Task did run, consider time difference bet when the EE server running the ETL  and the Primary Scheduler, which may not run in the same timezone. If the error does happen frequently it is recommend to check what duplicate systems are detected and analyze the systems which get reconciled, if Auto Reconcile is running it might be worth to stop and check the Detected Duplicates on the vCenter ETL task manually. Because this GUI screen is in better format in any logs. 

    A typical use case is a backup cloning of VMs, when cloning a VMs as backup this creates a new VM with a new ID. When creating a new clone again this creates again a new ID. TSCO is detecting this cloned VMs as duplicates of other VM and even if the backup VM are not running TSCO is inserting some configuration, but in that scenario for the old clone of the VM which was reconcile to the new clone. 

    For the cloning scenario the best approach is  to exclude the VMs from monitoring, they are not running and the storage consumption is determined over the DataStore, an other approach would be to use Snapshot for backup feature. If the cloned VMs  have a specific string like "_backup" or "clone" without the double quote a White List file  with an inverted regular expression can be used. 

    For example create a Whitelist file in the EE server with this content would monitor all VMs except VMs  whith the name string _backup. 

    #FORMAT=V2;TYPE=VM_WHITELIST 
    ^((?!.*backup.*).)*$ 

    For more details  about White list see the product documentation and search for VCenter ETL and look for Import Fiter. 
      

     


    Article Number:

    000125414


    Article Type:

    Solutions to a Product Problem



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