如何在Oracle UCP(通用连接池)中使用TimeToLiveConnectionTimeoutCallback?
我希望PoolDataSource或UniversalConnectionPoolManager都有一个接口来注册这样的回调。我希望这样的接口可以通过接口传递相关的Connection。两者都不是。
似乎我必须向每个UniversalPooledConnection注册一个单独的TimeToLiveConnectionTimeoutCallback,这对我来说似乎很棘手,丑陋(许多UCP导入/粘合代码)和困难(创建一个DataSource包装器)。
或者我弄错了什么? 不幸的是,文档保持沉默。
答案 0 :(得分:0)
Connection
注册一个回调。
我还从oracle打开了一个支持请求,确认了这一点:
空隙 registerTimeToLiveConnectionTimeoutCallback(TimeToLiveConnectionTimeoutCallback cbk)抛出java.sql.SQLException
注册生存时间连接 带连接的超时回调。
注册回调对象 每个汇集的连接。这是一个错误 注册超过1 TimeToLiveConnectionTimeoutCallbacks 在同一个连接上,否则你 会得到例外。
正如其中所述,回调 对象已在EACH池中注册 连接。
由于其他一些错误和/或设计缺陷(当然,后者可能是主观的) 我决定不在我的项目中使用UCP。