java.lang.OutOfMemoryError: PermGen space
El mensaje es un síntoma de un «barrido de recolección de basura incompleta, donde los recursos no están debidamente puesto en libertad tras descargar / reiniciar. Se acusa a CGLIB, Hibernate, Tomcat, y aun JVM de Sun.
Si detiene una aplicación web conteniendo hibernate en tomcat, no toda la memoria es liberada. Los modelos de objetos son aún mantenidos en memoria por cglib. Esto conduce a un error OutOfMemory después de varias recargas. http://opensource.atlassian.com/projects/hibernate/browse/HHH-851
El valor por defecto del espacio PermGen es de 64 Mb en la máquina virtual (VM) de Sun. Este valor es suficiente normalmente para las aplicaciones que corren de forma independiente. En el caso de una aplicación que corra en un servidor web tipo Tomcat o un servidor de aplicaciones, hay casos en los que este valor no es suficiente.
En primer lugar, es posible que la aplicación necesite más espacio por su propia arquitectura. Las librerías Spring e Hibernate son librerías grandes, que cargan muchas clases y además hacen uso de proxies y carga dinámica de clases que hacen uso del espacio PermGen por lo que puede que los 64Mb no sean suficientes. Este caso se da cuando la excepción con el error se produce nada mas arrancar el servidor web o de aplicaciones o al acceder a la aplicación. Para solventar este problema bastará con aumentar el tamaño máximo de la memoria de tipo PermGen según veremos más adelante.encuentra con el problema.
Sin embargo, en general, si usted está experimentando este error, modificando su asignación de memoria (ajustando el tamaño de su PermGen) sólo va a alterar la frecuencia con que se
If you stop a web application containing hibernate in tomcat, not the whole memory is released. The model objects are still kept in memory by cglib. This leads to a OutOfMemory Error after several reloads.
Fuentes:
http://www.jroller.com/agileanswers/entry/preventing_java_s_java_lang
véase también Foro: http://forums.sun.com/thread.jspa?threadID=661841&messageID=3880883
Discutiendo la Base de Datos
Hola chicos, con Carla estuvimos viendo cuales serían las posibles tablas que se necesitan para el proyecto
Posibles tablas
• Universidades: Convenio con otras universidades.
• Becario: Estudiantes ¿ESPOL? que hacen uso de esos convenios. (en esta no estamos seguras si son solo estudiantes de la ESPOL o pueden ser estudiantes de otras universidades )
• Rubro_tipo: información del rubro
• Rubro_becario: gastos del estudiante (becario).
• USUARIO_ROL: el usuario que utiliza el sistema iniciando sesión.
• OPCIONES_POR_ROL: Opciones de menú que se mostrarán según el rol.
Y a continuación los campos de cada tabla
Universidad: codigo, nombre, latitud, longitud, pais, url
Becario: noCedula, Nombre, apellido, sexo, edad, nacionalidad, instrucción, profesión
Rubro_becario: rubro_tipo, gastos, mes, año
Rubro_tipo: nombre_rubro, valor_maximo
Usuario_rol: nombre_rol, nom_usuario, contrasenia
Opciones_por_rol nombre
Si creen que hace falta algo, lo comentantan…
Verónica Lara
CSS para datatables en YUI
Para darle estilo a los widgets de YUI, en este caso datatable, usted tiene dos opciones:
–>Usar el estilo por defecto para la tabla
–>O usted, conociendo la estructura de la tabla como fue de definida, con esos mismos nombres de clase, darle un efecto personalizado.
Para ello:
Si desea usar el estilo por defecto, aplique el nombre de la clase yui-skin-sam
al elemento que represente un parent del elemento en el que la tabla se encuentra situada, usualmente se pone esta clase en el tag <body>
, como se indica en la página http://developer.yahoo.com/yui/datatable/:
Y de esta manera toma este css ya definido. Si desea personalizar su tabla (datatable YUI), agregue como usualmente con cualquier otro elemento de la página, en el tag style, el estilo que quiera definir para cada parte de la tabla. Así: <style type="text/css"> .yui-skin-sam{color:red;} .yui-dt-first{background-color:yellow;} .yui-dt-last{background-color:blue;} </style> Fuentes: http://developer.yahoo.com/yui/datatable/ Carla Salvatierra Arellano
<body class="yui-skin-sam">
Trabajando con YUI2
Hola chicos aqui encontre algunos ejemplos que nos pueden servir para nuestro avance
Gabriela Paladines
librería YUI
Hola chicos encontré algunas cosas sobre la librería YUI que debemos usar en el proyecto…
1)Para descargar la versión 2:
http://developer.yahoo.com/yui/2/
2)Para descargar la versión 3:
http://developer.yahoo.com/yui/3/
supongo que vamos a trabajar con la 3…
También me descargué un libro de www.librosweb.es sobre css avanzado que tiene un capítulo sobre la librería YUIcss_avanzado
Consulta usando Hibernate
Para realizar la consulta que genera un archivo xml con los datos almacenados en nuestra base de datos: Inicialmente, s
-
Luego en el servlet que agregamos, trabajamos ya directamente con la clase NewHibernateUtil, con la cual obtenemos el objeto sessionfactory, con el que crearemos una sentencia hql (hibernate query language), directamente con el objeto universidad, porque si revisamos un poquito, encontramos que hibernate nos permite mapear atributos de una base de datos relacional a un modelo orientado a objetos en nuestra aplicación.
-
Para ello la sentencia será private static String QUERY=»from Universidad u»; la cual almacenamos en una constante de tipo String.
-
Luego definimos un método para ejecutar esa sentencia, y le enviamos además un objeto PrinterWriter, el cual al final, nos permitirá escribir sobre el archivo xml a generar.
try {
Session session = NewHibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Query q = session.createQuery(hql);
List resultList = q.list();
displayResult(resultList,out);
session.getTransaction().commit();
} catch (HibernateException he) {
he.printStackTrace();
}
}
Donde displayResults es: ya generar el archivo xml
private void displayResult(List resultList,PrintWriter out) { out.println(«<?xml version=’1.0′ encoding=’iso-8859-1′?>»);
out.println(«<datos>»);
for (Object o : resultList) {
Universidad univ = (Universidad) o;
out.println(«<universidad>» +
«<codigo>»+univ.getCodigo()+»</codigo>» +
«<nombre>»+univ.getNombre()+»</nombre>» +
«<coordenadas>» +
«<latitud>» +univ.getLatitud()+»</latitud>» +
«<longitud>» +univ.getLongitud()+»</longitud>» +
«</coordenadas>» +
«<pais>» +univ.getPais()+»</pais>»+
«<url>» +univ.getUrl()+»</url>»+
«</universidad>»);
}
out.println(«</datos>»); }
Observación: Usamos o especificamos encoding=’iso-8859-1′ para que nos permita el uso de tildes y ñ, pues de lo contrario nos da error usando la codificación UTF-8.
Y así en el processRequest del servlet, simplemente llamamos a un método runQuery
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(«text/xml»);
PrintWriter out = response.getWriter();
try{
runQuery(out);
}catch(Exception e){
out.println(e.getMessage());
out.close();
}
}
Donde runQuery es un método que simplemente llama al executeHQLQuery:
private void runQuery(PrintWriter out) {
executeHQLQuery(QUERY,out);
}
Importamos del paquete hibernate:
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
Carla Salvatierra Arellano
Prueba con Google Maps situada en la espol
ejemplo de google maps aplicado a nuestra practica
En este archivo hemos modificado las alternativas de mapTypeId: google.maps.MapTypeId.SATELLITE latitud =(-2.145368,-79.964215) para que en nuestra pagina principal aparezca la Espol, lo hemos puesto en vista de satelite debido a que se aprecia mejor y hemos editado el zoom
Gabriela Paladines, Verónica Lara
Esquema de la tarea
Después de haber revisado un poco el API de Google Maps, y revisar lo que se indica en la tarea de:
- Implementar una aplicación JEE que utiliza Hibernate ( motor de persistencia) para extraer información de ubicaciones geográficas y mostrar marcadores en un mapa de Google Maps.
Aquí les dejo un esquema de lo que tenemos que hacer:
Latitudes y Longitudes Universidades_Convenio
🙂 Carla Salvatierra Arellano