Ver Mensaje Individual
  #12 (permalink)  
Antiguo 03/09/2009, 17:15
nick_name
 
Fecha de Ingreso: marzo-2009
Mensajes: 37
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: JSF, EJB3 consulta con mas de 1000 registros

Cita:
Iniciado por elkamote Ver Mensaje
Hola.
Viendo tu error: "Caused by: java.lang.OutOfMemoryError: Java heap space"

Lo que sucede es que la aplicación (en particular, la consulta que mencionas) ahora utiliza más memoria de la que se asignó a tu servidor de aplicaciones.

Para solucionarlo, se me ocurren 2 opciones:
1. Aumentas la cantidad de memoria al servidor de aplicaciones.
En la consola de glassfish ir a: "application server" ->"configuracion jvm" -> "opciones jvm". Creo que el parámetro que debes aumentar es "-Xmx"
Aunque esta es una solución parche, pues a medida que aumenta el número de registros retornados, aumenta el consumo de memoria.

2. Controlar el número de registros retornados por la (o las) consulta.
Con esto, controlas además, el consumo de memoria.

Saludos.
Gracias por tu sugerencia tome la segunda opcion... quedando de la siguiente manera:

Código:
    public List<ServicioProveedor> getPorLetra(Object letra, int posicionInicio, int tamañoFragmento) {
        return em.createQuery("select object(o) from ServicioProveedor as o WHERE o.servicio.nombre LIKE :letra ORDER BY o.servicio.nombre ASC")
                .setParameter("letra", letra.toString().toUpperCase() + "%")
                .setFirstResult(posicionInicio)
                .setMaxResults(tamañoFragmento)
                .getResultList();
    }
El problema ahora es que utilizo Firebird y funciona bien como unas 8 veces esta consulta despues me tira el siguiente error:

Código:
javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
	java.rmi.RemoteException: null; nested exception is: 
	Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: org.firebirdsql.jdbc.FBDriverNotCapableException: Not yet implemented.
Error Code: 0
No si alguna persona por aqui utiliza Firebird para paginar datos me pudiera orientar un poco con esto...