FIX: Two-Phase Commit build_xact_string Documentation

ID: Q87833


The information in this article applies to:

BUG# NT: 4260 (4.20)

SYMPTOMS

When SQL Server is started, recovery runs for as long as one hour before completing. When recovery is complete, the SQL Server error log contains the following messages:

Spawn of probe failed. Error = 2.
Error: 3429, Severity: 21, State: 3
Error recovering database '%.*s' - could not connect to commit
service to check completion status of xact: %S_RID.
Error: 3414, Severity: 21, State: 1
Database '%.*s' (dbid %d): Recovery failed. Please contact
Technical Support for further instructions.

The database marked as suspect is not usable.


CAUSE

SQL Server spawns PROBE.EXE for any server that must recover a transaction involved in a two-phase commit. PROBE.EXE attempts to connect to the commit service, but eventually fails.

PROBE.EXE uses the value for service_name, submitted to the DB-LIBRARY (db- lib) build_xact_string function, for the name of the commit service server.

The SQL Server documentation for build_xact_string does not clearly state that "service_name" should be the name of the server acting as the commit service for the two-phase commit.


WORKAROUND

To recover the database marked as suspect, rename the server acting as the commit service to whatever value was passed to build_xact_string for "service_name." This allows PROBE.EXE to connect to the commit service to complete the recovery.

Also, calls to build_xact_string should provide the server name for the server acting as the commit service. Pass this value in the "service_name" parameter.


STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 4.2 for OS/2. This problem was corrected in SQL Server version 4.2 for Windows NT. For more information, contact your primary support provider.

Additional query words: dblib os/2 winnt


Keywords          : kbother kbusage kbbug4.20 SSrvServer 
Version           : 4.2
Platform          : OS/2 
Issue type        : 

Last Reviewed: March 16, 1999