2011-11-01 15 views
16

मैं कोई ऑटोकॉमिट का उपयोग कर SQL सर्वर से कनेक्ट कर रहा हूं। अगर सबकुछ सफल होता है, तो मैं प्रतिबद्ध हूं। अन्यथा, मैं बस बाहर निकलें। क्या मुझे रोलबैक को स्पष्ट रूप से कॉल करने की आवश्यकता है, या जब हम बिना कनेक्शन किए कनेक्शन बंद करते हैं तो इसे स्वचालित रूप से वापस ले जाया जाएगा?क्या मुझे कभी भी प्रतिबद्ध नहीं होने पर रोलबैक कॉल करने की आवश्यकता है?

यदि यह महत्वपूर्ण है, तो मैं एसएएस में proc sql के भीतर से SQL आदेश निष्पादित कर रहा हूं।

अद्यतन: ऐसा लगता है कि एसएएस रोल एसक्यूएल ब्लॉक के अंत में स्वचालित रूप से कॉल कॉल कर सकता है अगर रोलबैक नहीं कहा जाता है। तो इस मामले में, रोलबैक अच्छा अभ्यास से अधिक होगा; यह आवश्यक होगा।

अंतिम अद्यतन: हम एक नई प्रणाली में स्विचिंग समाप्त हो गए, जो मुझे लगता है कि हमारे पिछले एक के विपरीत व्यवहार करना है। लेनदेन को समाप्त करने या वापस रोलिंग के बिना लेनदेन को समाप्त करने पर, यह वापस रोल करेगा। इसलिए, नीचे दी गई सलाह निश्चित रूप से सही है: हमेशा स्पष्ट रूप से प्रतिबद्ध या रोलबैक।

उत्तर

7

यह कनेक्शन के करीब रोल रोल होना चाहिए। किसी कारण के लिए जोर देना चाहिए :-)

उचित लेनदेन और त्रुटि प्रबंधन आपको हमेशा प्रतिबद्ध होना चाहिए जब प्रतिबद्धता की शर्तों को पूरा किया जाए और रोलबैक न हो। मुझे लगता है कि जब यह किया जाता है तो हमेशा प्रतिबद्ध या रोलबैक करने की एक अच्छी आदत है और डिस्कनेक्ट/आदि पर भरोसा नहीं है। यह सब कुछ एक गलती या ग़लत/बंद सत्र नहीं है, सभी के लिए अवरुद्ध श्रृंखला दुःस्वप्न बनाने के लिए :-)

+1

इस पर कनेक्शन पूलिंग का क्या असर होगा? –

+0

यदि आप दिमाग में सर्वोत्तम प्रथाओं के साथ अपने लेनदेन का प्रबंधन करते हैं तो आपको चिंता करने की ज़रूरत नहीं है, @JoeStefanelli :-) मेरा क्या मतलब है - 1.) जितना तेज़ हो सके उतना लेनदेन में और बाहर - केवल इसके भीतर आवश्यक है पदचिह्न और छोटे प्रभाव को बनाए रखने के लिए और 2.) सही त्रुटि संभालने और सही होने पर प्रतिबद्ध करने के लिए सफाई और जब आवश्यक नहीं है। मैं उन पर्यावरणों में बदलाव को स्वीकार नहीं करूंगा जो मैं प्रबंधित करता हूं यदि यह इन दो बुनियादी सिद्धांतों का उल्लंघन करता है। तो कनेक्शन पूलिंग का कोई प्रभाव नहीं पड़ेगा। –

+0

सहमत हैं कि चीजें सही होने पर आपकी स्पष्ट प्रतिबद्धता करना सर्वोत्तम होता है। मेरे प्रश्न का उद्देश्य आपके उत्तर के "कनेक्शन के करीब" रोल *** वापस होना चाहिए "पर अधिक था। –

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

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