Re: RE: error outofMemory hande jvm java
juan lopez <jazpiroz2006-/[email protected]>
| Newsgroups | gmane.comp.java.javaspain |
|---|---|
| Message-ID | <[email protected]> |
solucioné el problema, cerrando el preparedStatement, dentro de un while creaba uno nuevo por cada registro del result, gracias a todos!! Pedro Arana <[email protected]> escribió: 2008/3/26 juan lopez <jazpiroz2006-/[email protected]>: > > > tengo dos clases de tipo singleton, una para conectarme a las dbf y otra > para conectarme al firebird > despues: > > instancio una conexion dbf y hago un select que lo vuelco en un Resultset Hasta aqui hay poco que puedas hacer, el conector debe gestionar su memoria y no creo que haya alguna forma de que le digas "carga 10 objetos por llamada" > luego recorro uno a uno los registros del Resultset y voy creando un objeto > cliente > luego instancio una conexion firebird y hago el insert > con preparedStatement usando los atributos del objeto cliente antes creado > > luego cierro el Resultset > finalize() de ambas conexiones uyyy esto empieza a oirse mal, ¿quiere decir que haces los 6000 objetos cliente? Por que entonces antes de pensar en darle mas memoria a la jvm deberias ver que tanta necesitas. ¿Son registros muy grandes? Desde mi punto de vista no deberias crear objetos para esos datos tan perecederos, a menos que tengas que hacer algun proceso que requiera todos los objetos en memoria (que no se pueda hacer en la BD directamente). Deberias leer del resultset, crear un objeto temporal (que se yo, para validar, procesar, adaptar, lo que sea que necesites hacer) y luego insertar en la otra base de datos, todo dentro del mismo ciclo. Desde mi punto de vista el planteamiento de tu solucion es el que te hace tener problemas. Saludos Pedro Arana --------------------------------- Tarjeta de crédito Yahoo! de Banco Supervielle.Solicitá tu nueva Tarjeta de crédito. De tu PC directo a tu casa. Visitá www.tuprimeratarjeta.com.ar