Problema com java heap space

3 respostas
luuu

estou desenvolvendo uma aplicacao
que tras os horarios de consultas em uma agenda… e depois completa os horarios que estao vazios no dia atraves de funcoes de uma classe

eu mudei umas coisas , e começou a dar problema de java heap space , retornei para o antigo e continuou com esse problema .

uso netbeans 5.5

vou postar as funcoes de chamada aonde acontece o problema do java heap space :

//jsp que mostra as consultas
<% 
Conexao con = new Conexao();

Vector cons = (Vector) session.getAttribute("consultas");

cons = util.retornaConsultas(cons);
%>
//classe util que completa o vetor de consultas com o restante diario vazio

    public Vector vConsultasHora(Vector c , PacienteAgendaFormulario pa){
        while(!horario(pa.getHorario(),inicio)){
            PacienteAgendaFormulario paux = new PacienteAgendaFormulario();
            paux.setHorario(inicio+":00");
            c.add(paux);
            inicio++;
        }
        c.add(pa);
        //inicio++;
        return c;
    }
    
    public void preencherHorariosRestantes(Vector c,PacienteAgendaFormulario pa){       
        for(int i = retHora(pa.getHorario()) +1;i<=fim;i++){
            PacienteAgendaFormulario paux = new PacienteAgendaFormulario();
            paux.setHorario(i+":00");
            c.add(paux);
        }
    }

    
    public Vector retornaConsultas(Vector c){
        Vector consultas = new Vector();
        int tam = c.size();
        for(int i=0;i<tam;i++){
            PacienteAgendaFormulario pa = (PacienteAgendaFormulario) c.elementAt(i);
            consultas = vConsultasHora(consultas,pa);
            int h = retHora(pa.getHorario());
            if(i+1 == tam && h < fim){
                preencherHorariosRestantes(consultas,pa);
            }
        }
        consultas = removeDuplicados(consultas);
        return consultas;
    }
    
    public Vector removeDuplicados(Vector c){
        int h = 0;
        boolean ext = false;
        for(int i=0;i<c.size();i++){
            PacienteAgendaFormulario p = (PacienteAgendaFormulario) c.elementAt(i);
            int horac = retHora(p.getHorario());
            if(h == horac && p.getNome_paciente().equals(""))
                c.removeElementAt(i);
            h = retHora(p.getHorario());
        }
        return c;
    }

alguem pode me livrar desse problema ? :slight_smile:

3 Respostas

loganwlogan

eu tbm tenho esse problema as vezes, mas em uma aplicação desktope eu fiquei sabendo que o problema é que a jvm utiliza somente 80mb de memória, mas não sei como resolver. Também gostaria de saber.
ahhh eu tbm uso o NetBeans 5.5.

Logan

R

Tipo…
passe esses parametros ao java.exe
-Xms32m -Xmx300m
O primeiro parametro senão me engano é o que sua aplicação irá usar ao ser disparada. E o segundo é o quanto de memoria máxima sua aplicação irá poder utilizar.
Abraços

R

Só a título de complementação:
No meu caso aí era 32MB para o primeiro parametro e 300MB para o segundo. Esses valores mudam de acordo com as vossas aplicações.

Criado 14 de dezembro de 2006
Ultima resposta 6 de fev. de 2007
Respostas 3
Participantes 3