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

मैं ORA-02020 त्रुटियों से बचने के लिए JDBC में XA डेटा स्रोतों और लेनदेन के साथ Oracle DbLinks को कैसे बंद कर सकता हूं?

कोई भी वितरित SQL, यहां तक ​​कि एक चयन भी, एक लेनदेन खोलेगा जिसे डेटाबेस लिंक को बंद करने से पहले बंद किया जाना चाहिए। ALTER SESSION CLOSE DATABASE LINK को कॉल करने से पहले आपको या तो रोलबैक करना होगा या कमिट करना होगा।

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

संपादित करें:

आप अपनी टिप्पणी में जिस स्थिति का वर्णन करते हैं, वह नहीं होनी चाहिए। लेन-देन के साथ वास्तव में क्या हो रहा है, यह जानने के लिए मुझे आपके सिस्टम के बारे में पर्याप्त समझ नहीं है। वैसे भी, यदि आप यह पता नहीं लगा सकते हैं कि सिस्टम क्या कर रहा है, तो आप इस तरह की प्रक्रिया के साथ "सत्र बंद करें डेटाबेस लिंक बदलें" को बदल सकते हैं:

create or replace procedure rollback_and_close_db_links authid current_user is
begin
    rollback;
    for links in (select db_link from v$dblink) loop
        execute immediate 'alter session close database link '||links.db_link;
    end loop;
end;
/

आपको शायद इस अनुदान की आवश्यकता होगी:

grant select on v_$dblink to [relevant user];



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. इंटरनेट एक्सप्लोरर 8 में ओरेकल फॉर्म/एप्लिकेशन JInitator का उपयोग कर रहे हैं

  2. ODP.Net ड्राइवर .NET Core 5.0 पर अपवाद फेंक रहा है

  3. दशमलव के लिए NLS_NUMERIC_CHARACTERS सेटिंग

  4. ओरेकल:डायनेमिक एसक्यूएल

  5. क्या डेटाबेस डिज़ाइन में विदेशी कुंजियाँ वास्तव में आवश्यक हैं?