2009-08-05 3 views
5

mir jemand helfen könnte, weil dieses Problem in ganz Zeit auftritt Sie einen Trigger laufen, aber arbeitet in einem normalen PROCEDDUREORA-29270: zu viele offene HTTP-Anforderungen

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

Es hat mir geholfen ..... – sergiu

+0

Es ist im Jahr 2016 – jva

+0

Hilfreiche Frage nach wie vor hilfreich –

Antwort

3

Sie brauchen um Ihre Anfragen zu schließen, sobald Sie damit fertig sind, geschieht dies nicht automatisch (außer Sie trennen die db vollständig ab)

Früher war es utl_http.end_response, aber ich bin mir nicht sicher, ob es die gleiche API ist y mehr.

10

Schließen Sie Ihre Benutzersitzung und dann ist das Problem behoben.

Intern gibt es eine Grenze von 5 HTTP-Anfragen.

könnte ein Problem ist die fehlende: utl_http.end_response

oder eine Ausnahme in der App und keine enger aus dem bzw. Objekt.

Ändern Sie den Code wie folgt aus:

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