2009-08-05 16 views
5

ktoś może mi pomóc, bo ten problem występuje w całej momencie uruchomienia wyzwalacza, ale działa w normalnym PROCEDDUREORA-29270: zbyt wiele otwartych HTTP żąda

wyzwalania:

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

Pomogło mi ..... – sergiu

+0

Nadal jest pomocny w 2016 – jva

+0

Pomocne pytania –

Odpowiedz

3

trzeba aby zamknąć żądania po ich zakończeniu, nie dzieje się to automatycznie (chyba że całkowicie odłączysz się od db)

Kiedyś był utl_http.end_response, ale nie jestem pewien, czy to ten sam api jeszcze więcej.

10

zamknij sesję użytkownika, a następnie problem zostanie rozwiązany.

Wewnętrzny limit 5 żądań http.

Might problemem jest brakującym: utl_http.end_response

lub wyjątek w aplikacji, a nie blisko od obiektu wzgl.

zmodyfikować kod tak:

EXCEPTION 
    WHEN UTL_HTTP.TOO_MANY_REQUESTS THEN 
    UTL_HTTP.END_RESPONSE(resp); 
Powiązane problemy