Oracle प्रत्येक परिणामसेट के लिए कर्सर बनाता है और परिणामसेट (jdbc ResultSet.close() या इसी तरह) को बंद करने पर इसे जारी करता है। प्रति सत्र 50 खुले कर्सर का डिफ़ॉल्ट किसी भी अच्छी तरह से डिज़ाइन किए गए एप्लिकेशन के लिए पर्याप्त है (एक बार मैंने इसे माप लिया, और उत्पादन मोड में यह कभी भी 20 से अधिक नहीं बढ़ा)।
आपको यह जांचना चाहिए कि लाने के बाद परिणामों को बंद करने के लिए हाइबरनेट कैसे बनाया जाए। आम तौर पर, मैं कल्पना नहीं कर सकता कि अगर वास्तव में 1000 खुले कर्सर की आवश्यकता होती है तो कौन सा सत्र करना चाहिए। मैंने max_open_cursors को 1000 से अधिक सेट कभी नहीं देखा, इसलिए, मुझे लगता है, यह खराब-डिज़ाइन किए गए अनुप्रयोगों के लिए भी पर्याप्त है (लेकिन... शांत तथ्य में पूर्णता की कोई सीमा नहीं है, और मैं कभी भी हाइबरनेट का उपयोग नहीं करता)।
हर कर्सर का मतलब कुछ मेमोरी होता है, इसलिए max_open_cursors को बढ़ाना शून्य-मूल्य का समाधान नहीं है।