Fala galera, acabei de receber o alerta Current Open Cursors Count - A métrica "Current Open Cursors Count" está em 1579, andei pesquisando sobre o alerta mais não consegui muita coisa...alguém poderia me explicar o por que desse alerta e o que deve ser feito?
Obrigado.
Alerta Current Open Cursors Count
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
dejambo,
Esta mensagem de erro indica que o ORACLE atingiu o número máximo de cursores abertos. O cursor não se refere exatamente ao objeto CURSOR do PL/SQL.
Se por exemplo você abrir uma sessão SQL com o PL/SQL DEVELOPER e acessar a opção TOOLS->SESSION, vai notar uma série de comandos executados para cada sessão aberta do SQL. Então - a grosso modo - os cursores são comandos executados pelas sessões do SQL.
Se você nunca teve problemas com cursores e derrepente começou a ter, você poderia analisar se foi alterada alguma aplicação que acessa o banco. Este erro poderia ser causado - por exemplo - por uma aplicação java que acessa o banco e não está encerrando corretamente suas operações nele (ex: deixando as transações em aberto).
O parâmetro de banco que controla os cursores seria o "open_cursors". Você pode consultar ele no seu banco digitando o comando:
Se achar necessário aumentar o valor deste parâmetro, você deve fazer isso com o comando ALTER SYSTEM do Oracle. Não saberia exatamente para quanto aumentar o parâmetro em sua base. Você pode fazer um teste aumentando o mesmo de 30% a 35% (chute).
Se o seu banco estava funcionando normalmente, não houve aumento de acessos e - mesmo aumentando muito o valor do "open_cursors" - o erro se repetir, seria legal conversar com os seus desenvolvedores, pois realmente pode ser algum problema de aplicação. E neste caso, não adiantaria muito você ficar aumentando simplesmente o parâmetro.
Espero que tenha respondido à sua dúvida,
Abraços,
Sergio Coutinho
Esta mensagem de erro indica que o ORACLE atingiu o número máximo de cursores abertos. O cursor não se refere exatamente ao objeto CURSOR do PL/SQL.
Se por exemplo você abrir uma sessão SQL com o PL/SQL DEVELOPER e acessar a opção TOOLS->SESSION, vai notar uma série de comandos executados para cada sessão aberta do SQL. Então - a grosso modo - os cursores são comandos executados pelas sessões do SQL.
Se você nunca teve problemas com cursores e derrepente começou a ter, você poderia analisar se foi alterada alguma aplicação que acessa o banco. Este erro poderia ser causado - por exemplo - por uma aplicação java que acessa o banco e não está encerrando corretamente suas operações nele (ex: deixando as transações em aberto).
O parâmetro de banco que controla os cursores seria o "open_cursors". Você pode consultar ele no seu banco digitando o comando:
SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME = 'open_cursors';
Se o seu banco estava funcionando normalmente, não houve aumento de acessos e - mesmo aumentando muito o valor do "open_cursors" - o erro se repetir, seria legal conversar com os seus desenvolvedores, pois realmente pode ser algum problema de aplicação. E neste caso, não adiantaria muito você ficar aumentando simplesmente o parâmetro.
Espero que tenha respondido à sua dúvida,
Abraços,
Sergio Coutinho
Fala Sergio Coutinho....muito obrigado pela resposta, irei analisar minha base de acordo com o que você disse e também verificar se alguma aplicação está com problemas para encerrar as operações. Quando achar o por que do alerta, postarei aqui. Até mais.
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Bom dia Pessoal...
Só complementando, colocando minha opinião, além da grande explicação do Coutinho... acho que vale também, por via das dúvidas, dar uma olhada nos fontes (sources), nos cursores (talvez procurar por OPEN) e, verificar após a data do alerta, se os fontes estão realmente fechando esses cursores.
Grande abraço,
Só complementando, colocando minha opinião, além da grande explicação do Coutinho... acho que vale também, por via das dúvidas, dar uma olhada nos fontes (sources), nos cursores (talvez procurar por OPEN) e, verificar após a data do alerta, se os fontes estão realmente fechando esses cursores.
Grande abraço,
Bom Dia a todos.
Bom sei que se passaram dois anos desde a criação deste post, mas existe um link muito legal sobre cursores. Segue o link para quem estiver interessado.
Link->http://www.orafaq.com/node/758
Bom sei que se passaram dois anos desde a criação deste post, mas existe um link muito legal sobre cursores. Segue o link para quem estiver interessado.
Link->http://www.orafaq.com/node/758
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 19 visitantes