Microsoft KB Archive/884532

= The TrackedMessages_Copy_BizTalkMsgBoxDb SQL Server Agent job fails and you receive a &quot;Cannot insert the value null into column uidBodyPartID&quot; error message in BizTalk Server 2004 =

Article ID: 884532

Article Last Modified on 6/28/2005

-

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.



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 BizTalkMsgBoxDb ALTER TABLE Tracking_Spool1 ALTER COLUMN uidBodyPartID uniqueidentifier NULL ALTER TABLE Tracking_Spool2 ALTER COLUMN uidBodyPartID uniqueidentifier NULL Note  is a placeholder for the name of the BizTalk Server MessageBox database. Replace  with the name of your BizTalk Server MessageBox database. By default, the name of the BizTalk Server MessageBox database is BizTalkMsgBoxDb. </li> 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.</li> Close SQL Query Analyzer.</li> Enable and then start the TrackingSpool_Cleanup_BizTalkMsgBoxDb job.</li></ol>

<div class="status_section">

STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section. This problem was corrected in BizTalk Server 2004 Service Pack 1.

<div class="moreinformation_section">

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.

Additional query words: BTS

Keywords: kbinfo kbprb kbbtsmessaging kbbiztalk2004sp1fix KB884532

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.