公司一个老项目的业务逻辑写在 Oracle 存储过程里面。现在有一个 jar 程序调用这个存储过程,如果存储过程执行耗时只是 3、4 个小时左右的话,能得到返回结果。但当耗时十几个小时情况下,程序一直阻塞在等待返回结果。 程序用的是 jdbc+c3p0。
c3p0 配置如下:
<property name="initialPoolSize">3</property>
<property name="maxIdleTime">360</property>
<property name="maxPoolSize">10</property>
<property name="minPoolSize">3</property>
<property name="maxStatements">0</property>
<property name="maxStatementsPerConnection">100</property>
<property name="acquireRetryAttempts">10</property>
<property name="checkoutTimeout">1000</property>
<property name="breakAfterAcquireFailure">false</property>
<property name="acquireRetryDelay">1000</property>
<property name="idleConnectionTestPeriod">60</property>
请教一下,执行存储过程的过程中,与 Oracle 的链接会被当作空闲链接吗?有没有可能是 Oracle 数据库的连接过长自动断开了.
1
heraldic 2018-12-18 07:36:36 +08:00
应该是 jdbc 的链接自动断开了,这样的程序运行,直接在 oracle 里面运行过程不好吗?为啥要在外面搞个 jar 调用?
|