| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2009 09:07:22
|
padcoe
Virtual Machine Man
Membro desde: 25/10/2008 07:30:15
Mensagens: 528
Offline
|
Fala amigos
To com um bug aqui e preciso descobrir o motivo, mas está flórida pq não sei o que pode ocasionar este estouro na minha camada com o BD.
Alguém pode me dar uma luz?
Obrigado
This message was edited 1 time. Last update was at 04/03/2009 09:18:06
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2009 09:46:59
|
diegosantiviago
JavaGuru
Membro desde: 14/12/2008 11:53:44
Mensagens: 221
Localização: BR
Offline
|
talvez uma recursão que não acabou, talvez um laço infinito.. cadê o código?
|
SCJA, SCJP, SCBCD, SCEA (I), IBM SOA, ITIL v3 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2009 10:01:39
|
padcoe
Virtual Machine Man
Membro desde: 25/10/2008 07:30:15
Mensagens: 528
Offline
|
Ele não faz um laço infinito pq aqui no ambiente de desenvolvimento funciona, o problema é quando vai para o ambiente do cliente. Lá é bem lerdo as coisas, não sei se isso tem algo a ver :S
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2009 11:58:14
|
juliocbq
GUJ Expert
![[Avatar]](/images/avatar/153704bb24a28e9a6bb49e8ffde1492e.jpg)
Membro desde: 13/11/2008 12:10:18
Mensagens: 3926
Offline
|
a stack é memória reservada aos programas, para operações de eventos de hardware. Se vc está recebendo esse tipo de erro(stack overflow), é o software que está consumindo memória demais.
|
www.citrox.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2009 12:45:12
|
diegosantiviago
JavaGuru
Membro desde: 14/12/2008 11:53:44
Mensagens: 221
Localização: BR
Offline
|
tenta aumentar a memória nos arquivos de configuração
|
SCJA, SCJP, SCBCD, SCEA (I), IBM SOA, ITIL v3 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2009 17:14:10
|
victorwss
JWizard
![[Avatar]](/images/avatar/4ab232445f9b21b65dfdf6ea5f27f704.png)
Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline
|
Estranho que a recursão ocorre dentro do toplink.
Primeira coisa a tentar, vê se a versão do toplink é a mais atual.
|
Victor Williams Stafusa da Silva
Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.
Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.
Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.
É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).
Se você escreve "concerteza", "concerteza" você andou matando aulas de português. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2009 17:40:49
|
panthovillas
Debugger
![[Avatar]](/images/avatar/0c4c93af131c294eb21bd79fd3c8b8f3.jpg)
Membro desde: 06/02/2007 21:27:57
Mensagens: 72
Offline
|
tenta setar a memoria a ser utilizada: java -Xmx512m -jar arquivo.jar
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2009 20:31:40
|
rmendes08
GUJ Master
![[Avatar]](/images/avatar/9ee855f3ce4dd40182183463232e2162.jpg)
Membro desde: 29/05/2008 14:09:28
Mensagens: 1615
Offline
|
Geralmente stack overflow ocorre por causa de recursão infinita. Nesse caso aumentar a memória ja JVM não resolve muita coisa. Além de que eu acho que só é possível ajustar o tamanho do heap. O que pode ocasionar esse comportamento é alguma entrada que você não testou no ambiente de desenvolvimento mas que está no cliente.
|
"A Técnica é transformada em Arte por quem a emprega"
"O futuro pertence àqueles que acreditam na beleza de seus sonhos"
Computadores Fazem Arte
http://www.uaijug.com.br
"É importante estabelecer uma estrutura de alto nível, mas isso não significa criar uma infinidade de diagramas de classes detalhados." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/03/2009 21:40:03
|
panthovillas
Debugger
![[Avatar]](/images/avatar/0c4c93af131c294eb21bd79fd3c8b8f3.jpg)
Membro desde: 06/02/2007 21:27:57
Mensagens: 72
Offline
|
rmendes08 wrote:Geralmente stack overflow ocorre por causa de recursão infinita. Nesse caso aumentar a memória ja JVM não resolve muita coisa. Além de que eu acho que só é possível ajustar o tamanho do heap. O que pode ocasionar esse comportamento é alguma entrada que você não testou no ambiente de desenvolvimento mas que está no cliente.
nem sempre... ainda mais da forma como ele disse q sao as maquinas dos usuarios!!!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/03/2009 06:54:40
|
padcoe
Virtual Machine Man
Membro desde: 25/10/2008 07:30:15
Mensagens: 528
Offline
|
Aqui foi testada e a única execução desse processamento é uma query de select com parâmetros fixos, por isso foi testado aqui. A execução é a mesma. O problema lá é o ambiente, pra vc ter idéia, eu não consigo fazer deploy 2x sem antes matar a instância do OC4J.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/03/2009 07:34:08
|
juliocbq
GUJ Expert
![[Avatar]](/images/avatar/153704bb24a28e9a6bb49e8ffde1492e.jpg)
Membro desde: 13/11/2008 12:10:18
Mensagens: 3926
Offline
|
diegosantiviago wrote:tenta aumentar a memória nos arquivos de configuração 
É a pilha do windows que não suporta mais de 8 megas. Tem que rever o código. Alguma variável alocada na stack, tá muito grande. Esse é o grande problema de ter memória gerenciada automaticamente.
This message was edited 1 time. Last update was at 05/03/2009 07:34:48
|
www.citrox.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/03/2009 07:35:44
|
padcoe
Virtual Machine Man
Membro desde: 25/10/2008 07:30:15
Mensagens: 528
Offline
|
Que zuado...
Eu fiz uma alteração de processamento pq temos um fluxo, que pode retornar 40 mil registros e pra cada registro, estava sendo feita uma busca em outras tabelas. Mudei a query para realizar tudo de uma vez.
Vamos ver o que acontece e eu posto aqui
Valeu pela ajuda
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2009 10:56:06
|
eduveks
GUJ Ranger
![[Avatar]](/images/avatar/bce9abf229ffd7e570818476ee5d7dde.png)
Membro desde: 19/04/2005 07:45:40
Mensagens: 831
Localização: Lisboa - Portugal
Offline
|
padcoe wrote:Que zuado...
Eu fiz uma alteração de processamento pq temos um fluxo, que pode retornar 40 mil registros e pra cada registro, estava sendo feita uma busca em outras tabelas. Mudei a query para realizar tudo de uma vez.
Vamos ver o que acontece e eu posto aqui
Valeu pela ajuda 
Pois é, provavelmente vc esta executando uma query q retorna muita coisa, e vai tudo no ResultSet para a memória. Isto é muito mau! Vc tem que usar paginação! Não faz sentido uma query retornar mais que 1.000 registos, pois ninguem vai analisar mais do que 1.000 registos de uma vez, e mesmo assim é muito.
O que se deve fazer também é configurar na base de dados para limitar as queries para retornar no máximo 1000 registros.
Assim vc garante que nunca vai ter este probelma independente do tamanho das tabelas.
|
http://www.cajuscript.org
http://eduveks.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/06/2011 12:35:19
|
paty_trind
Virtual Machine Man
Membro desde: 15/11/2010 13:35:39
Mensagens: 736
Offline
|
Ola,
sei que o tópico é antigo mas estou com o mesmo problema =(
Alguém poderia me ajudar a encontar o erro no meu código?
Meu código é o seguinte:
Ah e o que eu estou tentando fazer é o seguinte:escrever uma função recursiva que determine o maior valor de um vetor usando o processo de bisseção, isto é, o vetor é dividido ao meio em dois subvetores e calcula-se o maior de cada um deles; o maior valor do vetor será o maior entre os dois valores apurados.
Obrigada pela ajuda
This message was edited 1 time. Last update was at 20/06/2011 12:38:42
|
Developer Java EE Jr. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/06/2011 12:52:38
|
eduveks
GUJ Ranger
![[Avatar]](/images/avatar/bce9abf229ffd7e570818476ee5d7dde.png)
Membro desde: 19/04/2005 07:45:40
Mensagens: 831
Localização: Lisboa - Portugal
Offline
|
O valor da variável meio vai ser sempre igual em todas as interações da função recursiva. Então quando chega no if sempre vai ir a posição seguinte e a anterior referente ao meio, mas este meio nunca vai mudar, por que o vetor.length é constante. Talvez o erro seja por que o calculo meio - 1 esteja dando menor que 0! O melhor é vc rodar isto em debug e ver em cada interação qual o valor das variáveis ou jogar prints.
This message was edited 1 time. Last update was at 20/06/2011 12:53:44
|
http://www.cajuscript.org
http://eduveks.blogspot.com |
|
|
 |
|
|