sql >> Database >  >> RDS >> Sqlserver

hoe de time-out van de sql-server van de .NET-toepassing te detecteren zonder catch Exception te gebruiken

Nee, niet echt.

De standaardmanier is om try/catch . te gebruiken en omgaan met SqlException Nummer 1205 (deadlock slachtoffer), en probeer uw vraag opnieuw:

    try
    {
        // do stuff...
    }
    catch (SqlException sqlEx)
    {
        switch (sqlEx.Number)
        {
            case -2:   // Client Timeout
            case 701:  // Out of Memory
            case 1204: // Lock Issue 

            case 1205: // >>> Deadlock Victim
                // handle deadlock
                break;

            case 1222: // Lock Request Timeout
            case 2627: // Primary Key Violation
            case 8645: // Timeout waiting for memory resource 
            case 8651: // Low memory condition 
            ...
        }
    }

[Opmerking:break-statements niet toegevoegd vanwege compactheid

Let ook op , kunnen veel vergrendelingsproblemen worden geëlimineerd door de juiste dekkingsindexen aan te bieden.



  1. MySql-gegevensbestand laden STR_TO_DATE wordt leeg geretourneerd?

  2. Welsprekend:Bellen waar in een relatie

  3. MySQL - Waarom worden COLLATION-regels genegeerd door de LIKE-operator voor het Duitse ß-teken

  4. XAMPP WERKT NIET! - OS X Yosemite