Time Slicing error 'Slice value is not valid range' message in the bg logs.

Document ID : KB000022709
Last Modified Date : 14/02/2018
Show Technical Document Details

Problem: 

Slice value is not valid range' message in the bg logs when the time slicing job runs.

Message is displayed in the logs when small values are unable to be inserted into the timeslice table because the value is beyond the precision that the table will store. This does not cause the job to fail.

Steps to Reproduce:

  1. Run Time Slicing Job 
  2. Check background (bg-ca.log) logs for errors 

Expected Results: No Errors
Actual Result: The following error in the logs:

WARN  2016-02-17 03:08:39,549 [Dispatch Thread-5515 : bg] niku.blobcrack
... Slice value is not in the valid range.  Object ID = 5014148
Request ID = 106 Date = 2014-08-23T00:00:00 Value = 3.280845143079422E-13

WARN 2016-02-17 21:23:28,771 [Dispatch Time Slicing : bg@localhost (tenant=ppm)] niku.blobcrack
... Slice value is not in the valid range. Object ID = 5002001
Request ID = 5000024 Date = 2016-02-01T00:00:00 Value = 0.0. Value will be set to 0

Cause: 

The total amount entered in the source field (stored on the BLOB field) is sliced into daily amounts based on the date range for the period.  If the resulting slice (daily) amount is a number that does not fit into the field definition precision, the amount cannot be stored. 

Resolution: 

The WARN Messages are useful to track down the data values that are causing the message to be generated.

Based on the message shown in the BG Log (Request ID = 106), you can determine what type of slice data to look for.

     SELECT * FROM PRJ_BLB_SLICEREQUESTS
     WHERE ID = 106

The results show the REQUEST_NAME = W_ALC

This is the Internal Weekly Allocation Slice Request. This Slice Request is automatically sliced when data is changed for a Project Team Member.
To locate the specific Allocation record instance, the 'Object ID' in the Warning Message can be used to query into the PRTEAM Table. The PRTEAM table holds the curve for Resource Allocations.
Based on the message shown in the BG Log (Object ID = 5014148), this query shows Project Team allocation record. (This query is applicable to this slice for allocations)

SELECT 
I.ID PROJECT_ID,
I.NAME PROJECT_NAME,
I.CODE PROJECT_CODE,
R.ID RESOURCE_ID,
R.UNIQUE_NAME RESOURCE_CODE,
R.FULL_NAME RESOURCE_NAME,
T.PRID TEAM_ID,
(T.PRALLOCSUM/3600) TEAM_ALLOCATION
FROM
INV_INVESTMENTS I,
PRTEAM T,
SRM_RESOURCES R
WHERE 1=1
AND I.ID = T.PRPROJECTID
AND T.PRRESOURCEID = R.ID
AND T.PRID = 5014148

You can then locate the Project and the Team Member in the application to view the original curve data and make adjustments.
Once you make adjustments, the slicing will attempt to crack the blob again and you can check the BG Log to see if the message persists.

This is just one example of how this message is useful for locating and resolving data issues. Other Slice Request IDs will correspond to different types of data and will require references to different tables and application UI pages. Use the Technical Reference Guide for additional information.

If the warning messages are suppressed in the CSA Log Configuration, turn the debug level to WARN so that you can see these messages. To suppress the warning messages set the debug level to ERROR and then only error messages will appear; no warning messages will appear for this component.

To configure the logs, please do the following.

  1. Go to CSA  
  2. Navigate to the Logs tab  
  3. Click Edit Configuration 
  4. Set the priority for com.niku.blobcrack component to debug level WARN to show the warning messages in the log OR set the priority to ERROR and this will suppress the 'WARN' messages  
  5. If the checkbox for "Detect Log Configuration Changes Automatically" is NOT checked, stop and restart the Background (BG) and Application (APP) services; otherwise please ignore this step