2013-12-20 45 views
0

我正在使用groovy連接到數據庫,並且它的工作原理與我的源代碼很好。最近,我可以訪問另一個數據庫,但我似乎可以使用Groovy連接到它。防止連接時出現超時

我的錯誤(S):

2013年12月20日下午十二時22分26秒org.codehaus.groovy.runtime.StackTraceUtils消毒

警告:消毒堆棧跟蹤:

神諭.net.ns.NetException:網絡適配器無法建立連接

有沒有辦法擴展連接,使其不會超時?

def db = Sql.newInstance(
    'jdbc:oracle:thin:@10.10.18.75:1521:radd', 
    'report_user', 'createreport', 'oracle.jdbc.pool.OracleDataSource') 
+0

您是否能夠從同一臺機器與其他客戶端進行連接?您的消息錯誤似乎不是超時但連接問題(例如,不可達數據庫主機) – topr

回答

2

據Groovy的API爲newInstance你應該能夠在性能鍵值對,併爲Oracle使用ConnectionWaitTimeout屬性通過。

DEF DB = Sql.newInstance( URL: 'JDBC:預言:瘦:@ 10.10.18.75:1521:RADD', 用戶: 'report_user',密碼: 'CREATEREPORT',driverClassName:「ORACLE .jdbc.pool.OracleDataSource',connectionWaitTimeout:10)

+0

但作爲java.util.Properties的一個實例,而不是String。 Groovy的鑄造技巧很簡單,但它不能將String作爲屬性來投射,對嗎? – topr

+0

根據文檔,它只是一個字符串。此外,我更新了這個例子是正確的。我沒有看到關於使用屬性的註釋以及它如何影響用戶名/密碼。 –

+0

你能指點我的文檔的特定部分?我有正確的Sql類的來源(Groovy 2.1.7),並且沒有名爲屬性的參數和不屬於類型的方法。 – topr