| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2010 09:42:02
|
lina
Moderador
![[Avatar]](/images/avatar/8849f0a976aa5332853e848655a1d28f.jpg)
Membro desde: 23/12/2006 21:05:04
Mensagens: 3083
Offline
|
Oi,
Acho que o título deste post já diz tudo.
Como vocês (gujianos) fazem para identificar possíveis deads na base de dados? Alguém poderia me ajudar a "debulhar" o trace do Oracle?
Tchauzin!
This message was edited 1 time. Last update was at 15/10/2010 09:43:10
|
Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui antes, por favor!
http://www.guj.com.br/posts/list/50115.java
Se o seu tópico foi respondido e você está satisfeito, segue:
- Pressione o botão <Edit> de seu primeiro post
- Acrescente no final do título a tag [RESOLVIDO]
@gujgirl
http://www.restartfans.hdfree.com.br
Meu blog:
http://www.runthecode.wordpress.com
Tchauzin! |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2010 09:52:07
|
André Fonseca
JWizard
![[Avatar]](/images/avatar/286b0b3ea509af1aeff6bb47299d96d7.png)
Membro desde: 23/02/2007 15:52:55
Mensagens: 2034
Offline
|
lina wrote:Oi,
Acho que o título deste post já diz tudo.
Como vocês (gujianos) fazem para identificar possíveis deads na base de dados? Alguém poderia me ajudar a "debulhar" o trace do Oracle?
Tchauzin!
oi,
Transaction deadlocks occur when two or more transactions are attempting to access an object with incompatible lock modes. The following script can be used to identify deadlocks in the database. The query depends upon objects that are created by the script $ORACLE_HOME/rdbms/admin/dbmslock.sql. Log on as SYS or with SYSDBA authority and run this script in all databases. You may have to run the deadlock monitoring script below numerous times before you identify the transaction that is causing the problem.
http://www.dba-oracle.com/t_deadlock.htm
|
Você é novo no GUJ?
Como fazer perguntas?
www.twitter.com/_afonseca |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2010 10:01:23
|
lina
Moderador
![[Avatar]](/images/avatar/8849f0a976aa5332853e848655a1d28f.jpg)
Membro desde: 23/12/2006 21:05:04
Mensagens: 3083
Offline
|
Oi,
Sim. Estou seguindo as seguintes regras para identificar os deads:
* Locate the error messages in the alert log.
* Locate the relevant trace file(s).
* Identify the SQL statements in both the current session and the waiting session(s).
* Use these SQL statements to identify the particular piece of code that is having problems.
* Alter the appliation code to prevent deadlocks by always locking rows in the tables in the same order.
O problema é que está parecendo que o comando SQL do arquivo de trace não é exatamente o motivo do deadlock.
Tchauzin!
|
Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui antes, por favor!
http://www.guj.com.br/posts/list/50115.java
Se o seu tópico foi respondido e você está satisfeito, segue:
- Pressione o botão <Edit> de seu primeiro post
- Acrescente no final do título a tag [RESOLVIDO]
@gujgirl
http://www.restartfans.hdfree.com.br
Meu blog:
http://www.runthecode.wordpress.com
Tchauzin! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2010 10:19:05
|
lina
Moderador
![[Avatar]](/images/avatar/8849f0a976aa5332853e848655a1d28f.jpg)
Membro desde: 23/12/2006 21:05:04
Mensagens: 3083
Offline
|
Oi,
Por exemplo, quando deu deadlock na aplicação, apresentou:
Então eu tenho esse UPDATE corrente.
Agora tem o seguinte gráfico:
Eu tenho 41 processos bloqueados e 40 esperando?
Logo abaixo da Session 75 eu tenho:
Porém isso não quer dizer que foi este ultimo update que necessitou de recursos e acabou sendo bloqueado.
Já estou achando que a melhor saída seria colocar AutoCommit em tudo rsrs
O Grande problema é que depois de 1 deadlock, o sistema quase morre!
Tchauzin!
|
Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui antes, por favor!
http://www.guj.com.br/posts/list/50115.java
Se o seu tópico foi respondido e você está satisfeito, segue:
- Pressione o botão <Edit> de seu primeiro post
- Acrescente no final do título a tag [RESOLVIDO]
@gujgirl
http://www.restartfans.hdfree.com.br
Meu blog:
http://www.runthecode.wordpress.com
Tchauzin! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2010 12:59:47
|
André Fonseca
JWizard
![[Avatar]](/images/avatar/286b0b3ea509af1aeff6bb47299d96d7.png)
Membro desde: 23/02/2007 15:52:55
Mensagens: 2034
Offline
|
oi,
como você está criando (e destruindo) suas conexões com o banco? uma outra idéia é você fazer um dump da jvm, isso pode ajudar tb já que parece que o problema não é com o oracle e sim com a aplicação
[]´s
|
Você é novo no GUJ?
Como fazer perguntas?
www.twitter.com/_afonseca |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2010 14:35:13
|
juliocbq
GUJ Expert
![[Avatar]](/images/avatar/153704bb24a28e9a6bb49e8ffde1492e.jpg)
Membro desde: 13/11/2008 12:10:18
Mensagens: 3927
Offline
|
O engraçado é que o oracle já avisa que não é problema dele né... rsrs
The following deadlock is not an ORACLE error. ...
Seguinte lina,
Precisa identificar todos os recursos que são compartilhados e estão sendo acessados, assim como os métodos que acessam esses recursos.
Isso pode ser feito imprimindo um texto no fechamento e abertura dos semáforos.
Pelo menos para mim é a maneira mais prática.
|
www.citrox.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2010 14:44:06
|
urubatan
Moderador
![[Avatar]](/images/avatar/fe9fc289c3ff0af142b6d3bead98a923.jpg)
Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline
|
40 executando e 41 esperando,
sugiro um refactoring bem grande para diminuir o tamanho das transações, isto vai melhorar a performance e diminuir a probabilidade de ocorrerem deadlocks ...
|
[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2010 18:54:28
|
Ironlynx
Moderador
![[Avatar]](/images/avatar/93d65641ff3f1586614cf2c1ad240b6c.jpg)
Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline
|
como você está criando (e destruindo) suas conexões com o banco?
Boa pergunta.E lina, vc tá fechando as conexões dentro de um finally,certo?
|
Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2010 21:27:21
|
lina
Moderador
![[Avatar]](/images/avatar/8849f0a976aa5332853e848655a1d28f.jpg)
Membro desde: 23/12/2006 21:05:04
Mensagens: 3083
Offline
|
Ironlynx wrote:
como você está criando (e destruindo) suas conexões com o banco?
Boa pergunta.E lina, vc tá fechando as conexões dentro de um finally,certo?
Oi,
Claro! Fecho as conexões no finally!
Depois de olhar com calma o trace do Oracle, fui encontrar os 2 "supostos" comandos no programa.
Ambos estão seguidamente dentro de um Método e utilizando o mesmo sequencial no where. Algo do tipo:
São tabelas diferentes. Porém, são FK.
Na primeira impressão, parece ser um deadlock (CDP) classico. Mais notem que ambas utilizam a mesma conexão e o update é feito em diferentes tabelas.
O que parece estranho é que no trace Oracle, aparece como sendo 2 conexões diferentes. Quem sabe uma thread possa ter alterado ou criado uma nova conexão... vai saber!
Como é triste fazer uma busca no código que não é seu! rs
Tchauzin!
|
Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui antes, por favor!
http://www.guj.com.br/posts/list/50115.java
Se o seu tópico foi respondido e você está satisfeito, segue:
- Pressione o botão <Edit> de seu primeiro post
- Acrescente no final do título a tag [RESOLVIDO]
@gujgirl
http://www.restartfans.hdfree.com.br
Meu blog:
http://www.runthecode.wordpress.com
Tchauzin! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2010 21:29:46
|
lina
Moderador
![[Avatar]](/images/avatar/8849f0a976aa5332853e848655a1d28f.jpg)
Membro desde: 23/12/2006 21:05:04
Mensagens: 3083
Offline
|
urubatan wrote:40 executando e 41 esperando,
sugiro um refactoring bem grande para diminuir o tamanho das transações, isto vai melhorar a performance e diminuir a probabilidade de ocorrerem deadlocks ...
Oi,
O grande problema é que o sistema já está em produção e este dead ocorreu em 5 dias seguidos na semana passada!
Vou tentar colocar alguns Syserr para identificar o problema! (conforme sugerido pelo juliocbq)
Tchauzin!
This message was edited 1 time. Last update was at 15/10/2010 21:31:48
|
Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui antes, por favor!
http://www.guj.com.br/posts/list/50115.java
Se o seu tópico foi respondido e você está satisfeito, segue:
- Pressione o botão <Edit> de seu primeiro post
- Acrescente no final do título a tag [RESOLVIDO]
@gujgirl
http://www.restartfans.hdfree.com.br
Meu blog:
http://www.runthecode.wordpress.com
Tchauzin! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/10/2010 17:53:03
|
André Fonseca
JWizard
![[Avatar]](/images/avatar/286b0b3ea509af1aeff6bb47299d96d7.png)
Membro desde: 23/02/2007 15:52:55
Mensagens: 2034
Offline
|
oi,
pq vc não tenta dar uma olhadinha no jconsole
[]´s
|
Você é novo no GUJ?
Como fazer perguntas?
www.twitter.com/_afonseca |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/12/2010 13:08:21
|
lina
Moderador
![[Avatar]](/images/avatar/8849f0a976aa5332853e848655a1d28f.jpg)
Membro desde: 23/12/2006 21:05:04
Mensagens: 3083
Offline
|
André Fonseca wrote:oi,
pq vc não tenta dar uma olhadinha no jconsole
[]´s
Oi,
Obrigado pela dica... Agora que vou ter tempo para analisar esses deads.
Tchauzin!
|
Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui antes, por favor!
http://www.guj.com.br/posts/list/50115.java
Se o seu tópico foi respondido e você está satisfeito, segue:
- Pressione o botão <Edit> de seu primeiro post
- Acrescente no final do título a tag [RESOLVIDO]
@gujgirl
http://www.restartfans.hdfree.com.br
Meu blog:
http://www.runthecode.wordpress.com
Tchauzin! |
|
|
 |
|
|