Ainda não funcionou.... 
Criei o script q vc usou, e rodou perfeitamente ao ser executado com 
o usuário oracle no linux, porém ao ser chamado pelo JOB, não rodou. 
E é exatamente isso que acontece com o meu script!! 

Ele considera o JOB como rodando, no entanto, não faz o que deveria. 
É como se desse um erro no sistema operacional que trancasse o 
procedimento e não desse retorno ao PLUS, q considera o processo em 
andamento... mas q na verdade não está fazendo nada!! 
Tenho que matar o processo (kill -9 [nro]), pra não permanecer 
rodando eternamente.

dsv> select job_name, enabled, state from user_scheduler_jobs;

JOB_NAME                       ENABL STATE
------------------------------ ----- ---------------
BACKUP_DESENV_JOB              TRUE  SCHEDULED
TEST_SHELL                     TRUE  RUNNING

A permissão está total (chmod 777) tanto para o diretótio quanto para 
o arquivo que estou tentando executar (pck_backup.sh)!! 



--- Em [email protected], Marcio Portes 
<[EMAIL PROTECTED]> escreveu
>
> Vamos a um exemplo completo.
> 
> Primeiro um script que, quando executa, atualiza um arquivo 
chamado "executou" com a data do momento.
> 
> [EMAIL PROTECTED] bin]$ pwd
> /home/marcio/bin
> [EMAIL PROTECTED] bin]$ cat test_shell.sh
> #!/usr/bin/ksh
> #
> 
> echo `date` >> /tmp/executou
> 
> Verifique se o usuário do oracle no sistema operacional tem acesso 
ao script.
> 
> [EMAIL PROTECTED] bin]$ su - oracle
> Password:
> [EMAIL PROTECTED] ~]$
> [EMAIL PROTECTED] ~]$ ~marcio/bin/test_shell.sh
> [EMAIL PROTECTED] ~]$ ~marcio/bin/test_shell.sh
> [EMAIL PROTECTED] ~]$
> [EMAIL PROTECTED] ~]$ cat /tmp/executou
> Tue Jan 24 00:03:04 BRST 2006
> Tue Jan 24 00:03:05 BRST 2006
> [EMAIL PROTECTED] ~]$
> 
> Isso significa que o oracle, usuário do sistema operaciona dono do 
oracle 10g da minha instalação tem permissão e 
> consiguiu executar o script por 2 vezes, gerando o 
arquivo /tmp/executou com os respectivos horários.
> 
> Agora, vamos criar o job para executar de 2 em 2 minutos.
> 
> SQL> begin
>    2     dbms_scheduler.create_job
>    3     (
>    4        job_name        => 'TEST_SHELL',
>    5        job_type        => 'EXECUTABLE',
>    6        job_action      => '/home/marcio/bin/test_shell.sh',
>    7        repeat_interval => 'FREQ=MINUTELY; INTERVAL=2',
>    8        end_date        => trunc(sysdate) + 30/24/60,
>    9        enabled         => true,
>   10        comments        => 'Teste para execucao de shell linux'
>   11     );
>   12  end;
>   13  /
> 
> PL/SQL procedure successfully completed.
> 
> 
> E verificar na user_scheduler_jobs.
> 
> SQL> select job_name, run_count, to_char(end_date, 'hh24:mi:ss') 
end_date,
>    2         to_char(next_run_date, 'hh24:mi:ss') next_run_date
>    3    from user_scheduler_jobs
>    4  /
> 
> JOB_NAME                           RUN_COUNT END_DATE NEXT_RUN
> ------------------------------ ------------- -------- --------
> TEST_SHELL                                 0 00:30:00 00:18:58
> 
> 1 row selected.
> 
> SQL> /
> 
> JOB_NAME                           RUN_COUNT END_DATE NEXT_RUN
> ------------------------------ ------------- -------- --------
> TEST_SHELL                                 1 00:30:00 00:20:58
> 
> 1 row selected.
> 
> 
> Ok, rodou o primeiro.
> 
> SQL> !cat /tmp/executou
> Tue Jan 24 00:18:58 BRST 2006
> 
> SQL> /
> 
> JOB_NAME                           RUN_COUNT END_DATE NEXT_RUN
> ------------------------------ ------------- -------- --------
> TEST_SHELL                                 2 00:30:00 00:22:58
> 
> 1 row selected.
> 
> E agora segue até meu end_date ser alcançado!
> 
> SQL> !cat /tmp/executou
> Tue Jan 24 00:18:58 BRST 2006
> Tue Jan 24 00:20:58 BRST 2006
> 
> SQL> /
> 
> JOB_NAME                           RUN_COUNT END_DATE NEXT_RUN
> ------------------------------ ------------- -------- --------
> TEST_SHELL                                 3 00:30:00 00:24:58
> 
> 1 row selected.
> 
> SQL> !cat /tmp/executou
> Tue Jan 24 00:18:58 BRST 2006
> Tue Jan 24 00:20:58 BRST 2006
> Tue Jan 24 00:22:58 BRST 2006
> 
> SQL> /
> 
> JOB_NAME                           RUN_COUNT END_DATE NEXT_RUN
> ------------------------------ ------------- -------- --------
> TEST_SHELL                                 3 00:30:00 00:24:58
> 
> 1 row selected.
> 
> SQL> /
> 
> JOB_NAME                           RUN_COUNT END_DATE NEXT_RUN
> ------------------------------ ------------- -------- --------
> TEST_SHELL                                 5 00:30:00 00:28:58
> 
> 1 row selected.
> 
> SQL> !cat /tmp/executou
> Tue Jan 24 00:18:58 BRST 2006
> Tue Jan 24 00:20:58 BRST 2006
> Tue Jan 24 00:22:58 BRST 2006
> Tue Jan 24 00:24:58 BRST 2006
> Tue Jan 24 00:26:58 BRST 2006
> 
> SQL> /
> 
> no rows selected
> 
> SQL> !cat /tmp/executou
> Tue Jan 24 00:18:58 BRST 2006
> Tue Jan 24 00:20:58 BRST 2006
> Tue Jan 24 00:22:58 BRST 2006
> Tue Jan 24 00:24:58 BRST 2006
> Tue Jan 24 00:26:58 BRST 2006
> Tue Jan 24 00:28:58 BRST 2006
> 
> 
> 
> evandrobarbian wrote:
> > --- Em [email protected], "evandrobarbian" 
> > <[EMAIL PROTECTED]> escreveu
> >>
> >> Não consegui rodar um executável via JOB, do Scheduler do 10g!! 
> >> Se chamo um procedimento do banco funciona, mas ao chamar um 
shel 
> > do 
> >> Linux, simplesmente não dá erro, e nem faz o que deveria... 
> >> Rodando o shell via linha de comando no linux funciona beleza. 
> >> Será alguma incompatibilidade, bug??? Não sei, já tentei de tudo 
e 
> > não 
> >> consigo resolver o problema... estou rodando via CRONTAB por 
> > enquanto, 
> >> mas queria fazer uso do SCHEDULER... 
> >> Segue o script de criação do JOB... e aguardo a ajuda de alguém:
> >>
> >> DBMS_SCHEDULER.create_job (
> >>     job_name        => 'BACKUP',
> >>     job_type        => 'EXECUTABLE',
> >>     job_action      => '/usr/local/bin/pck_backup.sh',
> >>     start_date      => SYSTIMESTAMP,
> >>     repeat_interval => 'freq=daily; byhour=1',
> >>     end_date        => NULL,
> >>     enabled         => TRUE,
> >>     comments        => 'Job para Backup automático.');
> 
> -- 
> Marcio Portes
> http://mportes.blogspot.com
>






--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/[email protected]/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
Moderador e Fundador: Dorian Anderson Soutto [EMAIL PROTECTED]
__________________________________________________________________ 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a