Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Intermittent error ORA-29263: HTTP protocol error

vuatabcJan 18 2013 — edited Jan 22 2013
I have a program called repeatedly via the scheduler. All this program does is to submit an (https) GET request that sends data to a servlet. No information is returned. The calling rate is from a few tens to hundreds per minute. Most of these requests are successful but sometimes I get the following error in the alert_orcl.log ( the error rate is about 10-50/day)

ORA-12012: error on auto execute of job 2413109
ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1369
ORA-29263: HTTP protocol error
ORA-06512: at "ETT.ETT_SCHEDULER", line 16
ORA-06512: at "ETT.ETT_SCHEDULER", line 31
*** SESSION ID:(541.46309) 2013-01-18 06:34:42.861
*** CLIENT ID:() 2013-01-18 06:34:42.861
*** SERVICE NAME:(SYS$USERS) 2013-01-18 06:34:42.861
*** MODULE NAME:(DBMS_SCHEDULER) 2013-01-18 06:34:42.861
*** ACTION NAME:(REVGEOCODE_HTTP_2275175) 2013-01-18 06:34:42.861

I add some error log code in the program to see if there is any error from the http response, but it is empty. The servlet itself does not report any errors, too.

Below is the code ( the scheduled program is revgeocode_http_program )

PROCEDURE send_url (p_url IN VARCHAR2) AS
l_http_request UTL_HTTP.req;
l_http_response UTL_HTTP.resp;
l_text VARCHAR2(32767);
BEGIN
UTL_HTTP.set_wallet('file:/u01/app/oracle/wallet', 'some-password-wallet');
l_http_request := UTL_HTTP.begin_request(p_url);
l_http_response := UTL_HTTP.get_response(l_http_request);
UTL_HTTP.end_response(l_http_response);
exception
when others then
ett_error.record_error('send_url', l_text );
raise; -- <<<<<<<<<< line 16 >>>>>>>>>>>>>>>
END ;
procedure revgeocode_http_program( p_longitude number , p_latitude number ) as
v_url varchar2(256);
v_count number;
begin
select count(*) into v_count from reversegeocode where geo_longitude = p_longitude and geo_latitude = p_latitude;
if v_count != 0 then
return;
end if;
select count(*) into v_count from nonreversegeocode where geo_longitude = p_longitude and geo_latitude = p_latitude;
if v_count != 0 then
return;
end if;
v_url := 'https://a-server.com/a-servlet/ReverseGeocode?longitude=' || to_char(p_longitude) || '&latitude=' || to_char(p_latitude );
send_url(v_url); -- <<<<<<<<<<<<<<<< line 31 >>>>>>>>>>>>>>>>>>
end;

* Platform : RHEL 5.6, Oracle 11gR2 11.2.0.1 Standard Ed 64-bit*


Any advice is greatly appreciated.

Vu
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Feb 19 2013
Added on Jan 18 2013
7 comments
3,894 views