ग्रोवी एसक्यूएल टाइमआउट को नियंत्रित नहीं करता है, यह आपके ड्राइवर (आपके मामले में ओरेकल) पर निर्भर है। अगर आप किसी क्वेरी पर टाइमआउट सेट करना चाहते हैं, तो यह जवाब देखें। ।
यदि आप कनेक्शन स्तर सेटिंग चाहते हैं (ताकि आप प्रत्येक पर लागू टाइमआउट के साथ एकाधिक प्रश्नों के लिए एसक्यूएल ऑब्जेक्ट का पुन:उपयोग कर सकें), तो आपको अपना खुद का कनेक्शन सेट करना होगा और इसे ग्रोवी के एसक्यूएल मुखौटा में पास करना होगा। इस तरह
def dev_env = [
url:"jdbc:oracle:thin:@//aguat:1521/orcl",
user:"ricky",
password:"ricky",
driver:"oracle.jdbc.OracleDriver"
]
Class.forName(dev_env['driver'])
def conn = DriverManager.getConnection(dev_env['url'], dev_env['user'],dev_env['password'])
conn.setNetworkTimeout(null, 10000)
def sql = new Sql(conn)
setNetworkTimeout()
पर ध्यान दें जावा 7 में विधि जोड़ी गई थी। यदि आप जावा के पुराने संस्करण का उपयोग कर रहे हैं, तो इस पर एक नज़र डालें उत्तर
(आप उपयोग कर सकते हैं "oracle.jdbc.OracleDriver"
OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT
के बजाय यदि आप Oracle जार पर संकलन निर्भरता से बचना चाहते हैं तो उत्तर देने वाला फ़ील्ड उल्लेख करता है)।
फिर से, क्योंकि Groovy's Sql किसी भी कनेक्शन सेटिंग को परिवर्तित या नियंत्रित नहीं करता है, डिफ़ॉल्ट टाइमआउट वही होगा जो Oracle के ड्राइवर के लिए डिफ़ॉल्ट है।