Bom dia André,

Como a aplicação B é de outra equipe não tenho o conhecimento necessário de
como está implementado todo o código da stored procedure, mas quanto ao
tratamento de erros eu confirmei com a equipe se havia um exception when
others justamente para retornar qualquer tipo de erro que pudesse estar
ocorrendo e eles não estavam tratando. Mas mesmo assim não obtivemos
sucesso.




Em 10 de junho de 2014 18:17, Andre Santos andre.psantos...@gmail.com
[oracle_br] <oracle_br@yahoogrupos.com.br> escreveu:


>
>
> Marcos
>
> Depende muito de como foi elaborado o código PL/SQL... até mesmo um SELECT
> pode gerar erro... e como é feito o tratamento dos erros (exceptions)?
>
> [ ]'s
>
> André
>
>
>
> Em 10 de junho de 2014 17:14, angelo angelolis...@gmail.com [oracle_br] <
> oracle_br@yahoogrupos.com.br> escreveu:
>
>>
>>

>> Vamos lá, bora tentar matar mais essa charada
>>
>> Pergunta em cima da pergunta...
>>
>> Na aplicação A, quando o procedimento que faz a leitura da tabela, ela
>> vai sempre ao DBLINK para acessar também base B?  Ou não necessariamente,
>> podendo variar tipo, pode ir ou não?
>> O fato de ter alterado, se nao mexeram no DBLINK, teoricamente nao
>> deveria alterar em nada..
>>
>> Quanto ao processo do gravação, acho que o Oracle não interfere não, até
>> porque o controle ta dentro do codigo, na transação aberta tudo vai ser
>> processado como se fosse uma coisa só.. e a conta fecha, quando vier o
>> commit encerrando o processo. Bom, to dando pitaco sem testar..
>>
>> O que se pode fazer é checar a conectividade, se o DBLINK está de pé (se
>> bem que se nao tivesse daria erro na primeiro select bla, bla from tabela@B
>> ) no momento da execução..
>>
>>
>>
>> 2014-06-10 10:04 GMT-03:00 Marcos Antônio de Araújo maac...@gmail.com
>> [oracle_br] <oracle_br@yahoogrupos.com.br>:
>>
>>
>>>
>>> Pessoal,
>>>
>>> Agradeço demais as explanações feitas por vocês afim de me direcionar
>>> para a solução do problema. Acabou que ontem a tarde detectamos o real
>>> motivo do problema e como vocês mesmo já haviam dito, me parece ter sido
>>> implementação de código. Porém, é a segunda vez que ocorre e gostaria de
>>> ver se você saberiam me explicar o que ocorre tecnicamente no Oracle.

>>>
>>> *CASO*
>>> Temos 2 aplicações que fazem interoperabilidade através de stored
>>> procedure, durante o processo de gravação de registros. A *"aplicação
>>> A"* abre uma transação e executa diversos INSERTs/UPDATEs na própria
>>> base de dados e em um determinado momento executa uma stored procedure
>>> através de um DBLINK que faz diversas validações na base de dados da 
>>> *"aplicação
>>> B"*. Tudo funcionava perfeitamente até que um dia foi implementado
>>> neste procedimento uma leitura de uma tabela da *"aplicação A" *novamente
>>> e a partir deste dia começou a ocorrer o problema citado, onde a transação
>>> não retorna erro mas não grava nenhum dado na base da *"aplicação A"*.
>>>

>>> O Oracle não permite que durante um processo de gravação seja
>>> estabelecido a comunicação de A -> B e de B -> A em uma mesma transação?
>>>
>>>
>>
>>
>>> Abraços,
>>> Marcos
>>>

>>> Em 9 de junho de 2014 09:19, Marcos Antônio de Araújo <maac...@gmail.com
>>> > escreveu:
>>>
>>> Chiappa,
>>>>
>>>> Valeu demais esta sua explicação. Vou sentar com as chefias aqui
>>>> e repassar tudo isto afim de detectarmos o problema.
>>>>
>>>> Obrigado!
>>>>
>>>> Abraços,
>>>> Marcos
>>>>
>>>>
>>>> Em 9 de junho de 2014 00:06, jlchia...@yahoo.com.br [oracle_br] <
>>>> oracle_br@yahoogrupos.com.br> escreveu:
>>>>
>>>>
>>>>>
>>>>> No RDBMS Oracle, o trace de SQL pode ser aplicado a um SQL específico,
>>>>> a uma sessão, ou a todas as sessões que se conectarem ao banco de dados :
>>>>> não há, por parte do RDBMS, nenhuma opção de trace a nível de instância 
>>>>> nem
>>>>> a nível de servidor. Não haverá, portanto, a necessidade de restart do
>>>>> servidor, nem nada do tipo. A nível de database, os únicos parâmetros
>>>>> exigidos são o TIMED_STATISTICS=TRUE, os parâmetrso de dump apontando para
>>>>> um filesystem/disco com bastante espaço livre e o max_dump_file_size 
>>>>> setado
>>>>> para um valor o mais alto possível.
>>>>>
>>>>>  Evidentemente :
>>>>>
>>>>>  a) traces do tipo podem interferir SERIAMENTE com a performance, já
>>>>> que tipicamente um database Oracle de produção processa centenas de SQLs a
>>>>> cada curto período : assim sendo,  JAMAIS vc ativará o trace num período 
>>>>> de
>>>>> uso comum, mas sim num período/dia escolhido aonde haja o menor número de
>>>>> utilizadores, ou até mesmo (preferencialmente) só o usuário testador
>>>>>

>>>>>  b) os arquivos gerados por esse trace tendem a crescer muito, então o
>>>>> servidor deve ser Preparado, liberando-se o máximo de espaço possível (ou
>>>>> mesmo adicionando-se espaço extra)

>>>>>
>>>>>  c) deve ser levantado se o ambiente usa algum tipo de POOL DE

>>>>> CONEXÕES, aonde a aplicação não cria uma sessão para cada conexão, mas sim
>>>>> cada comando enviado ao database por cada conexão são atendidos por uma
>>>>> sessão pré-criada pelo pool : se isso for verdadeiro, o pessoal aí  terá

>>>>> que instrumentar/identificar a sessão, com um dos mecanismo de end-to-end
>>>>> trace : veja
>>>>> http://www.dbspecialists.com/files/presentations/tracing_ind_sessions.html
>>>>> para um exemplo
>>>>>
>>>>> d) deve ser levantada a comunicação com o database, no sentido de
>>>>> checar se cada tela do aplicativo abre uma conexão ou não, se é viável
>>>>> indicar uma sessão específica para os testes... Isso é no sentido de
>>>>> facilitar a sessão a tracejar, Evtando trace a nível de database que via 
>>>>> de
>>>>> regra é por demais intrusivo
>>>>>
>>>>>  []s
>>>>>
>>>>>    Chiappa
>>>>>
>>>>>  OBS : como referência, indico além da documentação Oracle (em

>>>>> especial o manual de Tuning), também os links
>>>>> http://www.oracle-base.com/articles/misc/sql-trace-10046-trcsess-and-tkprof.php
>>>>> ,
>>>>> http://www.databasejournal.com/features/oracle/article.php/3469891/Collecting-Oracle-Extended-Trace-10046-event.htm
>>>>> , http://www.dicka.eclipse.co.uk/oracle_trace_event_10046_notes.htm e The
>>>>> Oracle Instructor: Oracle TRACE EVENT 10046
>>>>> <http://shoaib-dba.blogspot.com.br/2012/06/oracle-trace-event-10046.html>
>>>>>          The Oracle Instructor: Oracle TRACE EVENT 10046
>>>>> <http://shoaib-dba.blogspot.com.br/2012/06/oracle-trace-event-10046.html>
>>>>>       Visualizar em shoaib-dba.blogspot.com.br
>>>>> <http://shoaib-dba.blogspot.com.br/2012/06/oracle-trace-event-10046.html>
>>>>>   Visualização pelo Yahoo
>>>>>
>>>>>
>>>>>
>>>>>

>>>>
>>>
>>
>
>
  • [oracle_br] Re: P... jlchia...@yahoo.com.br [oracle_br]
    • Re: [oracle_... Marcos Antônio de Araújo maac...@gmail.com [oracle_br]
      • Re: [ora... jlchia...@yahoo.com.br [oracle_br]
        • Re: ... Marcos Antônio de Araújo maac...@gmail.com [oracle_br]
          • ... Marcos Antônio de Araújo maac...@gmail.com [oracle_br]
            • ... angelo angelolis...@gmail.com [oracle_br]
              • ... Andre Santos andre.psantos...@gmail.com [oracle_br]
              • ... Marcos Antônio de Araújo maac...@gmail.com [oracle_br]
              • ... Andre Santos andre.psantos...@gmail.com [oracle_br]
              • ... angelo angelolis...@gmail.com [oracle_br]
              • ... Andre Santos andre.psantos...@gmail.com [oracle_br]
              • ... Marcos Antônio de Araújo maac...@gmail.com [oracle_br]
              • ... Andre Santos andre.psantos...@gmail.com [oracle_br]
              • ... Marcos Antônio de Araújo maac...@gmail.com [oracle_br]
            • ... jlchia...@yahoo.com.br [oracle_br]
              • ... Marcos Antônio de Araújo maac...@gmail.com [oracle_br]
              • ... Marcos Antônio de Araújo maac...@gmail.com [oracle_br]

Responder a