Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Note
Interessegrupper for fellesskapet har nå flyttet fra Yammer til Microsoft Viva Engage. Hvis du vil bli med i et Viva Engage-fellesskap og delta i de siste diskusjonene, fyller du ut skjemaet Be om tilgang til Finance and Operations Viva Engage Community og velger fellesskapet du vil bli med i.
Denne artikkelen beskriver unntakstypene for SQL-tilkoblingsfeil i X++.
TransientSqlConnectionError X++-unntak
Når en midlertidig SQL-tilkoblingsfeil oppstår på serversiden, oppstår det et TransientSqlConnectionError X++-unntak under en X++ SQL-spørring. Avhengig av programkravene skal programmet fange opp og håndtere unntaket.
Dette unntaket oppstår vanligvis under en stor transaksjon eller når databasen er under mye behandlingstrykk.
TransientSqlConnectionError-unntaket kan ikke fanges opp i transaksjonen. X++-transaksjonen som støter på dette unntaket, avbrytes (kaller ttsAbort) før unntaket oppstår. Dette betyr at du må bruke fangstblokken til å identifisere den midlertidige SQL-tilkoblingsfeilen i stedet for et generisk X++-feilunntak, og deretter prøve den ytterste transaksjonen eller prøve programkodelogikken på nytt i en ny økt. Dette unntaket gjør at programmet kan utformes for midlertidige serverfeil.
Hvis en programtransaksjon tar lang tid å behandle, kan du bruke flere trinnvise forsinkelser til å fange opp unntaket TransientSqlConnectionError. Det er mest sannsynlig at du prøver programkoden på nytt i en ny økt etter at du har tatt unntaket.
Eksempel
public static void LargeTransactionWrapper()
{
try
{
LargeTransaction();
}
catch (Exception::TransientSqlConnectionError)
{
info("Caught transient SQL connection error, ttslevel=" + int2Str(appl.ttsLevel()));
// At this point, transaction is canceled
// Code that indicates retry is possible
}
finally
{
// Do clean up
}
}