2009-06-03 13 views
5

में तैयार किए गए स्टेटमेंट कैशिंग, मैं प्रीपेर्डस्टेटमेंट कैशिंग प्राप्त करने के लिए एक तरीका ढूंढ रहा हूं, ताकि पूर्व में पहले से निष्पादित किए गए प्रश्नों के लिए प्रीपेयरस्टेटमेंट ऑब्जेक्ट्स को दोबारा सहेजने के लिए।टॉमकैट

क्या टॉमकैट का उपयोग करके इसे हासिल करने के लिए कुछ बनाया गया है? या मैं खुद को इस कैश प्रोग्राम करना चाहिए?

उत्तर

2

तैयार स्टेटमेंट कैशिंग आपके जेडीबीसी कनेक्शन पूल या आपके जेडीबीसी ड्राइवर, द्वारा टोमकैट द्वारा किया जाता है।

+0

मुझे लगता है कि वह इंप्रेशन के तहत हो सकता है कि टॉमकैट इसे प्रदान करता है क्योंकि कुछ जे 2 ईई सर्वलेट कंटेनर आपके लिए इसे प्रबंधित करेंगे –

3

मेरा मानना ​​है कि टोमकैट commons-dbcp का उपयोग करता है और कॉमन्स-डीबीसीपी तैयार कथन पूलिंग का समर्थन करता है।

इसे here देखें।

पूलपेरेडस्टेटमेंट्स झूठी इस पूल के लिए तैयार कथन पूलिंग सक्षम करें।

0

शायद मैं तुम क्या कह रहे हैं में कुछ याद कर रहा हूँ, लेकिन अगर आप "raws" JDBC में आपके प्रश्नों बना रहे हैं, तो अनिवार्य रूप से तुम सब करने की जरूरत है कनेक्शन खुला रखने के लिए और के लिए एक संदर्भ के लिए पर रखना है तैयार भंडार।

+0

यह टॉमकैट के बारे में एक सवाल है। इसलिए मैं नहीं देखता कि अनुरोधों के बीच कनेक्शन को खुला और संदर्भित कैसे रखा जा सकता है, जब तक कि आप स्वयं कनेक्शन कनेक्शन प्रबंधित नहीं कर लेते। – Ovesh

1

आप अपना डेटाबेस नहीं बताते हैं, लेकिन यदि यह SQL सर्वर है तो jTDS ड्राइवर आपके लिए यह आंतरिक रूप से करता है। यह सब कुछ दूर है इसलिए आपको किसी भी बालों वाले कैशिंग कोड को लिखने की आवश्यकता नहीं है।

यहाँ देखें: http://jtds.sourceforge.net/faq.html#preparedStatmentMemoryLeak

1

डीबी 2 JDBC ड्राइवर (जेसीसी) maxStatements की तरह एक JDBC कनेक्शन संपत्ति का उपयोग करता = 10; और यह कनेक्शन के लिए बयान कैश करता है। पूल को उन्हें कैश करने की आवश्यकता नहीं है।