Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{scrollbar}

Al ejecutar una consulta con el driver jdbc de MySQL el comportamiento normal es que devuelve la información luego de terminada la consulta a la BD.

En el caso de extraer una gran cantidad de información se podrá llegar al límite de la memoria virtual asignada al proceso y devolvernos un Java Heap Memory.

La solución a este inconveniente es solicitarle al driver que no cargue los datos en memoria y los devuelva.

Al día de la fecha de este documento hay dos soluciones

ROW BY ROW

Esta solución presentada en la propia documentación del driver de mysql, está en devolvernos los datos de a uno (row by row) y aplicable para la versión de O3 BI 5.4.022 (warning), para versiones posteriores ver más adelante.

...

Procedimiento para versión 5.4.022

  • Se debe copiar el _o3p-HD-4582.jar a la carpeta classes de la instalación.

  • Adicionalmente se debe activar la property o3.jdbc.mysql.rowbyrow=true en el archivo O3Builder.properties u O3Designer.properties, segun corresponda.

...


title
Note

Notificación

Se debe visualizar el siguiente mensaje en el log del componente actuante

MySQL Statement created to read row-by-row

...

Procedimiento para versiones superiores a la 5.4.022

  • No requiere instalar el parche

  • Se debe activar la property o3.jdbc.mysql.rowbyrow=true en el archivo O3Builder.properties u O3Designer.properties

2. CONFIGURACION DEL FETCH SIZE EN LA CONEXION

Esta solución es aplicable a todas las version de O3BI, ya que se debe ingresar al final de la URL 2 parámetros indicando a nuestra conveniencia la cantidad de registros para el Fetch Size.

defaultFetchSize="ValorDeFetchSize"

useCursorFetch=true

Si bien en teoría cuanto mayor es el valor de FetchSize mas rápido se resuelve la consulta y mayor es el consumo de memoria, nuestra experiencia indica que se puede setear un valor de 5000 de Fetch Size sin inconvenientes de consumo de memoria y mejores tiempos.

...