2014-04-10 6 views
5

द्वारा लेनदेन में लागू किया जाएगा तो हम डेटाबेस अखंडता के लिए घोषणात्मक वसंत लेनदेन विशेषता का उपयोग कर रहे हैं। हमारे कुछ कोड कॉल webservice जो शेयरपॉइंट में सामान का गुच्छा करते हैं। समस्या यह है कि जब webservices लंबे समय तक उपयोगकर्ताओं को वसंत से डेडलॉक मिलता है जो बैकएंड धारण कर रहा है।वसंत :: यदि एक कांटा स्प्रिंग

यदि मैं एक फ़ंक्शन के अंदर एक नया धागा बनाता हूं जिसमें वसंत लेनदेन घोषणात्मक विशेषता वसंत से अनदेखा की जाएगी?

[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. 
     } 
    } 

कुछ अन्य विकल्पों के लिए मुझे जाना चाहिए?

उत्तर

0

आपको इसे लेनदेन में करने की आवश्यकता नहीं है। लेनदेन डेटाबेस को ऑब्जेक्ट को सही तरीके से सहेजता है। बस। अन्य सभी सामान लेनदेन प्रतिबद्ध होने के बाद किया जाना चाहिए। जावा में, आप इसे स्प्रिंग के लेनदेन सिंक्रनाइज़ेशन या जेएमएस के साथ बना सकते हैं। स्वीकृत उत्तर over here पर एक नज़र डालें।

More useful info .NET के लिए विशिष्ट (देखें 17.8)।

+0

मुझे इस विचार को पसंद आया कि लेनदेन में क्या नहीं होना चाहिए –

संबंधित मुद्दे