2009-08-05 8 views
5

qualcuno mi potrebbe aiutare perché questo problema si verifica in tutto volta che si esegue un trigger, ma opera in un normale PROCEDDUREORA-29270: troppi HTTP Apri richieste

TRIGGER:

create or replace 
procedure testeHTTP(search varchar2) 
     IS 

Declare 
    req sys.utl_http.req;<BR> 
    resp sys.utl_http.resp;<BR> 
url varchar2(500); 

Begin 


    url := 'http://www.google.com.br'; 

    dbms_output.put_line('abrindo'); 
    -- Abrindo a conexão e iniciando uma requisição 
    req := sys.utl_http.begin_request(search); 

    dbms_output.put_line('preparando'); 
    -- Preparandose para obter as respostas 
    resp := sys.utl_http.get_response(req); 


dbms_output.put_line('finalizando response'); 
    -- Encerrando a comunicação request/response 
    sys.utl_http.end_response(resp); 


Exception 
    When Others Then 
    dbms_output.put_line('excecao'); 
    dbms_output.put_line(sys.utl_http.GET_DETAILED_SQLERRM()); 

End; 
+0

Mi ha aiutato ..... – sergiu

+0

E 'ancora utile nel 2016. – jva

+0

domanda Utile –

risposta

3

è necessario per chiudere le tue richieste una volta che hai finito con esse, non avviene automaticamente (a meno che tu non scolleghi completamente il db)

Era il utl_http.end_response, ma non sono sicuro che sia la stessa API y di più.

10

chiude la sessione utente e quindi il problema è risolto.

interno c'è un limite da 5 richieste http.

Si potrebbe prevedere un problema è il mancante: utl_http.end_response

o un'eccezione in app e non una stretta dall'oggetto resp.

modificare il codice del genere:

EXCEPTION 
    WHEN UTL_HTTP.TOO_MANY_REQUESTS THEN 
    UTL_HTTP.END_RESPONSE(resp);