दुर्भाग्य से सेटटाइमआउट जेडीबीसी/पोस्टग्रेस के लिए लागू नहीं किया गया है। क्या कोई तरीका है जिसे मैं अनुकरण या कामकाज कर सकता हूं? कार्यात्मक रूप से मैं क्वेरी को निष्पादित करना चाहता हूं और फिर ब्रेक लगाना चाहता हूं यदि यह एन सेकंडजेडीबीसी पोस्टग्रेस एक टाइमआउट
उत्तर
"statement_timeout" आप जो चाहते हैं उसे दिखता है।
SET statement_timeout TO 1000; -- for a second
<your_query_here>;
RESET statement_timeout; -- reset
आप RESET कथन_टाउटआउट का उपयोग कर बेहतर हैं; क्वेरी पूरी होने के बाद - यदि कोई डिफ़ॉल्ट मान है ... –
अब फिक्स्ड, धन्यवाद! –
ने इसे pgAdmin3 पर परीक्षण किया। केवल तब काम किया जब एसईटी कथन_टाउटआउट वास्तविक क्वेरी से अलग से निष्पादित किया जाता है। जब एक साथ निष्पादित किया जाता है, तो pgAdmin3 जो भी टाइमआउट मान पहले से सेट किया गया था और क्वेरी के साथ प्रदान किए गए किसी का उपयोग नहीं करता है। – Babar
एक टाइमर क्लास में क्वेरी चलाने का प्रयास करने का एक तरीका हो सकता है। टाइमर समाप्त होने के बिना समाप्त होने पर अपवाद फेंको।
Hibernate और JDO ऐसे निर्माण की आपूर्ति। शायद वे आपके लिए अच्छे विकल्प होंगे।
आपको सावधान रहना होगा कि यह कैसे लागू किया गया है; यदि गलत किया गया है, तो आप SQL कनेक्शन वाले कई अवरुद्ध धागे के साथ समाप्त होते हैं जिन्हें अभी अनदेखा किया जा रहा है। इस मुद्दे का एक हिस्सा यह है कि यदि आप कुछ करने के बीच में हैं तो आप एक अपवाद फेंकने के लिए थ्रेड को मजबूर नहीं कर सकते हैं। –
क्या होगा यदि आप अपने डेटा स्रोत के लिए c3p0 का उपयोग करना चाहते थे? इसमें बहुत से कॉन्फ़िगर करने योग्य विकल्प हैं, और क्रैकी डेटाबेस और नेटवर्क के लिए, उदाहरण के लिए, अधिग्रहण रीट्रीएट्सप्ट्स, अधिग्रहण रीट्रीडेले, और ब्रेकएफ्टरएक्वायरफेलर।
स्थानीय कीवर्ड का उपयोग वर्तमान लेनदेन में statement_timeout के दायरे को सीमित करता है। इस तरह, अगर कुछ भी गलत हो जाता है (उदा। यह समय समाप्त हो जाता है) टाइमआउट रीसेट हो जाता है।
BEGIN TRANSACTION;
SET LOCAL statement_timeout TO 1000; -- one-second timeout
SELECT COUNT(*) FROM really_huge_table; -- your slow query
ROLLBACK; -- reset
- 1. पोस्टग्रेस यूटीएफ -8 क्लॉड्स जेडीबीसी
- 2. नोड-पोस्टग्रेस के साथ लिस्टेन क्वेरी टाइमआउट?
- 3. जेडीबीसी
- 4. जावा/जेडीबीसी
- 5. हेरोकू पर धीमी पोस्टग्रेस क्वेरी को रैक-टाइमआउट
- 6. पोस्टग्रेस
- 7. पोस्टग्रेस
- 8. पोस्टग्रेस
- 9. पोस्टग्रेस
- 10. पोस्टग्रेस
- 11. पोस्टग्रेस
- 12. पोस्टग्रेस
- 13. पोस्टग्रेस
- 14. पोस्टग्रेस
- 15. पोस्टग्रेस
- 16. पोस्टग्रेस
- 17. जेडीबीसी एक विदेशी कुंजी
- 18. वसंत जेडीबीसी बनाम जेडीबीसी
- 19. जेडीबीसी
- 20. जेडीबीसी
- 21. जेडीबीसी
- 22. जेडीबीसी
- 23. जेडीबीसी
- 24. जेडीबीसी
- 25. जेडीबीसी
- 26. जेडीबीसी
- 27. जेडीबीसी
- 28. जेडीबीसी
- 29. क्या मैं एक प्रश्न के लिए जेडीबीसी टाइमआउट सेट कर सकता हूं?
- 30. जेडीबीसी
मुझे यह प्रश्न मिला और मुझे एक पायथन/psycopg2 समस्या का सामना करने में भी मदद मिली। Psycopg2 ने कनेक्शन समय पर टाइमआउट सेटिंग की अनुमति दी है, लेकिन यह इंटरफ़ेस मेरे मामले में दूर किया गया था। SO पर खोज करने वाले अन्य लोगों को लाभ पहुंचाने के लिए इस टिप्पणी को जोड़ना। – SetJmp