Seguinte : um dos motivos que me levaram a preferir o banco Oracle é a sua extrema estabilidade nos conecitos básicos , como transação, a chance de um DML que foi comitado por si só "sumir" do banco eu diria (baseado no que eu vi, na experiência que acumulei até hoje), que é de 0,00000001%, certo ? Bug que faça "perder" registros até hoje afaik foi mais raro q tudo, teve uns poucos pouquíssimos que fiquei sabendo...Então a esmagadora e absoluta maioria das chances quando vejo uma situação tipo a sua são mesmo de bug na aplicação, os mais prováveis :
a) neguinho faz absurdos do tipo : BEGIN .... update... .. if condição then x := 123456; .... insert into tabela.... ... montes de outrso comandos... ... ... EXCEPTION when others then null; ==>> OU SEJA, está dando algum erro e o when null mascara !!. No exemplo acima, inclusive, até se o erro não foi de DML (digamos, x é number de 2) o insert não será feito, pois houve DESVIO ... Erros de lógica do tipo vc só "pega" é ** LIMPANDO ** o código (tirando essas exceptions abusrdas do tipo) e debugando,/executando ** EXATAMENTE ** com os mesmo valores/parâmetros b) triggers e SQL recursivo do tipo : se tiver sql do tipo mexendo numa das outras tabelas, pode interferir... c) variação de a), se o tal "procedimento" for executado a partir duma aplicação-cliente, é o CLIENTE que recebe o código/retorno de eror, se ele o "mascarar" também, babau... ** feita essa limpeza do código **, aí sim é ter-se um log dos erros NO BANCO (alert.log *** não serve *** !!!), tendo-se uma trigger tipo : DECLARE l_sql_text ora_name_list_t; -- array com o texto do SQL em execução l_n number := 0; -- contador do array do texto -- v_id number; -- valor da sequence q alimenta o id do erro BEGIN FOR n IN 1..ora_server_error_depth LOOP -- select chiappa.log_errors_seq.nextval into v_id from dual; -- insert into chiappa.log_errors_tab values (v_id, sysdate, ora_login_user, ora_client_ip_address, ora_server_error(n), ora_server_error_msg (n)); insert into chiappa.LOG_ERRORS_SESSION_tab (select sid, serial#, process, module, machine, terminal, program, type, client_info, row_wait_obj#, row_wait_file#, row_wait_block#, row_wait_row#, logon_time, last_call_et, pdml_enabled, pq_status, log_errors_seq.currval from v$session where audsid=userenv('sessionid') ); -- l_n := ora_sql_txt( l_sql_text ); if l_n <> 0 then -- evito casos de erros sem texto de SQL, como um DESC errado for i in 1 .. l_n loop insert into chiappa.LOG_ERRORS_SQL_TAB values (log_errors_seq.currval, l_sql_text(i), i ); end loop; end if; END LOOP; end log_errors_trig; ==> aí é altíssima a chance de que vc VAI pegar o problema, certo ?? []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "ESTUDO" <[EMAIL PROTECTED]> escreveu > bom dia > > O problema é o seguinte: Existe um procedimento que faz resumidamente o que tem abaixo: > > > inicio da transaçao > insere valor na tabela 1; > insere valor na tabela 2; > commit; > final da transação. > > O que acontece é que percebeu que um determinado registro foi gravado na tabela 1 e nao gravou na tabela 2. > comprova-se isso vendo a tabela de auditoria. > O horario da ocorrencia foi exatamente 13:55:00 > Então fui buscar algo no log, e a unica ocorrencia perto do horario foi a seguinte: > > Fri Nov 18 13:55:07 2005 > Thread 1 advanced to log sequence 12561 > Current log# 2 seq# 12561 mem# 0: /oracle/database/prod/log/redo02.log > Fri Nov 18 14:27:04 2005 > Thread 1 advanced to log sequence 12562 > Current log# 3 seq# 12562 mem# 0: /oracle/database/prod/log/redo03.log > Fri Nov 18 16:50:16 2005 > > Como se explica isso? > Não existem objetos inválidos. > Não é falta de privilegios, > ja simulamos a ocorrencia e não acontece de novo > Oracle 9.2.0.5 Linux > > Obrigada > > Cris > > [As partes desta mensagem que não continham texto foram removidas] -------------------------------------------------------------------------------------------------------------------------- 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/oracle_br@yahoogrupos.com.br/ --------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 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