SCCM Secondary Site Client Inventory Runs, but BADMIF gets generated
Configured a Virtual Lab environment with 1 DC, 1 Central SMS 2003 Site, 1 SMS 2003 Primary Site, 1 XP Workstation on Subnet A and 1 SMS 2003 Seconardy Site and 2 XP Workstations on Subnet B to practice upgrade in place to SCCM 2007 SP1 with R2. SMS 2003 site was working successfull on all aspects. Upgraded to SCCM 2007 SP1 and R2 from a TOP down approach. Hardware Inventory was running fine from the SMS 2003 Secondary Site, until it was upgrade to SCCM 2007 SP1 and R2 was installed manually. The Harwdware Inventory Runs, but fails to get processed by the Inventory Data Loader and generates a bad MIF.
Processing Inventory for Machine: SCMGTLATA01 Version 0.0 Generated: 07/28/2009 00:30:34 $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.431 2009 Pacific Daylight Time><thread=1688 (0x698)>
CGroup::DefineAttributes - will widen MICROSOFT|INSTALLED_SOFTWARE|1.0 column ARPDisplayName from 64 to 72 $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.431 2009 Pacific Daylight Time><thread=1688 (0x698)>
STATMSG: ID=2716 SEV=I LEV=M SOURCE="SMS Server" COMP="SMS_INVENTORY_DATA_LOADER" SYS=SCSMSPRISAC01 SITE=P3Z PID=5740 TID=1688 GMTDATE=Tue Jul 28 07:31:42.446 2009 ISTR0="MICROSOFT|INSTALLED_SOFTWARE|1.0" ISTR1="ARPDisplayName" ISTR2="64" ISTR3="72" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=0 $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.446 2009 Pacific Daylight Time><thread=1688 (0x698)>
CGroup::DefineAttributes - will widen MICROSOFT|INSTALLED_SOFTWARE|1.0 column LocalPackage from 32 to 40 $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.446 2009 Pacific Daylight Time><thread=1688 (0x698)>
STATMSG: ID=2716 SEV=I LEV=M SOURCE="SMS Server" COMP="SMS_INVENTORY_DATA_LOADER" SYS=SCSMSPRISAC01 SITE=P3Z PID=5740 TID=1688 GMTDATE=Tue Jul 28 07:31:42.446 2009 ISTR0="MICROSOFT|INSTALLED_SOFTWARE|1.0" ISTR1="LocalPackage" ISTR2="32" ISTR3="40" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=0 $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.446 2009 Pacific Daylight Time><thread=1688 (0x698)>
CGroup::DefineAttributes - will widen MICROSOFT|INSTALLED_SOFTWARE|1.0 column ProductName from 64 to 72 $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.446 2009 Pacific Daylight Time><thread=1688 (0x698)>
STATMSG: ID=2716 SEV=I LEV=M SOURCE="SMS Server" COMP="SMS_INVENTORY_DATA_LOADER" SYS=SCSMSPRISAC01 SITE=P3Z PID=5740 TID=1688 GMTDATE=Tue Jul 28 07:31:42.446 2009 ISTR0="MICROSOFT|INSTALLED_SOFTWARE|1.0" ISTR1="ProductName" ISTR2="64" ISTR3="72" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=0 $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.446 2009 Pacific Daylight Time><thread=1688 (0x698)>
CGroup::DefineAttributes - Detected schema change. Waiting for the threads to finish the queue. $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.446 2009 Pacific Daylight Time><thread=1688 (0x698)>
Thread 1688 has been granted exclusive access. $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.446 2009 Pacific Daylight Time><thread=1688 (0x698)>
CGroup::DefineAttributes - Proceeding with schema change. $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.446 2009 Pacific Daylight Time><thread=1688 (0x698)>
*** ALTER TABLE dbo.INSTALLED_SOFTWARE_DATA ALTER COLUMN ProductName00 varchar(72) NULL $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.665 2009 Pacific Daylight Time><thread=1688 (0x698)>
*** [42000][5074][Microsoft][ODBC SQL Server Driver][SQL Server]The index 'sw_data_idx1' is dependent on column 'ProductName00'. $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.665 2009 Pacific Daylight Time><thread=1688 (0x698)>
*** ALTER TABLE dbo.INSTALLED_SOFTWARE_DATA ALTER COLUMN ProductName00 varchar(72) NULL $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.681 2009 Pacific Daylight Time><thread=1688 (0x698)>
*** [42000][4922][Microsoft][ODBC SQL Server Driver][SQL Server]ALTER TABLE ALTER COLUMN ProductName00 failed because one or more objects access this column. $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.681 2009 Pacific Daylight Time><thread=1688 (0x698)>
CDefinedGroup::WidenDefinedAttribute - could not change data type. $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.681 2009 Pacific Daylight Time><thread=1688 (0x698)>
CGroup::DefineAttributes - unable to widen attributes $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.696 2009 Pacific Daylight Time><thread=1688 (0x698)>
CGroup::DefineGroupAndAttributes - couldn't define attributes for MICROSOFT|INSTALLED_SOFTWARE|1.0 $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.696 2009 Pacific Daylight Time><thread=1688 (0x698)>
CMachineSource::InsertMachine - could not validate machine $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.696 2009 Pacific Daylight Time><thread=1688 (0x698)>
~Cannot process MIF XHYVL5UPD.MIF, moving it to C:\SMS\inboxes\auth\dataldr.box\BADMIFS\kepmzty1.MIF $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.696 2009 Pacific Daylight Time><thread=1688 (0x698)>
STATMSG: ID=2703 SEV=W LEV=M SOURCE="SMS Server" COMP="SMS_INVENTORY_DATA_LOADER" SYS=SCSMSPRISAC01 SITE=P3Z PID=5740 TID=1688 GMTDATE=Tue Jul 28 07:31:42.696 2009 ISTR0="XHYVL5UPD.MIF" ISTR1="C:\SMS\inboxes\auth\dataldr.box\BADMIFS\kepmzty1.MIF" ISTR2="" ISTR3="" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=0 $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.696 2009 Pacific Daylight Time><thread=1688 (0x698)>
Thread 1688 releasing exclusive access from SetJobCompleted. $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.696 2009 Pacific Daylight Time><thread=1688 (0x698)>
Done: Machine=SCMGTLATA01(GUID:6BB3470B-A8A3-48AD-BDA5-47C145384F65) code=4 (0 stored procs in XHYVL5UPD.MIF) $$<SMS_INVENTORY_DATA_LOADER><Tue Jul 28 00:31:42.696 2009 Pacific Daylight Time><thread=1688 (0x698)>
The only thing I see from the MICRSOFT|INSTALLED_SOFTWARE entry in the MIF that is longer than 64 CHAR is "Microsoft System Center Configuration Manager 2007 Secondary Site" which is 65 char in length.
The client is working fine and so is Software Updates. I have attempted to remove/reinstall the SCCM client, but it makes no difference on the Inventory Loader trying to process the mif.
Matt
Answers
This solution was provided by Microsoft. When I called the ticket in there had only be 1 only ticket documented. The issue was the Installed_Software_Table_Data wasn't properly upgraded in the migration process from SMS 2003 to SCCM 2007. This only occured in my lab environment. I didn't have this issue when upgrading my produciton environment.
Matt- Marked As Answer byWallyMSFT, OwnerThursday, October 29, 2009 2:55 AM
All Replies
- Re-Installing the client is the wrong approach. The actual problem is "*** [42000][4922][Microsoft][ODBC SQL Server Driver][SQL Server]ALTER TABLE ALTER COLUMN ProductName00 failed because one or more objects access this column."
I haven't seen this error yet so I can't provide detailed troubleshooting tips, but you should start looking on the SQL side. - Does it occur on all clients, or just one? If all then it could be SQL Server as Torsten says.
If it works on other clients, then something to do with that client's inventory. You could delete the client from the site (from any collection and that would remove it from the database), then have it send in inventory again. The first one would fail, as it would be a delta inventory and there would not be a full inventory yet as you had just deleted the client, so it's inventory was removed as well. But this will send a resync policy to the client, so it should then send in a new full inventory.
To me, that column looks to be related to Asset Intelligence data. Do you have that enabled? If so, and it affects all clients, you could possibly try to disable Asset Intelligence (from the Asset Intelligence node under Computer Management), let clients get the policy to disable AI, then enable it again, retrieve policies again, then try another hardware inventory event.
Wally Mead Any update on the issue? It has been a few weeks now.
Wally MeadSolution was as follows
1) Make sure you have a good backup of the database.
2) Go into SQL Management Studio and navigate to your SMS Database at this site
3) Stop the SMS services.
4) Navigate to the Installed_Software_Data table and delete it. (right click)
5) Use the following query to re-create the table and the associated indexes.
(change to your db name on the first line. (SCCMDATABASE)USE [SCCMDATABASE]
GO
/****** Object: Table [dbo].[INSTALLED_SOFTWARE_DATA] Script Date: 09/16/2008
22:38:58 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING OFF
GO
CREATE TABLE [dbo].[INSTALLED_SOFTWARE_DATA](
[MachineID] [int] NOT NULL,
[InstanceKey] [int] NOT NULL,
[RevisionID] [int] NOT NULL,
[AgentID] [int] NULL,
[TimeKey] [datetime] NOT NULL,
[SoftwareCode00] [varchar](255) NULL,
[InstallType00] [int] NULL,
[ProductCode00] [varchar](255) NULL,
[CM_DSLID00] [varchar](255) NULL,
[ProductName00] [varchar](255) NULL,
[ARPDisplayName00] [varchar](255) NULL,
[ProductVersion00] [varchar](32) NULL,
[Publisher00] [varchar](255) NULL,
[VersionMajor00] [int] NULL,
[VersionMinor00] [int] NULL,
[ServicePack00] [varchar](8) NULL,
[Language00] [int] NULL,
[ProductID00] [varchar](48) NULL,
[InstalledLocation00] [varchar](255) NULL,
[InstallSource00] [varchar](255) NULL,
[UninstallString00] [varchar](255) NULL,
[LocalPackage00] [varchar](255) NULL,
[UpgradeCode00] [varchar](48) NULL,
[InstallDate00] [datetime] NULL,
[RegisteredUser00] [varchar](255) NULL,
[SoftwarePropertiesHash00] [varchar](48) NULL,
[SoftwarePropertiesHashEx00] [varchar](48) NULL,
[InstallDirectoryValidatio0] [int] NULL,
[EvidenceSource00] [varchar](32) NULL,
[rowversion] [timestamp] NOT NULL,
CONSTRAINT [INSTALLED_SOFTWARE_DATA_PK] PRIMARY KEY CLUSTERED
(
[MachineID] ASC,
[InstanceKey] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]GO
SET ANSI_PADDING OFF6) Restart the SMS services
7) Monitor the dataldr.log as well as the databldr.box for MIF files being processed correctly.
Matt- Proposed As Answer byJohn MarcumMVPThursday, October 22, 2009 1:58 AM
- Unproposed As Answer byWallyMSFT, OwnerSaturday, October 24, 2009 5:28 PM
- It's totally unsupported to alter/edit the database directly. Was it also pegging the CPU at 100% for a long time before the mif was marked as bad? There's a hotfix for that.
John Marcum | http://www.TrueSec.com/en/Training.htm | http://myitforum.com/cs2/blogs/jmarcum - Sorry, I'm unmarking this post as the answer, as we do not support modifying the database directly. The correct answer is NOT to do this. You'd need to try the other options listed by Torsten and myself.
Wally Mead - It depends on the reason why the 100% spike, there are a few differnt issues that are fixed in SP2 for 100% CPU utilization.
Wally Mead This solution was provided by Microsoft. When I called the ticket in there had only be 1 only ticket documented. The issue was the Installed_Software_Table_Data wasn't properly upgraded in the migration process from SMS 2003 to SCCM 2007. This only occured in my lab environment. I didn't have this issue when upgrading my produciton environment.
Matt- Marked As Answer byWallyMSFT, OwnerThursday, October 29, 2009 2:55 AM
- As a reminder, it is good practice, and helps us out a lot, if you remember to mark the appropriate post as the answer. That way we all know it is answered, and can find the correct answer when searching :-)
Glad you got it working.
Wally Mead

