Me deparei com um problema aqui, preciso inserir no mysql 14000 objetos, funciona normal, mas quando chega lá pela 4000 query
dá
Communications link failure
The last packet successfully received from the server was 1.252.073.447.343 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
Parece que ta fechando a conexão, ou ela não tá aguentando tanta query!
já tento inserir de 500 em 500 e dar um tempo pra ele pensar ?
conforme você inserir a primeira remessa, vai no terminal do mysql e faz:
showfullprocesslist;
e veja a quantidade de processos que ele tem na pilha
S
Santhell
WRYEL:
já tento inserir de 500 em 500 e dar um tempo pra ele pensar ?
conforme você inserir a primeira remessa, vai no terminal do mysql e faz:
showfullprocesslist;
e veja a quantidade de processos que ele tem na pilha
Como eu daria esse tempo? Sou iniciante no mysql
EU to inserindo num for de lista…
robinsonbsilva
Jovem,
Esse controle de inserção pode ser configurado no próprio Mysql.
A maioria dos SGBD possuem parametros para configurar cursores, time out…etc!
Especificamente no Mysql não sei…mas dá uma “googleda”
J
joellazzari
pelo seu post, provavelmente você precisa alterar o valor padrão de alguma variável de timeout.
Tente fazer novamente a inserção, e verifique em quantos segundos ele para. Tente identificar qual variável é.
no mysql, para ver os valores default, digite:
SHOWVARIABLESLIKE'%timeout%';
S
Santhell
O tempo em media é 90 segundos mas nenhuma das variaveis tem esse valor no minimo 60, as outras são muito altas
S
Santhell
Esqueci de dizer que também tá dando nullpointer na variavel da query…
S
Santhell
robinsonbsilva:
Jovem,
Esse controle de inserção pode ser configurado no próprio Mysql.
A maioria dos SGBD possuem parametros para configurar cursores, time out…etc!
Especificamente no Mysql não sei…mas dá uma “googleda”
Ja mudei diversas variaveis que poderiam estar causando isso incluindo as timeout, mas não foi…
WRYEL
para da uma pausa de 5 segundos:
try{Thread.sleep(5000);}catch(Exceptione){}
Seu mysql está aonde ? na sua maquina ou na internet ? instalou sozinho ou veio naqueles pacote pré montados com apache ? posta seu código pra gente ver
S
Santhell
WRYEL:
para da uma pausa de 5 segundos:
try{
Thread.sleep(5000);
}catch(Exception e){ }
Seu mysql está aonde ? na sua maquina ou na internet ? instalou sozinho ou veio naqueles pacote pré montados com apache ? posta seu código pra gente ver :)
Instalei sozinho na própia maquina...
for(FACDTfacdt:planilha.factd){FACDTDaodao=newFACDTDao();if(dao.salvar(facdt)){System.out.println("salvou");}else{System.out.println("erro ao salvar");}}}catch(IOExceptionex){Logger.getLogger(JanelaTabela.class.getName()).log(Level.SEVERE,null,ex);}
dao
publicclassFACDTDao{publicbooleansalvar(FACDTfacdt){Stringsql="INSERT INTO FACDT VALUES(0, ?, ?)";booleansalvou=false;Connectioncon=SGBD.conectar();try{PreparedStatementps=con.prepareStatement(sql);ps.setDate(1,newDate(facdt.getData().getTime()));ps.setDouble(2,facdt.getValor());salvou=ps.executeUpdate()>0;SGBD.desconectar(con);}catch(SQLExceptionex){}returnsalvou;}}
metodo de conexão da classe que conecta ao banco
publicstaticConnectionconectar(){Connectioncon=null;try{Class.forName("com.mysql.jdbc.Driver");con=DriverManager.getConnection("jdbc:mysql://localhost/calcagno","root","");}catch(ClassNotFoundExceptione){System.out.println("Não foi possivel localizar o driver"+e.getMessage());}catch(SQLExceptione){System.out.println("Não foi possivel conectar ao SGBD"+e.getMessage());}returncon;}
Valeu :wink: vou tentar faz o que voce disse amigo