Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

बंद कनेक्शन पर JDBC लेनदेन रोलबैक विफलता

नहीं (Oracle में एक गंभीर बग को छोड़कर या जब तक हम एक वितरित लेनदेन के बारे में बात नहीं कर रहे हैं)।

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

यदि हम एक वितरित लेनदेन के बारे में बात कर रहे हैं, तो संभव है कि लेनदेन वितरित नोड्स में से एक (या अधिक) पर संदेह में रहे। अगर ऐसा है, तो लेन-देन <में दिखाई देगा कोड>dba_2pc_लंबित उन नोड्स पर जहां लेनदेन अभी भी लंबित है। लेकिन यह किसी भी नोड पर आंशिक रूप से प्रतिबद्ध नहीं होगा।

अगर मुझे अनुमान लगाना था, अगर आप कुछ ऐसा देख रहे हैं जो "आंशिक रूप से प्रतिबद्ध" है, तो मैं शर्त लगाता हूं कि समस्या यह है कि आपकी लेनदेन सीमाएं सही नहीं हैं और आपके पास कहीं कुछ कोड है जो कर रहा है (अंतर्निहित या स्पष्ट रूप से) जहां आप इसकी उम्मीद नहीं करते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle डेटाबेस में मान्य समय क्षेत्रों की सूची कैसे लौटाएं?

  2. जेपीए स्तर से अपडेट स्किप लॉक के लिए चयन करें

  3. संग्रहीत प्रक्रिया में सरणी पास करें

  4. yyyy-mm-dd को mm/dd/yyyy में परिवर्तित करना

  5. Oracle में एक स्ट्रिंग की अंतिम अनुक्रमणिका ढूँढना