utilizando la función de almacenamiento en caché implícito del controlador JDBC de Oracle

Estoy bastante seguro de que alguien más ya hizo esta pregunta, pero todavía no pude encontrar una respuesta satisfactoria. Por lo tanto, aquí está mi escenario: quiero usar el almacenamiento en caché de la declaración implícita del controlador JDBC de Oracle (documentado aquí:http://docs.oracle.com/cd/B28359_01/java.111/b31224/stmtcach.htm#i1072607)

Necesito usar las conexiones de un proveedor de JDBC de terceros (para ser más específico, Tomcat JDBC) y no tengo otra opción.

El problema es que la forma de habilitar el almacenamiento en caché implícito es un proceso de dos pasos (de acuerdo con la documentación):

1.

Llame a setImplicitCachingEnabled (true) en la conexión o llame a OracleDataSource.getConnection con la propiedad ImplicitCachingEnabled establecida en true. Usted establece ImplicitCachingEnabled llamando a OracleDataSource.setImplicitCachingEnabled (true)

2.

Además de llamar a uno de estos métodos, también debe llamar a OracleConnection.setStatementCacheSize en la conexión física. El argumento que proporciona es el número máximo de declaraciones en el caché. Un argumento de 0 no especifica el almacenamiento en caché.

Puedo vivir con 1 (de alguna manera puedo configurar mi grupo para usar elOracleDataSource como una fábrica de conexiones primaria y en la que puedo configurar elOracleDataSource.setImplicitCachingEnabled(true)). Pero en el segundo paso, ya necesito que la conexión esté presente para llamar alsetStatementCacheSize.

Mi pregunta es si existe la posibilidad de especificar un valor predeterminado para el nivel de origen de datosstatementCacheSize para que pueda obtener de laOracleDataSource conexiones que ya están habilitadas para el almacenamiento en caché implícito.

PD: algunas preguntas relacionadas que encontré aquí:Controlador Oracle jdbc: caché de sentencias implícitas o setPoolable (true)?

Actualización (posible solución):

Eventualmente hice esto:

Creado un grupo de conexión nativa utilizandooracle.jdbc.pool.OracleDataSource.Creado un grupo de conexiones JDBC Tomcat utilizandoorg.apache.tomcat.jdbc.pool.DataSource que utiliza el nativo (ver la propiedaddataSource).Habilitado mediante AOP un punto de entrada para que después de la ejecución de 'ejecución (public java.sql.Connection oracle.jdbc.pool.OracleDataSource.getConnection ())' recojo el objeto y realizo la configuración que quería.

La solución funciona muy bien; Simplemente no estoy contento de haber tenido que escribir alguna placa para hacerlo (esperaba una propiedad directa).

Respuestas a la pregunta(2)

Su respuesta a la pregunta