Как получить соединение при использовании Oracle UCP Connection Pool Manager?

1

Ищите советы по наилучшей практике для получения соединений при использовании диспетчера пулов Oracle UCP Connection Manager. Я не могу сказать из документации, если вы должны хранить ссылки на объекты PoolDataSource и получать от них соединения, или если вы просто должны использовать своего Менеджера для соединения с каким-то кодом следующим образом:

(Connection)getConnectionPool(connectionPoolName).borrowConnection(getRetrievalMap().get(connectionPoolName)).getPhysicalConnection();

Все примеры, похоже, используют объекты PoolDataSource для получения их соединений. Люди держат их вокруг, а затем просто используют Менеджера для администрирования с пулами? Или они получают объекты java.sql.Connection непосредственно из Менеджера с помощью getPhysicalConnection()? Я немного обеспокоен использованием getPhysicalConnection(), не уверен, знает ли пул об этом. Например, закрытие соединения, полученного с помощью getPhysicalConnection(), вернется в пул?

Есть ли лучший способ получить подключения от Менеджера, которого я не вижу?

  • 0
    Отлично сработано! Вы должны опубликовать ответ на свой вопрос, когда сможете решить проблему самостоятельно.
  • 0
    Я принял твой совет. Я все еще хотел бы знать, получает ли кто-нибудь свои соединения от PoolManager, и если да, то как.
Теги:
database
database-connection
connection-pooling

1 ответ

2
Лучший ответ

Отвечая на мой вопрос:

После некоторой отладки, похоже, мы не должны использовать getPhysicalConnection() при использовании пула. Выполнение close() на нем не возвращает его в пул сразу, где close() в соединении из PoolDataSource возвращается прямо в пул. Кроме того, физическое соединение является экземпляром TC4Connection, где Connection from PoolDataSource является прокси с некоторыми полями объединения и ссылкой на T4CConnection.

Поэтому я предполагаю, что мы будем сохранять объекты PoolDataSource и получать от них свои соединения. Я хочу, чтобы документы Oracle охватывали эту тему в главе "Менеджер".

  • 0
    Да, я просто столкнулся с той же проблемой. Я создаю синглтон для источника данных. stackoverflow.com/questions/43530326/...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню