This document contains official content from the BMC Software Knowledge Base. It is automatically updated when the knowledge article is modified.
TrueSight Capacity Optimization
TrueSight Capacity Optimization 11.3.01, 11.0, 10.7, 10.5, 10.3, 10.0 ; BMC Capacity Optimization 9.5
The TrueSight Capacity Optimization (TSCO) Near-real-time Warehouse service is alerting that there isn't a partition available for the data points that an ETL had tried to import.
For example errors like this:
(this is an error importing a business driver series)
or like this:
(this is an error importing system data)
One key point of the message is that the 'ts:YYYY-MM-DD HH:MM:SS.MS' part of the message reports a date in the future (in the above example error the year is 2031).
In the screenshot above the 'ts' is reported as the year 2033.
The problem is that the year in the timestamp of the data that is being imported is a future date that is being the latest data point that CO can import.
So, what TrueSight Capacity Optimization (TSCO) is saying is there isn't an existing partition to store that data since the metric timestamp is beyond the latest data point that TSCO can store in the SYS|WKLD_DATA_DETAIL.
Because the timestamp is wrong for several data points TSCO will assert an error for each problem data point.
Since this is just a problem with the timestamp associated with the incoming data so once the incoming data timestamp is corrected this error will stop being generated.
The following SQL should identify which ETL is importing the data from the distant future:
SELECT NAME FROM TASK WHERE SRCID IN (SELECT SRCID FROM SYS_DATA_STAGE where TS > sysdate + 5 GROUP BY SRCID);
That will pull the ETL SRC ID associated with all the records in the [SYS|WKLD]_DATA_STAGE table that have a TS greater than a week in the future.
Another option would be to query the TSCO database using the specific store-wkld object ID reported in the error message:
For example, to check what ETL has imported the data with the future time stamp using the object ID of the data run the following query:
select * from task where srcid in (select srcid from SYS_DATA_STAGE where sysobjid=2530943)
The object ID is available from the error message in the [store-wkld-########] part of the message. That number is the wkldobjid or sysobjid (from the error message).
SolutionIt is never appropriate for an ETL to import data points from the future into TSCO and thus it will be necessary to purge the data points from the [WKLD|SYS]_DATA_STAGE table to stop the error messages from being generated.
To delete the data points from the staging table the following SQL can be run as the CO Database Schema Owner (by default, BCO_OWN) database user:
To delete Business Drivers data:
delete from wkld_data_stage where ts>sysdate+5;
To delete Systems data:
delete from sys_data_stage where ts>sysdate+5;
That SQL will detect any data points in the staging area that have a timestamp of more than 5 days in the future.
It will also be necessary to determine why the ETL is importing data with future data points into CO. This is typically a problem with the source data that the ETL has been asked to import and usually needs to be investigated outside of TSCO.