sql >> Databasteknik >  >> RDS >> Sqlserver

Integriteten för min transaktion går förlorad med undantaget TransactionInDoubtException

Enligt MSDN :

EDIT:

För återställning: Du måste fånga TransactionInDoubtException &skriv kompensera logik med passande kontroller.

using (var scope = new TransactionScope(TransactionScopeOption.Required, option))
    {
        try
        {
            Context.SaveEmail(_emailInfoList);
            context.SaveSyncState(syncState);
            scope.Complete();
            return true;
        }
        catch (TransactionInDoubtException ex)
        {
            //check whether any one record from the batch has been partially committed . If committed then no need to reprocess this batch.     

            // transaction scope should be disposed first .

            scope.Dispose();

            if (IsReprocessingNeeded(syncState))
                throw;

            return true;
        }
    }

        /// <returns></returns>
        private bool IsReprocessingNeeded(SyncStateDataModal syncState)
        {
            while (true)
            {
                try
                {
                    var id = _emailInfoList[0].ID;
                    bool isEmailsCommitted = Context.GetJournalEmail().FirstOrDefault(a => a.ID == id) != null;
                    if (!isEmailsCommitted)
                        return true;
                    if (context.EmailSynch(syncState.Id) == null)
                    {
                        context.SaveSyncState(syncState);
                    }
                    return false;
                }
                catch (Exception ex)
                {

                    Thread.Sleep(TimeSpan.FromMinutes(AppConfiguration.RetryConnectionIntervalInMin));
                }
            }
        }

KÄLLA Vad är återställningsvägen för TransactionInDoubtException?




  1. Det gick inte att ansluta till mysql på 127.0.0.1:3306 med användarrotåtkomst nekad för användaren 'root'@'localhost'(med lösenord:JA)

  2. SQL - matcha poster från en tabell till en annan tabell baserat på flera kolumner

  3. Textfilstruktur (tabeller)

  4. Hur genererar man ett unikt ID i MySQL?