Friday 15 June 2012

oracle - How to set timeout on a SQL statement with Hibernate -


मैंने जो कोशिश की है ...

मानदंड का उपयोग करना:

  criteria.setTimeout (1);  

=> शून्य प्रभाव

एचक्यूएल का प्रयोग:

  वापसी getession ()। CreateQuery ("उपयोगकर्ता से")। SetTimeout ( 1) .list ();  

=> शून्य प्रभाव

यहां तक ​​कि लेन-देन स्तर पर भी इसे करने की कोशिश की:

  @ ट्रान्सैक्शनल (टाइमआउट = 1, पठन केवल सच =), प्रचार = प्रचार। REQUIRES_NEW)  

कुछ प्रभाव; क्वेरी के निष्पादन के बाद एक अपवाद फेंक दिया जाता है, लेकिन 1 सेकंड के बाद लेनदेन को निरस्त नहीं किया जाता है।

यह परमाणुओस टीएम के साथ जेटी सर्वर पर चल रहा है।

मैं एक टाइमआउट किसी विशिष्ट क्वेरी पर, ताकि कॉल टाइमआउट के बाद निरस्त हो जाए (जो कि 1 सेकेंड नहीं होगा, यह केवल तेज़ परीक्षण करने के लिए है)?

UPDATE

एक ही परीक्षा चलती है, लेकिन परमाणुको / सीतनिद्रा में होना / स्प्रिंग (इसलिए सादे जेडीबीसी का उपयोग करके) को पार करते समय टाइमआउट काम करता है (लगभग कम से कम, यह एच 2 पर बिल्कुल 1 सेकंड नहीं होगा, यह वास्तव में करीब आ गया है, ओरेकल पर यह कभी-कभी 2 से अधिक था सेकंड)। परिणाम अपेक्षित था: SQLException: ORA-01013: उपयोगकर्ता ने वर्तमान ऑपरेशन रद्द करने का अनुरोध किया

UPDATE

जब मैं हाइबरनेट डीबग करना चाहता हूं, तो मुझे लगता है कि टाइमआउट को तैयार किए गए स्टार्टमेंट पर सेट किया गया है, लेकिन इसका कोई प्रभाव नहीं है।


No comments:

Post a Comment