2010-03-11 5 views
25

Есть ли у кого-нибудь опыт использования Oracle UCP при реальной производственной нагрузке? Поддерживает ли он репликацию базы данных хорошо? Есть ли многопоточные проблемы? Кто-нибудь сравнивал его с C3P0 или Apache DBCP?Насколько хорош Oracle Universal Connection Pool (UCP)

+0

См. Http://stackoverflow.com/questions/1427890/oracledatasource-vs-oracle-ucp-pooldatasource – skaffman

+0

Мне нелегко полагать, что программное обеспечение Oracle не сможет справиться с большой нагрузкой и будет иметь проблемы. Если бы это было так, они бы просто купили то, что им нужно, чтобы выполнить свою работу. Они не могут позволить себе плохую прессу, что это принесло бы также недовольство клиентов. –

ответ

-5

, используя пул соединений (IBM RAD) для oracle, я получаю более быстрые результаты. По сравнению с обычной концепцией программирования. В свойствах объединения пулов по умолчанию максимальное число соединений составляет 10, а идеальное время выход составляет 180 сек.

здесь мы можем настроить max.of пользователей пользователи доступа в то время ....

+2

Это не похоже на вопрос ... –

2

Я видел несколько клиентов, использующих UCP в производстве. Я не видел ни одной проблемы, о которой вы беспокоитесь. Он работает довольно хорошо под нагрузкой. И может обрабатывать переподключения. Политика повторного подключения настраивается. Он также хорошо поддерживает RAC.

Но реальный потенциал использования коммерческого пула соединений заключается в том, что кто-то несет ответственность за любые возникшие у вас проблемы. Вы были бы удивлены, как многие люди пытаются разработать и поддерживать собственный пул соединений.

3

Я использовал UCP в системе со скоростью около 10 транзакций в секунду (в среднем) и 360 транзакций в секунду, и никаких проблем пока нет. (Номер находится на сервере приложений с 8 серверов)

Однако основные преимущества вы получаете от ОГП, когда вы используете Oracle RAC и TAF/FAN functionality, UCP with Dataguard или если вы работаете что-то вне в сервер приложений.

29

я оценил UCP 11.2.0.1 в качестве замены для нашего наследия пула соединений , и я не могу рекомендовать его:

  • это не полностью поддерживает JDK 6/ojdbc6.jar. Например, использование кэширования инструкций и поддержка jmx не работают с java 6 и генерируют исключения.
  • нет внутреннего кэша заявления - он опирается на кэше заявления в JDBC драйвера (setPoolable())
  • Я представил как вопросы к оракулу, они подтвердили это, и, вероятно, исправить его, когда оракул 12,0 будет выпущен. Но даже это не так.
  • Слишком мало выпусков (2 выпуска через 3 года), слишком меньше поддержки сообщества.
  • Не Open-Source
  • Едва расширяемой. Только несколько обратных вызовов с ужасным дизайном интерфейса.
    Пример: вы хотите получать уведомления, когда соединение превышает его TTL? Подготовьтесь к обертке DataSource и массовому использованию внутренних/проприетарных API UCP. Официальная документация (последнее обновление: 2008) остается беззвучным, как добиться этого.
  • жира дизайн (почти 0,5 MB баночка) - множество классов с одинаковыми именами/функции (например, есть PoolDataSource и ConnectionPool. - оба связаны, но вызываются по-другому и обеспечивают несколько иную функциональность)
  • java.util.вход только


UPDATE 1 (апрель 2014):
Хотя немного не по теме: В результате моей оценки, я решил пойти с новым tomcat jdbc-pool - и она работает почти отлично с года в нескольких производственных системах. Он очень хорошо разработан, регулярно обновляется, расширяется, и команда apache tomcat делает good job in responding to questions/fixing issues.

UPDATE 2 (июль 2016):
теперь я могу очень рекомендую HikariCP, который я в настоящее время благоприятствующий над всеми другими пулами соединений.
Его архитектура, сосредоточиться на правильности и производительности просто потрясающе.

+3

Не могли бы вы разместить ссылки на вопросы, поднятые в Oracle? –

3

Я описал/вопросы масштабируемости производительности я наблюдавшийся ОГП по сравнению с неявным кэшированием соединения здесь: https://stackoverflow.com/a/27512252/676877

1

Я просто попытался UCP с нашим приложением на основе Eclipse, Link и я бег в ORA-0100: Максимальная открытой курсоры превышали каждый раз. Я установил параметр MaxStatements равным 10, но это не повлияло. Я проверил кучу, и были сотни объектов T4CPreparedStatement, но менее 10 завернутых операторов. Таким образом, есть огромный кеш приложений, который я не могу контролировать.

Tomcat jdbc pool работает как очарование.

+0

У нас такая же проблема. Наше приложение со старым пулом оракулов прекрасно работает, но когда мы переключаемся на UCP, мы получаем ORA-0100. Удалось решить проблему? – ewernli

+0

Я сдался на UCP. Я использую пул соединений Tomcat jdbc. – TomWolk

Смежные вопросы