काफी टेस्टिंग के बाद हमने इस समस्या को ठीक कर लिया है। यह इस बात का एक संयोजन है कि हम कैसे स्प्रिंग फ्रेमवर्क और ऑरैकल क्लाइंट और ऑरेकल डीबी का उपयोग कर रहे थे। हम नए SimpleJDBCCalls बना रहे थे जो oracle JDBC क्लाइंट के मेटाडेटा कॉल का उपयोग कर रहे थे जो कि कर्सर के रूप में लौटाए गए थे जिन्हें बंद और साफ नहीं किया जा रहा था। मैं इसे स्प्रिंग जेडीबीसी ढांचे में एक बग मानता हूं कि यह मेटाडेटा को कैसे कॉल करता है लेकिन फिर कर्सर को बंद नहीं करता है। स्प्रिंग को मेटा डेटा को कर्सर से कॉपी करना चाहिए और इसे ठीक से बंद करना चाहिए। मैंने वसंत के साथ एक जीरा मुद्दा खोलने की जहमत नहीं उठाई क्योंकि यदि आप सर्वोत्तम अभ्यास का उपयोग करते हैं तो बग प्रदर्शित नहीं होता है।
OPEN_CURSORS या किसी अन्य पैरामीटर में बदलाव इस समस्या को ठीक करने का गलत तरीका है और इसके प्रकट होने में देरी करता है।
हमने इसके चारों ओर काम किया / SimpleJDBCCall को सिंगलटन डीएओ में ले जाकर इसे ठीक किया, इसलिए प्रत्येक ऑरैकल प्रो के लिए केवल एक कर्सर खुला है जिसे हम कहते हैं। ये कर्सर ऐप के जीवनकाल के लिए खुले हैं - जिन्हें मैं एक बग मानता हूं। जब तक OPEN_CURSORS, SimpleJDBCCall ऑब्जेक्ट की संख्या से बड़ा है, तब तक कोई परेशानी नहीं होगी।