1 Reply Latest reply on Dec 20, 2017 1:06 PM by Recursion

    LANDESK Inventory Server Error ID 4100

    dluera Rookie

      Ran into a huge backlog of scans and errorscans.  New machines were just not showing up.  So, we did some digging.  I found the following in the event logs :

       

      Database exception: SCAAE93.SCN, LDInv.dll

      -2147217833

      Arithmetic overflow error converting IDENTITY to data type int.

       

       

      Error comitting on table FILEINFOINSTANCE:   ARITHMETIC OVERFLOW ERROR CONVERTING IDENTITY TO DATA TYPE INT.

      Increased column size might be necessary, Thread ID: 2292.

       

      The FileInfoInstance_Idn field is an Int.  And we'd unfortunately run out of room.  We have our database in a cluster so using the CoreDBUtil.exe wasn't an option for us.  We did update the datamart.xml file for the FileInfoInstance table :

       

      <column name="FileInfoInstance_Idn" type="BigInt" identity="Yes" null="No" />

       

      I then fired up Microsoft SQL Server Management Studio (my database is named 'LDMS') and ran the following :

       

      USE [LDMS]
      GO
      ALTER TABLE [dbo].[FileInfoInstance] DROP CONSTRAINT [XPKFileInfoInstance]
      GO
      DROP INDEX [XIFFileInfoInstIdent] ON [dbo].[FileInfoInstance]
      GO
      alter table fileinfoinstance alter column FileInfoInstance_Idn bigint;
      ALTER TABLE [dbo].[FileInfoInstance] ADD  CONSTRAINT [XPKFileInfoInstance] PRIMARY KEY CLUSTERED
      (
      [Computer_Idn] ASC,
      [FileInfoInstance_Idn] ASC
      )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
      GO
      CREATE NONCLUSTERED INDEX [XIFFileInfoInstIdent] ON [dbo].[FileInfoInstance]
      (
      [FileInfoInstance_Idn] ASC
      )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
      GO
        • 1. Re: LANDESK Inventory Server Error ID 4100
          Recursion SupportEmployee

          Hi,

           

          Rather than modify the database schema for a core table that could break inventory completely, I would recommend preforming some cleanup on your database. Running out of the int space would require having more than 2 billion inventoried files, which is an egregious number that we haven't even seen environments with over 50,000 devices worth of inventory reach.

           

          This doc has a script that preforms such maintenance and, among other things, removes unneeded file entries from that table (i.e. ones not tied to anything and not used for any tracking).

           

          Changing the FileInfoInstance_Idn to a bigint can cause issues with the inventory service, the console, SLM, EPS, and various other parts of the product that may be reading that value in as a signed integer in the code itself, and will throw an unhandled exception when that causes an overflow there as well. And since that table is essentially the central repository for all file information collected, there are many parts of the product that use it. These modules are designed with the constraints of the DB in mind so that value checking doesn't need to be done on every single thing we touch.