Как использовать TimeToLiveConnectionTimeoutCallback в Oracle UCP - PullRequest
0 голосов
/ 14 декабря 2010

Как использовать TimeToLiveConnectionTimeoutCallback в Oracle UCP (Универсальный пул соединений)?

Я ожидаю, что у PoolDataSource или UniversalConnectionPoolManager есть интерфейс для регистрации такого обратного вызова.И я ожидал бы, что такой интерфейс передаст соответствующее Соединение интерфейсом.Ни то, ни другое не верно.

Кажется, что мне нужно зарегистрировать отдельный TimeToLiveConnectionTimeoutCallback для каждого UniversalPooledConnection, который кажется мне хитрым, безобразным (много UCP-импорта / склеивания кода) и трудным (создать оболочку DataSource).

Или я что-то не так понял?К сожалению, документация молчит.

1 Ответ

0 голосов
/ 30 декабря 2010

Через некоторое время я понял, что мое предположение верно. Я должен зарегистрировать обратный вызов для каждого Connection хитрым и не элегантным способом.

Я также открыл запрос поддержки от оракула, который подтвердил это:

недействительным registerTimeToLiveConnectionTimeoutCallback (TimeToLiveConnectionTimeoutCallback cbk) выбрасывает java.sql.SQLException

регистрирует соединение времени жизни тайм-аут обратного вызова с подключением.

Объект обратного вызова зарегистрирован каждое объединенное соединение. Это ошибка зарегистрировать более 1 TimeToLiveConnectionTimeoutCallbacks на том же соединении, иначе вы получит исключение.

Как уже упоминалось, обратный вызов объект зарегистрирован в каждом пуле подключение.

Из-за некоторых других ошибок и / или недостатков дизайна (конечно, последние могут быть субъективными) Я решил не UCP в моем проекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...