The TrackedMessages_Copy_BizTalkMsgBoxDb SQL Server Agent job fails and you receive a "Cannot insert the value null into column uidBodyPartID" error message in BizTalk Server 2004 (884532)



The information in this article applies to:

  • Microsoft BizTalk Server 2004 Developer Edition
  • Microsoft BizTalk Server 2004 Enterprise Edition
  • Microsoft BizTalk Server 2004 Partner Edition
  • Microsoft BizTalk Server 2004 Standard Edition

SYMPTOMS

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.

CAUSE

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.

RESOLUTION

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:
  1. Temporarily stop and disable the TrackingSpool_Cleanup_BizTalkMsgBoxDb SQL Server Agent job. To do this, follow these steps:
    1. Click Start, point to Programs, point to Microsoft SQL Server, and then click Enterprise Manager to start the SQL Enterprise Manager.
    2. 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.
  2. 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.
  3. Paste the following SQL statements in the Query window of the SQL Query Analyzer:
    USE BizTalkMsgBoxDb
    ALTER TABLE Tracking_Spool1 ALTER COLUMN uidBodyPartID uniqueidentifier NULL
    ALTER 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.
  4. 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.
  5. Close SQL Query Analyzer.
  6. Enable and then start the TrackingSpool_Cleanup_BizTalkMsgBoxDb job.

STATUS

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.

MORE INFORMATION

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.

Modification Type:MajorLast Reviewed:6/28/2005
Keywords:kbBizTalk2004sp1fix kbBTSMessaging kbprb kbinfo KB884532 kbAudDeveloper