This article has been archived. It is offered "as is" and will no longer be updated.
In Microsoft BizTalk Server 2004, the Microsoft SQL Server Agent job TrackedMessages_Copy_BizTalkMsgBoxDb fails and you receive an error message that is similar to the following:
Cannot insert the value NULL into column 'uidBodyPartID', table 'BizTalkMsgBoxDb.dbo.Tracking_Spool1'; column does not allow nulls.
This problem occurs because the uidBodyPartID column in the Tracking_Spool1 and Tracking_Spool2 tables in the BizTalk Server MessageBox database should allow NULL values because this value may be null under some conditions.
Service pack information
To resolve this problem, obtain the latest service pack for Microsoft BizTalk Server 2004. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
888751 How to obtain the latest BizTalk Server 2004 service pack
Other resolution information
To resolve this problem, configure the uidBodyPartID column in the Tracking_Spool1 and Tracking_Spool2 tables in the BizTalk Server MessageBox database to allow NULL values. To do this, follow these steps:
Temporarily stop and disable the TrackingSpool_Cleanup_BizTalkMsgBoxDb SQL Server Agent job. To do this, follow these steps:
Click Start, point to Programs, point to Microsoft SQL Server, and then click Enterprise Manager to start the SQL Enterprise Manager.
Expand the SQL Server group, expand the SQL Server, expand Management, expand SQL Server Agent, click Jobs, right-click the TrackingSpool_Cleanup_BizTalkMsgBoxDb job, and then click Stop Job.Then, right-click the TrackingSpool_Cleanup_BizTalkMsgBoxDb job, and then click Disable Job.
Start SQL Query Analyzer, and then connect to the SQL Server that houses your BizTalk Server 2004 MessageBox database. You can start SQL Query Analyzer on the Tools menu in SQL Enterprise Manager.
Paste the following SQL statements in the Query window of the SQL Query Analyzer:
USE BizTalkMsgBoxDbALTER TABLE Tracking_Spool1 ALTER COLUMN uidBodyPartID uniqueidentifier NULLALTER TABLE Tracking_Spool2 ALTER COLUMN uidBodyPartID uniqueidentifier NULL
Note BizTalkMsgBoxDb is a placeholder for the name of the BizTalk Server MessageBox database. Replace BizTalkMsgBoxDb with the name of your BizTalk Server MessageBox database. By default, the name of the BizTalk Server MessageBox database is BizTalkMsgBoxDb.
In SQL Query Analyzer, click Execute Query to update the Tracking_Spool1 and Tracking_Spool2 tables so that the uidBodyPartID column will allow NULL values.
Close SQL Query Analyzer.
Enable and then start the TrackingSpool_Cleanup_BizTalkMsgBoxDb job.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.This problem was corrected in BizTalk Server 2004 Service Pack 1.
BizTalk Server 2004 creates several SQL Server Agent jobs that maintain BizTalk Server databases. These jobs are scheduled to run automatically at different intervals. By default, the TrackedMessages_Copy_BizTalkMsgBoxDb job is scheduled to run every 60 seconds.