What does HRESULT 0x80110701 (MSDTC_E_DUPLICATE_RESOURCE) mean?

 
Previous Next
COMQC_E_UNTRUSTED_ENQUEUER COMADMIN_E_OBJECT_PARENT_MISSING

MSDTC_E_DUPLICATE_RESOURCE

Investigate duplicate Microsoft Distributed Transaction Coordinator resource at the first returning call, before a wrapper substitutes a generic message. MSDTC was asked to create or register a resource identity that already exists in the transaction-coordinator context. The collision normally concerns resource-manager identity or recovery metadata, not an ordinary duplicate database row.

Read the status in context

For duplicate Microsoft Distributed Transaction Coordinator resource, the declared return type and source header determine the relevant status namespace.

A duplicate DTC resource differs from a transaction already enlisted: one is resource identity/configuration, the other is the lifecycle of a particular transaction branch. Keep the numeric value, declared return type, and first returning operation together with MSDTC_E_DUPLICATE_RESOURCE; the same integer can belong to a different status namespace in another API.

Diagnostic facts

CaptureDiagnostic value
Resource-manager name/GUID, process identity, DTC instance, transaction unit of work, and enlistment type.Identifies the concrete object and operation associated with duplicate Microsoft Distributed Transaction Coordinator resource.
First successful registration and the second failing registration with timestamps and recovery keys redacted.Separates argument or lifecycle state from the provider beneath duplicate Microsoft Distributed Transaction Coordinator resource.
Clustered versus local MSDTC instance and whether both nodes share the same resource-manager configuration.Creates a stable before-and-after comparison for duplicate Microsoft Distributed Transaction Coordinator resource.
Service restart, failover, or deployment event that may have replayed durable registration.Shows whether duplicate Microsoft Distributed Transaction Coordinator resource is the first result or a translated summary.

For duplicate Microsoft Distributed Transaction Coordinator resource, preserve clustered versus local MSDTC instance and whether both nodes share the same resource-manager configuration before reinstalling, rebooting, clearing state, or substituting another device or provider. A success observed only after such a change is useful comparison data for duplicate Microsoft Distributed Transaction Coordinator resource, but it does not identify the original cause.

Verification path

  1. Start one resource manager and prove a single registration before enabling a second process instance. Treat a changed result as a new boundary rather than automatic resolution of duplicate Microsoft Distributed Transaction Coordinator resource.
  2. Assign a distinct test resource identity while keeping the same DTC instance and transaction workload. Repeat the original supported operation so the check remains relevant to duplicate Microsoft Distributed Transaction Coordinator resource.
  3. Inspect recovery after a controlled restart to determine whether stale durable metadata recreates the collision. Keep unrelated inputs fixed so the change remains attributable to duplicate Microsoft Distributed Transaction Coordinator resource.

What the result does not prove

Observed comparisonNext conclusion to test
The first control changes the resultConcentrate on the variable isolated by this check: Start one resource manager and prove a single registration before enabling a second process instance.
The second comparison for duplicate Microsoft Distributed Transaction Coordinator resource reproduces the same first statusPreserve lower-layer provider, driver, service, or runtime evidence before editing application data. The second controlled check was: Assign a distinct test resource identity while keeping the same DTC instance and transaction workload.
A different status replaces duplicate Microsoft Distributed Transaction Coordinator resource after the bounded changeThe operation moved to another boundary after the third controlled check. That check was: Inspect recovery after a controlled restart to determine whether stale durable metadata recreates the collision. Retain both results and interpret the replacement through its own API contract for duplicate Microsoft Distributed Transaction Coordinator resource.

Closing the incident

Targeted correction. Ensure each durable resource manager has one stable unique identity, stop concurrent duplicate instances, and clean stale recovery registration only through the owning product or documented DTC administration path. For duplicate Microsoft Distributed Transaction Coordinator resource, modify only the object, argument, policy, provider, or lifecycle state identified by the collected evidence.

Acceptance criterion. One resource-manager identity registers once, recovery survives restart, and failover does not create a second resource with the same durable identity. Re-run the original operation that produced duplicate Microsoft Distributed Transaction Coordinator resource under its original identity and supported configuration, then keep one negative control that still produces the expected neighboring outcome.

Technical references

These owner-maintained or standards-based sources define the namespace and subsystem contract needed to verify MSDTC_E_DUPLICATE_RESOURCE on the deployed platform version.


Looking for a different code? Search another status or error code.