Foros del Web » Programación para mayores de 30 ;) » Java »

Java Server Page Java heap space liberar memoria

Estas en el tema de Java Server Page Java heap space liberar memoria en el foro de Java en Foros del Web. Hola que tal Tengo mi pagina en JSP conectada a una base de datos de Mysql el problema es que doy de alta registros pero ...
  #1 (permalink)  
Antiguo 18/06/2011, 18:28
Avatar de chicks  
Fecha de Ingreso: junio-2011
Mensajes: 1
Antigüedad: 13 años, 5 meses
Puntos: 0
Java Server Page Java heap space liberar memoria

Hola que tal Tengo mi pagina en JSP conectada a una base de datos de Mysql el problema es que doy de alta registros pero solo me deja dar 3 registros al cuarto me manda la exepcion (TOMCAT) :javax.servlet.ServletException: java.lang.OutOfMemoryError: Java heap space
No utilizo servlets ni nada por el estilo (Net Beans, etc.).
Solo utilizo el Notepad++
este es mi codigo.
Es importante mencionar que son dos paginas una donde esta el formuario y otra donde agrega los datos a la BD.
;;;;;;;;;;;;;;;;;;;FORMULARIO;;;;;;;;;;;;;;;;;;;
[URL="http://homechicks.dyndns.org:8080/Cinearmas/pelis.txt"]codigo del formulario[/URL]
[URL="http://homechicks.dyndns.org:8080/Cinearmas/altapeli.txt"]Codigo fuente coceccion[/URL]
::::::::::::::::::::CONECCION A BASE DE DATOS::::::::::::::
<%@ page language="java" %>
<%@ page import = "java.sql.Connection"%>
<%@ page import = "java.sql.DriverManager"%>
<%@ page import = "java.sql.ResultSet"%>
<%@ page import = "java.sql.Statement"%>
<%@page import = "java.sql.*"%>


<html>
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
</head>
<LINK REL="stylesheet" HREF="estiloifndex.css" TYPE="text/css"/>
<body>
<script language="javascript">
function register()
{
location.href=("cerrarsesion.jsp");
}
</script>
<%
String usuario = request.getParameter("nombre");
HttpSession sesionOk = request.getSession();
if (sesionOk.getAttribute("usuario") == null) {
response.sendRedirect("index.jsp");
%>
<%
} else {
usuario = (String)sesionOk.getAttribute("usuario");
}
%>
<%

String s ="";
Connection cn=null;
s="com.mysql.jdbc.Driver";
Class.forName(s);
cn= DriverManager.getConnection("jdbc:mysql://localhost/Cinearmas", "root", "wwww");
Statement st =cn.createStatement();
Statement st1 =cn.createStatement();
Statement st2 =cn.createStatement();
Statement st3 =cn.createStatement();
Statement st4 =cn.createStatement();
Statement st5 =cn.createStatement();
Statement st6 =cn.createStatement();
Statement st7 =cn.createStatement();
Statement st8 =cn.createStatement();
Statement st9 =cn.createStatement();
Statement st10 =cn.createStatement();
Statement st11 =cn.createStatement();
Statement st12 =cn.createStatement();
Statement st13 =cn.createStatement();
Statement st14 =cn.createStatement();
Statement st15 =cn.createStatement();
Statement con1 = cn.createStatement();
Statement con2 = cn.createStatement();
Statement con3 = cn.createStatement();
Statement con4 = cn.createStatement();
Statement con5 = cn.createStatement();
Statement con6 = cn.createStatement();
Statement con7 = cn.createStatement();
Statement con8 = cn.createStatement();
Statement con9 = cn.createStatement();
Statement con10 = cn.createStatement();
Statement con11 = cn.createStatement();
String tidi=request.getParameter("tid");
String tior=request.getParameter("tio");
String resu=request.getParameter("res");
String dura=request.getParameter("dur");
String urlp=request.getParameter("url");
String apro=request.getParameter("apr");
String fech=request.getParameter("fec");
String gene=request.getParameter("gen");
String idio=request.getParameter("idi");
String subt=request.getParameter("sub");
String cali=request.getParameter("cal");
String nodi=request.getParameter("nod");
String amdi=request.getParameter("amd");
String apdi=request.getParameter("apd");
String nadi=request.getParameter("nad");
String acto=request.getParameter("noa");
String amac=request.getParameter("ama");
String apac=request.getParameter("apa");
String pera=request.getParameter("acp");
String nape=request.getParameter("nap");
String pais=request.getParameter("pai");
Object for1="";
Object for2="";
Object for3="";
Object for4="";
Object for5="";
Object for6="";
Object for7="";
Object for8="";
Object for9="";
Object for10="";
Object for11="";
Object for12="";
Object for13="";
Object for14="";
Object for15="";
st.execute("insert into genero (des_gen) values('"+gene+"')");//Inserta en tabla GENERO
st1.execute("insert into idioma (des_idi) values('"+idio+"')");//Inserta en tabla IDIOMA
st2.execute("insert into calificacion (des_cal) values('"+cali+"')");//Inserta en tabla CALIFICACION
st3.execute("insert into añoproducida (des_año) values('"+apro+"')");//Inserta en tabla ANO
st6.execute("insert into fechaestreno (des_est) values('"+fech+"')");//Inserta en tabla FECHAESTRENO
st7.execute("insert into subtitulos (idi_sub) values('"+subt+"')");//Inserta en tabla SUBTITULOS
st8.execute("insert into paisorigen (des_pai) values('"+pais+"')");//Inserta en tabla PAISORIGEN
st9.execute("insert into url (des_url) values('"+urlp+"')");//Inserta en tabla URL
st10.execute("insert into duracion (des_dur) values('"+dura+"')");//Inserta en tabla DURACION
st11.execute("insert into nacionalidad (des_nac) values('"+nape+"')");//Inserta en tabla NACIONALIDAD
st12.execute("insert into nacionalidad (des_nac) values('"+nadi+"')");//Inserta en tabla NACIONALIDAD
//Consultas de las tablas anteriores para agregar llaves foraneas
ResultSet rs1 = con1.executeQuery("select ide_nac from nacionalidad where des_nac='"+nadi+"' ");//insercion de datos a la tabla Director
while(rs1.next())
{
for1=rs1.getObject("ide_nac");
}
st5.execute("insert into director (nom_dir,ama_dir,apa_dir,ide_nac) values('"+nodi+"','"+amdi+"','"+apdi+"','"+for1+"' )");//Inserta en tabla DIRECTOR *
ResultSet rs2 = con2.executeQuery("select ide_nac from nacionalidad where des_nac='"+nape+"' ");//insercion de datos a la tabla Actor
while(rs2.next())
{
for2=rs2.getObject("ide_nac");
}
st4.execute("insert into actor (nom_act,ama_act,apa_act,ide_nac,per_act) values('"+acto+"','"+amac+"','"+apac+"','"+for2+"' ,'"+pera+"')");//Inserta en tabla ACTOR *
ResultSet rs3 = con3.executeQuery("select ide_dir,ide_act from actor,director where nom_act='"+acto+"' and nom_dir='"+nodi+"' ");//insercion de datos a la tabla Extra
while(rs3.next())
{
for3=rs3.getObject("ide_dir");
for4=rs3.getObject("ide_act");
}
st15.execute("insert into credito (ide_act,ide_dir) values('"+for4+"','"+for3+"')");//Inserta en tabla CREDITO*
ResultSet rs4 = con4.executeQuery("select ide_idi,ide_sub from idioma,subtitulos where des_idi='"+idio+"' and idi_sub='"+subt+"' ");//insercion de datos a la tabla Credito
while(rs4.next())
{
for5=rs4.getObject("ide_idi");
for6=rs4.getObject("ide_sub");
}
st13.execute("insert into extra (ide_sub,ide_idi) values('"+for6+"','"+for5+"')");//Inserta en tabla EXTRA*
ResultSet rs5 = con5.executeQuery("select * from credito,extra,añoproducida,calificacion,duracion,f echaestreno,genero,idioma,paisorigen,url where des_url='"+urlp+"' and des_año='"+apro+"' ");//insercion de datos a la tabla Credito
while(rs5.next())
{
for7=rs5.getObject("ide_año");
for8=rs5.getObject("ide_pai");
for9=rs5.getObject("ide_cre");
for10=rs5.getObject("ide_ext");
for11=rs5.getObject("ide_gen");
for12=rs5.getObject("ide_cal");
for13=rs5.getObject("ide_url");
for14=rs5.getObject("ide_dur");
for15=rs5.getObject("ide_est");
}
st14.execute("insert into pelicula (tit_pel,dis_pel,ide_dur,ide_url,ide_año,ide_est,r es_pel,ide_gen,ide_cal,ide_pai,ide_cre,ide_ext) values('"+tior+"','"+tidi+"','"+for14+"','"+for13+ "','"+for7+"','"+for15+"','"+resu+"','"+for11+"',' "+for12+"','"+for8+"','"+for9+"','"+for10+"')" );//Inserta en tabla PELICULA *
cn.close();
//response.sendRedirect("hola.jsp");
%>
<br>
<center><input type="button" class="buton" onclick="register()" value="Cerrar sesi&oacute;n"></center>
</body>
</html>
  #2 (permalink)  
Antiguo 19/07/2011, 20:14
 
Fecha de Ingreso: junio-2011
Mensajes: 39
Antigüedad: 13 años, 4 meses
Puntos: 16
Respuesta: Java Server Page Java heap space liberar memoria

Hola,

Primero:

Solo necesitas una de estas lineas

Código Javascript:
Ver original
  1. Statement st =cn.createStatement();

y con st puedes insertar todos los registros y ejecutar todas las consultas que necesites

Segundo:

Generalmente no se usa getObject pues para eso hay otros métodos dependiendo del tipo de datos,,ej. si es un numero esta getInt, si es un texto esta getString....etc.

Tercero:

No es necesario crear tantas variables e instancias si con una sola la puedes reultizar,,

con algo mas de estudio sobre Java tu codigo podría reducirse como en 100 lineas... sigue leyendo.
__________________
Saludos desde Colombia.
http://labs.distrit.co

Etiquetas: mysql, result, set, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:11.