Tira o exception da tua procedure e executa ela ... Tu já vai ver qual é o erro 
que esta dando.

Begin
  SYSTEM.METRIC_CONSUMO_CPU;
End;



Sergio Lucchini
________________________________
De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em nome 
de Duilio Bruniera Junior
Enviada em: sexta-feira, 22 de janeiro de 2010 14:12
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] problema para executar procedure em um job.



Ambiente
S.O.: Red Hat Linux 5.2 64bits
Oracle 10.2.0.4 RAC com 3 nós

E ai peoples tudo belezinha .... seguinte eu estou com um problema, eu criei
um procedure para capturar os 10 maiores processos(consumo de CPU),
minha ideia era colocar isso pra rodar em um job que executaria de 15 em 15
min, alimentando uma tabela com esses dados.
eu criei a procedure ela executa normalmente! mais quando coloco para rodar
no job o job não roda(roda mais da erro e o erro não aparece para mim)
estou postando o codigo abaixo se alguem puder dar uma força e dizer onde eu
to errando!
###################################################################################################################################
create table SYSTEM.DATA_METRIC_CPU
(
DATA_TIME TIMESTAMP,
INST_ID NUMBER,
SID NUMBER,
PID NUMBER,
USERNAME VARCHAR2(30),
PROGRAM VARCHAR2(30),
VALOR NUMBER
) TABLESPACE "METRIC";

_______________________________________________________
GRANT SELECT ON "SYS"."GV_$SESSTAT" TO "SYSTEM";
GRANT SELECT ON "SYS"."GV_$STATNAME" TO "SYSTEM";
GRANT SELECT ON "SYS"."GV_$SESSION" TO "SYSTEM";
GRANT SELECT ON "SYS"."GV_$PROCESS" TO "SYSTEM";
_______________________________________________________

create or replace procedure SYSTEM.METRIC_CONSUMO_CPU is
CURSOR cpu_cursor IS
SELECT *
FROM (SELECT s.inst_id,
s.sid,
p.spid,
s.username,
s.module,
st.value/100 valor
FROM sys.gv_$sesstat st,
sys.gv_$statname sn,
sys.gv_$process p,
sys.gv_$session s
WHERE sn.name = 'CPU used by this session'
AND s.inst_id = p.inst_id
AND s.inst_id = sn.inst_id
AND s.inst_id = st.inst_id
AND st.statistic# = sn.statistic#
AND st.sid = s.sid
AND s.paddr = p.addr
AND s.last_call_et < 1800 -- ativo nos ultimos 30 min.
AND s.logon_time > (SYSDATE - 240 / 1440) -- sessão logada a
pelo menos 4 horas.
ORDER BY st.value desc)
WHERE ROWNUM <= 10;
begin
for lcpu in cpu_cursor loop
insert into SYSTEM.DATA_METRIC_CPU
(DATA_TIME, -- DATE
INST_ID, -- NUMBER
SID, -- NUMBER
PID, -- NUMBER
USERNAME, -- VARCHAR2(30)
PROGRAM, -- VARCHAR2(30)
VALOR) -- NUMBER
values
(TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS'),
lcpu.inst_id,
lcpu.sid,
lcpu.spid,
lcpu.username,
lcpu.module,
lcpu.valor );
commit;
end loop;
exception
when others then
raise_application_error(-20001,'erro ao inserir dados-' ||
sqlerrm);
end METRIC_CONSUMO_CPU;
_______________________________________________________

-- 15 em 15min.
declare
x number;
begin
sys.dbms_job.submit ( job => X ,
what => 'SYSTEM.METRIC_CONSUMO_CPU;',
next_date => to_date('21/01/2010 00:01:00',
'dd/mm/yyyy hh24:mi:ss'),
interval => 'TRUNC(sysdate+15/1440)',
no_parse => TRUE );
sys.dbms_output.put_line('Job Number is: ' || to_char(x));
commit;
end;
/
----------------------------------------------------------

###################################################################################################################################
Valeu.

[As partes desta mensagem que não continham texto foram removidas]


No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 8.5.432 / Virus Database: 271.1.1/2636 - Release Date: 01/21/10 
07:34:00


[As partes desta mensagem que não continham texto foram removidas]

Responder a