2012-07-24 48 views
2

我使用Java 1.7的Hibernate v4.1.4.final.jar連接到Oracle 10g服務器。這是一個獨立的Java程序。如何在休眠狀態下配置連接超時?

不幸的是,我的查詢需要30多分鐘才能運行。我想知道在哪裏可以配置連接超時&讀取超時,以便在運行此獨立程序時,它不會超時並拋出錯誤?

謝謝!

+0

你如何獲得的_DataSource/Connection_爲休眠? – 2012-07-24 23:28:13

+0

通過hibernate.cfg.xml – Mike 2012-07-25 00:17:17

回答

4

有,你可以嘗試以下幾種選擇:

  1. 如果您使用支持超時功能,可通過屬性來配置JDBC驅動程序,那麼你可以對物業使用傳遞:hibernate.connection.<propertyname>
  2. 使用外部連接提供商,如c3p0DBCP,並控制超時爲外部提供商支持。
  3. 將您的休眠配置爲使用DataSource而不是簡單Connection並通過該控制超時。

我能找到的Oracle driver的最近物業是oracle.jdbc.ReadTimeout物業。因此,在您的休眠配置中,全名將爲hibernate.connection.oracle.jdbc.ReadTimeout ..hope這適用於您。

+0

DJ,我使用Oracle JDBC驅動程序,名爲ojdbc14.jar,用於Oracle 10g。你有一個代碼片段來使用這個Jar的超時時間嗎? – Mike 2012-07-25 06:01:29

+0

邁克,我在答案中增加了更多信息。 – 2012-07-26 03:30:18

+0

什麼是postgres的等價物? – faizan 2017-08-31 05:26:49

0

默認情況下,它不會拋出任何類型的錯誤,FWIW ...如果您運行查詢,它將工作,AFAIK。

在連接超時的條款,你可以在你的

hibernate.connection.url特定選項來指定您的數據庫,例如:Postgres的我最好add&connectTimeout=0