Problema de Job (URGENTE).

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
cleber
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Qua, 17 Jun 2009 11:01 am
Localização: SP
Cléberson da Silva
DBA Oracle Jr.

Caros, bom dia !!

Em primeiro lugar quero dar os parabens a este site que me ajudou e me ajudo em situações que ninguém imagina.

Vamos lá !!

É o seguinte neste sabado (13/06/2009) as 11:18:35 da manhã parou de rodar um Job que é programado para rodar de 7 em 7 segundos, e sua ultima execução foi as 11:18:27 da manhã, ou seja, não rodou no horário 11:18:35. Só que no Alert_log não consta nada, nenhuma informação sobre este problema do Job. Gostaria de saber de vocês já passaram por este fato ou se sabem algo sobre este problema ??

Eu executei manualmente o Job com o owner dele e mesmo assim o seu horário não alterava e para piorar o mesmo executava muuuuito rápido o que de fato não é, pois ele leva alguns minutos para executar.

Preciso passar um posicionamento ao meu cliente, só que não tenho de onde tirar está resposta.

Por favor, conto com a ajuda de vocês.

No aguardo...

Valeu !!!
RodrigoValentim
Moderador
Moderador
Mensagens: 367
Registrado em: Ter, 25 Mar 2008 3:41 pm
Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

Você criou um job que roda de 7 em 7 segundos e o mesmo demora alguns minutos para executar.... é isso mesmo ou ele roda de 7 em 7 minutos (você descreveu errado, como sendo segundos)?

Se ele demora pra executar, ele vai comecar a deixar jobs na fila e vai quebrar... caso contrário, ele só irá quebrar se rodar uma certa quantidade de vezes e no caso, a rotina que ele usa estiver inválida.

Sobre o Alerta, não sei lhe informar o motivo.
cleber
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Qua, 17 Jun 2009 11:01 am
Localização: SP
Cléberson da Silva
DBA Oracle Jr.

Opa... obrigado pela resposta.

Então quem criou este Job foi outro DBA interno deste cliente no qual eu presto serviço atualmente.

Então o job executa de 7 em 7 segundos (Tem um print em anexo !!). Este Job atualiza requisições que são feitas nos hospitais, ou seja, como eu trabalho em um Laboratório todas as requisições que são feitas nos hospitais são atualizados por esta procedure. Só preciso ver mais detalhado o que exatamente esta procedure faz.

E para piorar meu plantão no sabado é das 06:00 as 18:00, e as 17:50 o cara do departamento de Redes me ligou dizendo que os atendes dos hospitais, no qual este laboratório tem convenio não estavam conseguindo consultar as requisições que eles faziam, ou seja, o Job não estavam rodando.

O que eu fiz foi me conectar no banco com o owner do job e executa-lo manualmente e mesmo assim nada.

Tive sair de casa as 21h00 e vier pessoalmente até o cliente para altera-lo no PL/SQL Developer, porque não tenho script para altera ou recriar job manualmente via comando no sql plus.

Não sei se o problema pode ser de Comunicação de Redes, DB_Link, Usuário em lock no banco, Objeto invalido porque verifiquei todos esses procedimentos e tambem não constou nada.

Você tem alguma rotina (script) que monitore os Jobs, e caso algum para de rodar esta rotina imediatamente executa quando algum para de rodar ??

Agradeço desde já a sua atenção e ajuda.


Imagem
RodrigoValentim
Moderador
Moderador
Mensagens: 367
Registrado em: Ter, 25 Mar 2008 3:41 pm
Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

Quando você roda a procedure, ela funciona normalmente ou da algum erro?

Uma observação... pode ter ocorrido o seguinte...

Quando a pessoa fez essa rotina, a base era "pequena" e rodava rápido... com o tempo passando, a base foi crescendo e a rotina passou a demorar mais de 7 segundos para executar e então os jobs estão entrando em fila e quebrando o mesmo porque ele não consegue executar por que está esperando o outro e assim vai...

Tenta explicar melhor o que você deseja fazer e sobre um controle de jobs quebrados, você pode fazer outro job consultando o dba_jobs e ver se o broken está Y, então, a rotina vai te alertar... o correto mesmo seria você ver o que está causando a quebra do job.
cleber
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Qua, 17 Jun 2009 11:01 am
Localização: SP
Cléberson da Silva
DBA Oracle Jr.

O Rodrigo valeu por responder.

Então o seguinte: Segundo o Gerente de TI aqui existe ou existia um script que executava o Job quando parava, ai esse script executava o Job imediatamente.

Não sei dizer se este Job executava em menos tempo ou algo parecido.

Este Job chama outras procedures, e estas outras procedures chama ou tra.

Agora estou vendo no PL/SQL Developer as referencias deste Job, mas não está adiantando nada olhar via PL/SQL se não existe nenhuma tipo de LOG que armazena alguma informação, como por exemplo, uma tabela invalida dentro de uma procedure pode ter parado o Job, ou outra procedure, trigger pode ter travado o Job.

Simplesmente preciso saber qual o motivo do Job ter parado do nada, pois quando ele pára durante a semana aqui no cliente, eu executo manualmente ai ele atualiza e vai rapidinho.

Isso eu acho estranho de não ter nenhuma evidencia dessa parada, nem no Alert_log consta nada.

Só quero saber o que pode ter acontecido.

Desculpa ficar tomando o seu tempo com esse problema, mas acho que alguém passou por isso.

Abs.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 26 visitantes