¿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)
Respuesta
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 ....
Esto no parece abordar la pregunta ... –
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.
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.
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 unaConnectionPool
-. 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.
¿Podría publicar los enlaces a los problemas planteados con Oracle? –
he descrito los problemas de rendimiento/escalabilidad que he observado con UCP en comparación con el almacenamiento en caché conexión implícita aquí: https://stackoverflow.com/a/27512252/676877
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.
- 1. Connection Pool Monitoring
- 2. Hibernate config connection connection pool size
- 3. ¿Qué tan bueno es SecRandomCopyBytes?
- 4. ¿Qué tan bueno es startswith?
- 5. ¿Qué tan bueno es VTK?
- 6. JBoss Database Connection Pool
- 7. Redis serviceStack pool connection client
- 8. Monitoreo Bone cp Connection pool
- 9. ¿Por qué LuaJIT es tan bueno?
- 10. ¿Qué tan universal es la instrucción LIMIT en SQL?
- 11. c3p0 Connection Pool no cierra las conexiones
- 12. Controlador UCP de Oracle y tomcat: subprocesos que no se pueden detener
- 13. ¿Qué tan "caro" es Oracle Enterprise Manager?
- 14. ¿Qué tan "bueno" es el emulador de Android?
- 15. ¿Qué tan bueno es FreeBSD como plataforma de desarrollo?
- 16. ¿Qué tan bueno es el método Rails sanitize()?
- 17. ¿Qué tan bueno es NVCC en las optimizaciones de código?
- 18. ¿Qué es un Thread-pool?
- 19. puede usar Hibernate y Tomcat Connection pool al mismo tiempo?
- 20. ¿Qué tan bueno es Dotfuscator Community Edition? ¿Qué es "suficientemente ofuscador"?
- 21. ¿Qué tan grave es ignorar la excepción Oracle DUP_VAL_ON_INDEX?
- 22. iOS: Universal App - Release tan solo iPhone
- 23. Utilizando C# MethodInvoker.Invoke() para una aplicación GUI ... es tan bueno?
- 24. ¿Es RNGCryptoServiceProvider tan bueno como un RNG de hardware?
- 25. ¿Por qué Sass es bueno?
- 26. JDBCTemplate con TransactionTemplate y Connection Pool, cuyo origen de datos es
- 27. ¿Hay algo tan bueno como TOAD para Postgres (Windows)?
- 28. DVCS Choices - ¿Qué es bueno para Windows?
- 29. ¿Qué tan bueno es JMeter para probar las páginas web de ASP .NET?
- 30. ¿Qué tan bueno es el tipo de datos de geografía en el servidor sql 2008?
Ver http://stackoverflow.com/questions/1427890/oracledatasource-vs-oracle-ucp-pooldatasource – skaffman
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. –