DESCRIPTION
Applies to:LDMS 9.0. Read the additional notes section for 8.8
Some Windows 7 Machines are not showing up in the All Devices window and the Event Viewer Application Log shows the following two errors:
Error Messages:
Data provider or other service returned an E_FAIL status.
The DELETE statement conflicted with the REFERENCE constraint R_LanDesk.
CAUSE
One of the columns of data the scan file is trying to insert into the database is larger than the column size allows. The Windows OS will not allow a path be set up to 255 characters, therefore this is the setting for the path value length in the database. Offending machines are actually sending in invalid paths which exceed that limitation and appear like the following:
(Path:C:\\USERS\\ALL USERS\\SOPHOS\\AUTOUPDATE\\CACHE\\SAVXP\\PROGRAM FILES\\SOPHOS\\SOPHOS ANTI-VIRUS\\MODULE RETARGETABLC:\WINDOWS.OLD.000\USERS\USERNAME.LOCATION\APPDATA\LOCAL\APPLICATION DATA\APPLICATION DATA\APPLICATION DATA\APPLICATION DATA\APPLICATION DATA\APPLICATION DATA\APPLICATION DATA\APPLICATION DATA\APPLICATION DATA\APPLICATION DATA\TEMP\MPT_SETUPFILES_ENG\BOOT\START.EXE...\BOOT\START.EXE)
In Windows 7 we are seeing affect the FILEINFOINSTANCE table in the PATH column. The PATH column by default accepts 255 characters.
RESOLUTION
Apply 9.0 SP1 followed by patch INV-4197390.1-2 to the core. Redeploy the agent to affected machines.
Contact support requesting this patch. The scanner contained in the patch is version 9.0.1.25.
Note: This error message has been seen once inserting into a table which was not changed/fixed by the patch. Therefore the inventory rolling log had to be reviewed by support and the database updated to allow the scan to process.
Workaround: (for those who are not able to upgrade or patch)
Using SQL Studio Manager, edit the FILEINFOINSTANCE table setting the PATH column from nvarchar(255) to nvarchar(MAX).Save the changes and press YES or OK to any ANSI-PADDING messages.
ADDITIONAL NOTES
This kind of errors can be caused by altering the advanced inventory setting "Max Value Size" increasing it to a value major than 255.
That setting tells to the Inventory Service to allow inventory fields up to the value of the parameter (maximum 4096).
Increasing this settings may lead to E_FAIL errors because the fact that the Inventory Service is accepting field longer than 255 characters does not automatically imply that the database is ready to accept them.
If you want to tweak this parameter analyze your scans and find out which field will need to contain more than 255 characters so you can extend it accordingly to your needs.
You can help yourself in findign which table is involved enabling temporarly the Rolling Logs (always in the Advanced Settings or the Inventory Service)