FIX: Replication Logreader Fails with Error Message 18773 (276281)



The information in this article applies to:

  • Microsoft SQL Server 7.0

This article was previously published under Q276281
BUG #: 58444 (SQLBUG_70)

SYMPTOMS

When the following conditions are true:
  • A published table schema has one or more columns that are either text or image data type and the column is defined to allow NULL values.
  • A published table has a clustered index.

-and-

The following sequence of operations occurs:
  • A text or image column for a given row is either inserted as NULL, or the column is updated and set to NULL.
  • The cluster key for the row created or updated at point-in-time 1 is updated.
  • In a subsequent UPDATE statement, the same NULL text or image column from point-in-time 1 is updated and set to NULL (again).
The replication Log Reader fails with the following 18773 error message:
The process could not execute 'sp_replcmds' on 'PUBLISHER'.

Status: 0, code: 18773, text: 'Could not locate text information records for column # during command construction.'.
NOTE: The transactional boundaries of the preceding UPDATE statements have no affect on whether or not the bug is encountered.

RESOLUTION

To resolve this problem, obtain the latest service pack for Microsoft SQL Server 7.0. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

301511 INF: How to Obtain the Latest SQL Server 7.0 Service Pack

NOTE: The following hotfix was created prior to Microsoft SQL Server 7.0 Service Pack 4.

The English version of this fix should have the following file attributes or later:
   File name      Platform
   -----------------------

   s701006i.exe   x86
				
NOTE: Because of file dependencies, the most recent hotfix or feature that contains the preceding files may also contain additional files.

WORKAROUND

To work around this problem either:
  • Use the XCALL syntax for custom replication stored procedures to replicate UPDATES as opposed to the MCALL (the default) or CALL syntax.NOTE: XCALL procedures must be "hand-coded" and cannot be automatically generated on SQL Server 7.0.

    -or-

  • Use a combination of column DEFAULT constraints and/or INSERT triggers to prevent new rows from being inserted with NULL text and/or image columns. Use UPDATE triggers to prevent text and/or image columns from being set to NULL.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Microsoft SQL Server 7.0 Service Pack 4.

REFERENCES

For more information regarding the XCALL custom procedure syntax, see the "Using Custom Stored Procedures in Articles" topic in SQL Server 7.0 Books Online.

Modification Type:MajorLast Reviewed:4/25/2002
Keywords:kbbug KB276281