2012-07-24 80 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