2009-08-05 19 views
5

कोई मुझे मदद कर सकता है, क्योंकि इस समस्या को बार जब आप एक ट्रिगर चलाने भर होता है, लेकिन एक सामान्य PROCEDDUREORA-29,270: बहुत से खुला HTTP अनुरोध

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

यह मुझे मदद की ..... – sergiu

+0

यह अभी भी 2016 – jva

+0

सहायक सवाल करने में सहायक है –

उत्तर

3

आप की जरूरत आपके अनुरोधों को बंद करने के बाद, यह स्वचालित रूप से नहीं होता है (जब तक आप पूरी तरह से डीबी को डिस्कनेक्ट नहीं करते हैं)

यह utl_http.end_response होता था, लेकिन मुझे यकीन नहीं है कि यह एक ही एपीआई है वाई और

10

अपना उपयोगकर्ता सत्र बंद करें और फिर समस्या ठीक हो गई है।

आंतरिक में 5 http अनुरोधों की एक सीमा है।

हो सकता है एक समस्या लापता है: utl_http.end_response

या एप्लिकेशन में एक अपवाद और resp वस्तु से एक करीबी नहीं।

ऐसे ही कोड को संशोधित:

EXCEPTION 
    WHEN UTL_HTTP.TOO_MANY_REQUESTS THEN 
    UTL_HTTP.END_RESPONSE(resp); 
संबंधित मुद्दे