2010-03-11 21 views
25

¿Alguien tiene experiencia con el uso de Oracle UCP bajo carga de producción real? ¿Maneja la base de datos vuelve a conectar bien? ¿Hay algún problema de multihilo? ¿Alguien lo ha comparado con C3P0 o Apache DBCP?Qué tan bueno es Oracle Universal Connection Pool (UCP)

+0

Ver http://stackoverflow.com/questions/1427890/oracledatasource-vs-oracle-ucp-pooldatasource – skaffman

+0

Me cuesta creer que el software de Oracle no sea capaz de manejar una carga pesada y que tenga problemas. Si este fuera el caso, simplemente comprarían lo que necesitaban para hacer el trabajo. No pueden permitirse la mala prensa que traería también a los clientes descontentos. –

Respuesta

-5

mediante el uso de la combinación de conexiones (IBM RAD) para Oracle estoy obteniendo resultados más rápidos.En comparación con el concepto de programación normal. En las propiedades de agrupación de conexiones, por defecto el máximo de conexiones es 10, y el momento ideal fuera es 180 seg.

Aquí podemos configurar los usuarios max.of los usuarios acceden a la vez ....

+2

Esto no parece abordar la pregunta ... –

2

que he visto varios clientes que utilizan UCP en la producción. No he visto ninguno de los problemas que le preocupan. Se desempeña bastante bien bajo carga. Y puede manejar reconectaciones. La política de reconexión es configurable. También es compatible con RAC bastante bien.

Pero la verdadera ventaja de utilizar un grupo de conexión comercial es que alguien es responsable de cualquier problema que tenga. Se sorprendería de cuántas personas intentan desarrollar y mantener su propio grupo de conexiones.

3

He usado UCP en un sistema con alrededor de 10 transacciones por segundo (media) y 360 transacciones por segundo pico, y todavía no hay problemas. (Número es por servidor de aplicaciones con 8 servidores)

Sin embargo, los principales beneficios que obtiene de UCP es cuando se utiliza Oracle RAC y la TAF/FAN functionality, UCP with Dataguard o si está ejecutando algo fuera un servidor de aplicaciones.

29

evalué UCP 11.2.0.1 como un reemplazo para nuestro grupo de conexión legado y no puedo recomendar lo:

  • que no es totalmente compatible JDK 6/ojdbc6.jar. Por ejemplo, el uso del almacenamiento en caché de sentencias y el soporte de jmx no funciona con java 6 y arroja excepciones.
  • sin antememoria interna de sentencias - se basa en caché de la declaración del controlador JDBC (setPoolable())
  • presenté ambas cuestiones a Oracle, lo confirmaron y probablemente fijarlo cuando se dará a conocer Oracle 12.0. Pero incluso eso no es seguro.
  • Demasiadas versiones (2 lanzamientos en 3 años), también hay menos asistencia de la comunidad.
  • No es de código abierto
  • Apenas extensible. Solo unas pocas devoluciones de llamada con un diseño de interfaz horrible.
    Ejemplo: ¿Desea recibir una notificación cuando una conexión excede su TTL? Prepárese para un contenedor DataSource y un uso masivo de API UCP internas/propietarias. La documentación oficial (última actualización: 2008) no dice nada sobre cómo lograr esto.
  • grasa diseño (casi un frasco de 0,5 MB) - muchas clases con nombres similares/función (por ejemplo, hay un PoolDataSource y una ConnectionPool -. Ambos están relacionados, pero invocarse de manera diferente y proporcionan una funcionalidad ligeramente diferente)
  • java.util.la tala única


ACTUALIZA 1 (abril de 2014):
Aunque un poco fuera de tema: Como resultado de mi evaluación decidí ir con el nuevo tomcat jdbc-pool - y está funcionando casi perfectamente desde hace un año en varios sistemas de producción. Está muy bien diseñado, se actualiza regularmente, es extensible y el equipo de apache tomcat hace un good job in responding to questions/fixing issues.

ACTUALIZACIÓN 2 (julio de 2016):
ahora puede recomendar altamente HikariCP el que estoy actualmente favoreciendo sobre todas las demás agrupaciones de conexiones.
Su arquitectura, se centra en la corrección y el rendimiento es simplemente increíble.

+3

¿Podría publicar los enlaces a los problemas planteados con Oracle? –

1

He intentado UCP con nuestra aplicación basada en Eclipse Link y me encuentro con ORA-0100: Máximo abierto los cursores excedieron cada vez. He establecido el parámetro MaxStatements en 10, pero eso no tuvo ningún efecto. He inspeccionado el Heap y había cientos de objetos T4CPreparedStatement vivos pero menos de 10 declaraciones envueltas. Entonces, hay un enorme caché de afirmaciones en algún lugar que no puedo controlar.

Tomcat jdbc pool funciona como un encanto.

+0

Estamos teniendo el mismo problema. Nuestra aplicación con el antiguo conjunto de oráculos funciona bien, pero cuando cambiamos a UCP obtenemos ORA-0100. ¿Has logrado resolver el problema? – ewernli

+0

Me rendí en UCP. Estoy usando el conjunto de conexiones jdbc de Tomcat. – TomWolk

Cuestiones relacionadas