2013-01-22 25 views
6

मेरे पास एक एसएसआईएस पैकेज है जो बहुत ही सरल है, केवल एक डेटा आयात और उसके बाद SQL कार्य निष्पादित करता है। यदि पैकेज के किसी हिस्से को असफल होना चाहिए तो मैं सबकुछ वापस लेना चाहता हूं इसलिए मैंने इन कार्यों को अनुक्रम कंटेनर के भीतर रखा है और अनुक्रम कंटेनर लेनदेन विकल्प संपत्ति को 'आवश्यक' पर सेट किया है और FailPackageonFailure प्रॉपर्टी को 'True' पर सेट किया है। जब मैं स्थानीय डीबी को लक्षित कर रहा था तो यह ठीक काम करता था। हालांकि जब मैं ओएलई डीबी कनेक्शन को रिमोट सर्वर में बदलने की कोशिश करता हूं तो उपर्युक्त संपत्ति सेटिंग्स पैकेज को लटकने का कारण बनती है और आखिरकार 'कनेक्शन प्राप्त नहीं कर सका' के संदेश के साथ असफल हो जाती है। मैंने वेब पर इस समस्या के समान विवरण देखे हैं लेकिन सलाह हमेशा कनेक्शन की जांच करने के लिए होती है। हालांकि मुझे पता है कि कनेक्शन ठीक है क्योंकि जब मैं ट्रांज़ेक्शनऑप्शन प्रॉपर्टी को 'समर्थित' के डिफ़ॉल्ट पर बदलता हूं तो पैकेज ठीक चलता है।एसएसआईएस अनुक्रम कंटेनर लेनदेन विकल्प

क्या किसी को पता है कि यह क्यों हो सकता है? मुझे लगता है कि सर्वर पर अलग-अलग सेटिंग्स के साथ कुछ करना है जिसे मैं कनेक्ट करने का प्रयास कर रहा हूं। पैकेज के किसी हिस्से को असफल होने पर भी किसी को भी पूर्ण रोलबैक सुनिश्चित करने का एक अलग तरीका पता है।

धन्यवाद

+0

जब तक कि मैं कुछ गलत नहीं कर रहा हूं, आपको FailPackageonFailure प्रॉपर्टी को संशोधित करने की भी आवश्यकता नहीं है। क्या आप OnError, OnTaskFailed, OnInformation और OnWarning संदेशों का पूरा सेट पोस्ट कर सकते हैं? यह देखने में सहायक हो सकता है कि सभी संदेशों की क्या रिपोर्ट की जा रही है। – billinkc

+0

आपके उत्तर के लिए धन्यवाद। आप सही हैं कि असली अपराधी यहां लेनदेन विकल्प प्रतीत होता है। यहां दो त्रुटि संदेश हैं जो DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER दिखाई देते हैं। "लेनदेन में शामिल होने में असमर्थ"। अभी मैं सोच रहा हूं कि सर्वर पर एमएसडीटीसी सुरक्षा कॉन्फ़िगरेशन (स्थानीय पर उन सेटिंग्स के साथ जांच करने के बाद) –

+1

एमएसडीटीसी, जब यह काम करता है तो महान होता है; OMFGKILLMENOW जब यह – billinkc

उत्तर

2

पढ़ने के लिए आप वितरित विनिमय कोऑर्डिनेटर का उपयोग करने की जरूरत है।

The Distributed Transaction Coordinator (DTC) service coordinates transactions that update two or more transaction-protected resources, such as databases, message queues, files systems, and so on. These transaction-protected resources may be on a single computer or distributed across many networked computers.

क्योंकि आप सर्वर के बीच लेनदेन की स्थापना के लिए कोशिश कर रहे हैं, यह एसक्यूएल सर्वर सेवा समन्वय करने के लिए एक सेवा की आवश्यकता है। Here एक लेख है कि इसे कैसे करें।

सेवा शुरू करना और कॉन्फ़िगर करना सुनिश्चित करें, साथ ही सर्वर के बीच सेवाओं के लिए विंडोज फ़ायरवॉल में अपवाद भी बनाएं।

अधिक जानकारी के लिए लेन-देन पर इस लेख देखें: http://www.mssqltips.com/tip.asp?tip=1585

इसके अलावा, आप कैसे MSDTC लघु उद्योगों के संबंध में काम करता है आपकी समस्या का समाधान करने के लिए में और अधिक देखने की जरूरत हो सकती है।

0

एक अन्य विकल्प:

उत्तोलन OLE DB कनेक्शन की RetainSameConnection संपत्ति और आप वितरित विनिमय कोऑर्डिनेटर (डीटीसी) के उपयोग की आवश्यकता के बिना एकाधिक कार्य से अधिक लघु उद्योगों में नियमित रूप से एसक्यूएल सर्वर लेनदेन चला सकते हैं। In this article जेमी थॉमसन हमें दिखाता है कि कैसे।

निहितार्थ यह है कि आप एक बार SQL कार्य निष्पादित कर सकते हैं और फिर किसी अन्य में COMMIT या ROLLBACK चुन सकते हैं।