Un poco de historia sobre la aplicación que estoy a hablar de las siguientes líneas:Oracle T4CPreparedStatement pierde memoria?
XYZ es un banco de trabajo enmascaramiento de datos del eclipse de aplicación RCP: le das una columna de tabla de origen, y una tabla de destino columna, aplicaría una transformación (encriptación/mezcla/etc.) y copiaría los datos de la fila de la tabla de origen a la tabla de destino. Ahora, cuando enmascare n tablas a la vez, esta aplicación lanza n hilos.
Aquí es la cuestión:
se han topado con un problema de producción en el primer despliegue de la aplicación anteriormente dicho. Lamentablemente, no tengo ningún registro para llegar a la raíz. Sin embargo, traté de ejecutar esta aplicación en la región de prueba y hacer una prueba de estrés.
Cuando recogí archivos .hprof y los ejecuté a través de un analizador (suKit), noté que los objetos de oracle.jdbc.driver.T4CPreparedStatement mantenían el montón. El análisis también me dice que una de mis clases contiene una referencia a este objeto preparado y, por lo tanto, n hilos tienen n tales objetos. T4CPreparedStatement parecía tener matrices de caracteres: lastBoundChars y bindChars cada uno de los tamaños char [300000].
Entonces, investigué un poco (google!), Obtuve ojdbc6.jar e intenté descompilar T4CPreparedStatement. Veo que T4CPreparedStatement amplía OraclePreparedStatement, que gestiona dinámicamente el tamaño de la matriz de lastBoundChars y bindChars.
Por lo tanto, mis preguntas aquí son:
- ¿Alguna vez ha topado con un problema como este ?
- ¿Conoces la importancia de lastBoundChars/bindChars?
- Soy nuevo en la creación de perfiles, ¿así que usted piensa que no lo estoy haciendo bien? (También me encontré con los hprofs través MAT - y este era el principal problema identificado - así, yo realmente no creo que podría estar equivocado?)
he encontrado algo similar en la web aquí : http://forums.oracle.com/forums/thread.jspa?messageID=2860681
Valora tus sugerencias/consejos.
1. Sí. 2. Sí. 3. No. Hay un libro blanco en el sitio de Oracle que explica las concesiones de ingeniería en estos campos. http://www.oracle.com/technology/tech/java/sqlj_jdbc/pdf/memory%20management%20aug%202009.pdf –
También me metí en el mismo problema. ¿Tienes alguna solución? –