Solución a problema con J9 y Palm

Tungsten E2Hace algún tiempo desarrolle una aplicación en J2ME para mi PDA específicamente la Tungsten E2 que funcionaba a la perfección pero luego de un tiempo empece a experimentar algunos problemas como recibir errores de “Fatal Exception” y lo cual me indicaba que reinicie, pase varios dias investigando a ver de que podía provenir el error con decir que hasta me toco chatear con soporte técnico de palm y dormir pocas horas con la preocupación, pero bueno di con la solución y la quiero compartir con Uds.
Uno de los primeros problemas que experimente (Inicio del proyecto) y que fue por la novatada de no gestionar bien la variables y los procesos en mi sistema me salia un error al sincronizar los datos a mi aplicación bueno esto se soluciono con un Hardreset en el equipo.
Pero luego de un tiempo me volvió a dar otro problema (luego de 6 meses) el cual me daba un “Fatal Exception” al usar mi sistema y si volvía a reiniciar el problema persistía intente hacer un hardreset como lo habia hecho anteriormente pero esto no lo soluciono y ahora aparecían otros errores al intentar cargar solo la máquina virtual el problema por lo general tenia los siguientes síntomas o mensajes:

  • Mensaje de error luego de la sincronización “DataMgr.c Line: 8878” y no cargaba el J9 en la palm.
  • VSFDBCache.c, Line: 4051, unattached record
  • Carga el J9 pero al querer configurarlo en la Palm recibía “Fatal Exception” o la pantalla se quedaba pegada o colgada.

Porque se da este error:

La KVM de java tiene un algoritmo para liberar memoria y reservarla para otros objetos que no desfragmenta la memoria utilizada y como que llega a saturar los espacios de memoria, como no encuentra memoria intenta escribir en la ROM como ya sabemos que no es posible y lanzara el error “DataMgr.c….”.
El problema de este algoritmo es que no relaciona espacios de memoria libres, aunque sean vecinos, y por lo tanto produce una gran fragmentación de la memoria.
Una de las sugerencias es liberar todos los espacios de memoria y apuntarlos a null o en su defecto si son enteros encerarlos para ayudar de cierta manera el Garbage Collector.

Solución:

  • Realizar un warm reset y luego un software reset

Que es lo que se logra con este warm reset o tambien conocido como software reset es evitar que al reiniciar no cargue las extensiones (los hacks, programas gestores de hacks, parches del SO, preferencias e alamas, etc). Entonces evitaremos que todo lo que haya estado ocupando este programa no se cargue y como que de cierto modo se libere todo sus consumos de memoria.

Si tiene dudas de como se hace un hard reset o un warm reset lo puedes ver en la sección Palm de este blog además de algunos estrategias para desarrollar aplicaciones J2ME y optimizar el recurso de memoria.

Actualizado: Este detalle es bien importante no olvidarlo, una vez realizado los pasos anteriores realizas un hard-reset y restauras los datos desde un respaldo anterior que hayas tenido para que se sobreescriba cualquier archivo, aplicación o base de datos y de esta manera evitar este tipo de errores, tambien puedes probar a cambiar de usuario de sincronización para el PDA, con esto logras que se regeneren todas las aplicaciones para el nuevo usuario.

Saludos y espero les sea de mucha utilidad.

Anuncios

Tipos de reseto de un PDA

Logo de PalmExisten algunas formas de resetear un PDA las cuales voy explicar en el siguiente blog con su respectiva trascendencia, muchas de las veces tenemos problemas con nuestros equipos para lo cual podemos hacer uso de cada una de estas opciones para ver si de esta manera se soluciona el inconveniente.

Soft Reset

El soft reset consiste en presionar el botón que se encuentra en la parte posterior del equipo para que lo reinicie en caso de que haya cualquier problema analógicamente como cuando se nos cuelga o se nos traba la computadora lo que hacemos frecuentemente es buscar el botón de reset y presionarlo y todo vuelve a ser como antes, este tipo de reset no provoca la perdida de datos en el equipo.

Software Reset (Warm reset)

Formas de hacer un reseteo de un pda (Software-Reset) Cuando hacemos un warm reset a nuestro PDA, se reinicia pero al arrancar no carga las extensiones (los hacks, los programas gestores de hacks, los parches del SO, las preferencias de alarmas, etc) por si ésta es la fuente del problema. Si estás en este caso, el PDA te dará error cada vez que la arranques, deteniendo el proceso de arranque al intentar cargar la aplicación dañada. Como con el warm reset estas aplicaciones no se cargan, te dará la oportunidad de arreglar aquello que esté mal (normalmente borrando la fuente del problema) y reiniciar normalmente.

  1. Presionar Page-UP (Esta ubicado en el navegador de 5 direcciones)
  2. Presionar Soft Reset (Botón de reset en la parte posterior del equipo).
  3. Liberar Page-UP

Hard Reset

El hard reset nos permite volver el equipo a su configuración de fabrica en este tipo de reseteo se pierden todos sus datos agregados por lo cual se recomienda realizar un respaldo de su información para evitar futuras molestias.

  1. Presionar el botón de encendido con el botón de reset en la parte posterior del equipo al mismo tiempo.
  2. Dejar de presionar el botón de encendido hasta que aparezca el logo de la palm.
  3. Pedirá confirmación de borrado completo (Acepta presionando el botón de PAGE-UP) en otro caso cualquier botón.

Espero les sea de utilidad y buena suerte !!!!