Comment est bon Oracle Universal Connection Pool (UCP)

quelqu'un a-t-il de l'expérience avec L'utilisation D'Oracle UCP sous une charge de production réelle? La base de données se reconnecte-t-elle bien? Y a-t-il des problèmes de multi-threading? Quelqu'un l'a-t-il comparé avec C3P0 ou Apache DBCP?

25
demandé sur skaffman 2010-03-11 11:29:17

6 réponses

j'ai évalué UCP 11.2.0.1 en remplacement de notre pool de connexion héritage et je ne peux pas le recommander:

  • ne supporte pas totalement jdk 6 / ojdbc6.pot. Par exemple, l'utilisation de la mise en cache des instructions et du support jmx ne fonctionne pas avec java 6 et les exceptions des lancements.
  • pas du cache d'instruction - il s'appuie sur le cache de la déclaration du pilote jdbc (setPoolable())
  • j'ai soumis les deux numéros pour oracle, ils l'ont confirmé et le corrigeront probablement quand oracle 12.0 sera libéré. Mais même ce n'est pas pour vous.
  • trop peu de versions (2 sorties en 3 ans), trop peu de soutien communautaire.
  • Open Source
  • difficilement extensible. seulement quelques callbacks avec une conception d'interface horrible.

    Exemple: vous voulez être averti quand une connexion dépasse sa TTL? Préparez-vous à un emballage Source de données et utilisation massive d'API UCP internes/propriétaires. La documentation officielle (dernière mise à jour: 2008) reste muette sur la manière d'y parvenir.
  • Graisse de conception (presque un pot de 0,5 Mo) - beaucoup de classes avec des noms/fonctions similaires (par exemple, il y a un PoolDataSource et ConnectionPool - les deux sont liées mais invoquées différemment et fournissent des fonctionnalités légèrement différentes.)
  • java.util.la journalisation seulement



mise à jour 1 (Avril 2014):

Bien que légèrement hors-sujet: la suite de mon évaluation, j'ai décidé d'aller avec le nouveau tomcat jdbc-piscine - et il fonctionne presque parfaitement depuis plus d'un an dans plusieurs systèmes de production. Il est très bien conçu, mis à jour régulièrement, extensible et l'équipe apache tomcat fait un bon travail pour répondre aux questions / corriger .

mise à jour 2 (juillet 2016):

Je peux maintenant vous recommandons fortement HikariCP ce que je favorise actuellement par rapport à toutes les autres piscines de connexion.

son architecture, son souci de l'exactitude et de la performance est tout simplement incroyable.

31
répondu MRalwasser 2017-11-30 11:59:34

j'ai utilisé UCP dans un système avec environ 10 transactions par seconde (moyenne) et 360 transactions par seconde de pic, et aucun problème pour le moment. (Nombre par serveur app avec 8 serveurs)

cependant les principaux avantages que vous obtenez de UCP est lorsque vous utilisez Oracle RAC et le TAF/FAN fonctionnalité, UCP avec Dataguard ou si vous utilisez quelque chose dehors un serveur d'applications.

3
répondu oluies 2013-06-05 08:06:17

j'ai décrit les problèmes de performance/évolutivité que j'ai observés avec UCP par rapport à la mise en cache de connexion implicite ici: https://stackoverflow.com/a/27512252/676877

3
répondu Brett Okken 2017-05-23 12:02:05

j'ai vu plusieurs clients utiliser UCP en production. J'ai vu aucune des questions qui vous préoccupent. Il fonctionne assez bien sous charge. Et peut gérer se reconnecte. La Politique de reconnexion est configurable. Il soutient également RAC assez bien.

mais le vrai avantage d'utiliser un pool de connexion commerciale est que quelqu'un est responsable de tous les problèmes que vous avez. Vous seriez surpris du nombre de personnes qui essaient de développer et de maintenir leur propre pool de connexion.

2
répondu bconneen 2010-05-04 16:47:29

je viens d'essayer UCP avec notre application basée sur Eclipse Link et je tombe sur ORA-0100: les curseurs ouverts maximums sont dépassés à chaque fois. J'ai mis le paramètre MaxStatements à 10 mais cela n'a eu aucun effet. J'ai inspecté le tas et il y avait des centaines D'objets T4CPreparedStatement vivants, mais moins de 10 relevés enveloppés. Donc il y a un énorme cache de déclaration quelque part que je ne peux pas contrôler.

la piscine Tomcat jdbc fonctionne à merveille.

1
répondu TomWolk 2015-04-27 09:54:36

en utilisant la connexion pooling (IBM RAD) à oracle, j'obtiens des résultats plus rapides.par rapport au concept de programmation normal.dans les propriétés de mise en commun des connexions, par défaut le nombre max.de connexions est de 10,et le moment idéal est de 180 secondes.

ici nous pouvons mettre en place le max.des utilisateurs de l'accès d'utilisateurs à la fois....

-5
répondu murali 2010-03-16 06:42:22