如何在Oracle UCP中使用TimeToLiveConnectionTimeoutCallback

时间:2010-12-14 16:11:08

标签: java oracle jdbc connection-pooling ucp

如何在Oracle UCP(通用连接池)中使用TimeToLiveConnectionTimeoutCallback?

我希望PoolDataSource或UniversalConnectionPoolManager都有一个接口来注册这样的回调。我希望这样的接口可以通过接口传递相关的Connection。两者都不是。

似乎我必须向每个UniversalPooledConnection注册一个单独的TimeToLiveConnectionTimeoutCallback,这对我来说似乎很棘手,丑陋(许多UCP导入/粘合代码)和困难(创建一个DataSource包装器)。

或者我弄错了什么? 不幸的是,文档保持沉默。

1 个答案:

答案 0 :(得分:0)

经过一段时间后,我意识到我的假设是正确的。 我必须以一种棘手而不雅的方式向每个Connection注册一个回调。

我还从oracle打开了一个支持请求,确认了这一点:

  

空隙   registerTimeToLiveConnectionTimeoutCallback(TimeToLiveConnectionTimeoutCallback   cbk)抛出java.sql.SQLException

     

注册生存时间连接   带连接的超时回调。

     

注册回调对象   每个汇集的连接。这是一个错误   注册超过1   TimeToLiveConnectionTimeoutCallbacks   在同一个连接上,否则你   会得到例外。

     

正如其中所述,回调   对象已在EACH池中注册   连接。

由于其他一些错误和/或设计缺陷(当然,后者可能是主观的) 我决定不在我的项目中使用UCP。