Używamy deklaratywnego atrybutu wiosny dla integralności bazy danych. Niektóre z naszych usług sieciowych wywoływania kodu, które robią pakiety z sharepoint. Problem polega na tym, że gdy serwisy internetowe potrzebują dłuższego czasu, użytkownicy otrzymują impas ze źródła, który zatrzymuje backend.Wiosna :: Jeśli widelec nowy wątek zostanie wymuszony w transakcji wiosną
Jeśli utworzę nowy wątek w funkcji, która ma funkcję deklaracji wiosennej, zostanie ona zignorowana ze sprężyny?
[Transaction(TransactionPropagation.Required, ReadOnly = false)]
public void UploadPDFManual(/*parameters*/)
{
//DO some data base related things
if (revisionPDFBytes != null)
{
//my sharepoint call which calls webservice
Task.Factory.StartNew(() => DocumentRepositoryUtil.CreateSharepointDocument(docInfo)); // I draw a new thread from ASPNET worker thread pool.
}
}
Cokolwiek inne opcje powinienem wybrać?
Podobał mi się pomysł uniezależnienia tego, co nie powinno być w transakcji –