लीक अधिकतम ओपन-कर्सर मुद्दा होगा।
ORA-01000: maximum open cursors exceeded
यदि अधिकतम खुले कर्सर को पार कर लिया जाता है, तो डेटाबेस अनुपयोगी हो जाएगा, केवल उन कर्सर को छोड़कर जो पहले से ही आयोजित हैं। हालांकि, अधिकांश समय जब ऐसा होता है तो होल्ड किए गए कर्सर का भी उपयोग नहीं किया जाता है (जो आपके प्रश्न में होगा)।
जावा 7 के बाद से, इसे संभालने का सबसे अच्छा तरीका एक कोशिश करना है। संसाधनों के साथ
. दोनों ResultSet
और PreparedStatement
AutoCloseable
लागू करता है इंटरफ़ेस जिसका अर्थ है कि जब आवश्यकता नहीं होगी तो उन्हें बंद कर दिया जाएगा।
अगर आपके पास जावा 7 नहीं है, तो आपको इसे finally
में हैंडल करना होगा ब्लॉक करें, लेकिन सुनिश्चित करें कि आप बंद करने से पहले शून्य मानों के लिए सत्यापित करते हैं अन्यथा यदि संसाधन को कभी भी प्रारंभ नहीं किया गया था तो आप एक एनपीई का सामना कर सकते हैं।
ध्यान दें कि रिवर्स से कोई समस्या नहीं होगी क्योंकि स्टेटमेंट को बंद करने से उसका रिजल्ट सेट अपने आप बंद हो जाएगा।
ध्यान दें कि अधिकतम से अधिक होने की कम संभावना के लिए आप आसानी से अधिक कर्सर को अपने आवेदन की अनुमति दे सकते हैं।
ALTER SYSTEM SET open_cursors = 400 SCOPE=BOTH;
हालांकि, अधिकांश समय यदि आप अधिकतम खुले कर्सर का सामना करते हैं तो यह समाधान नहीं होना चाहिए क्योंकि यह केवल वास्तविक समस्या को छुपाएगा।