помогите разобраться с ошибкой пожалуйста

718
Дата: 02.11.2015 09:28:41
есть пакет который отправляет get запрос на веб сервер
Procedure send(
   p_Msg_Id crm_messages.id%Type,
   p_Msg crm_messages.msg%Type,
   p_Msg_Group crm_messages.Msg_Group%Type,
   p_Code crm_messages.Msg_Code%Type,
   p_Id crm_messages.Ext_Id%Type,
   p_Service_Type crm_messages.Service_Type%Type,
   p_Subject_Id crm_messages.Subject_Id%Type,
   p_phone crm_messages.phone%Type,
   p_email crm_messages.email%Type,
   p_subscribe_type crm_messages.subscribe_type%Type,
   p_login crm_messages.login%Type,
   p_URL Varchar2
)
Is
  v_Req    Utl_Http.Req;
  v_Resp   Utl_Http.Resp;
  v_Value  Raw(1024);
  v_Buf    Varchar2(1024);
Begin
  -- Отправка запроса
  v_Req := Sys.Utl_Http.Begin_Request(p_URL, 'POST');
  Sys.Utl_Http.Set_Header(v_Req, 'User-Agent', 'Mozilla/4.0');
  -- Set JSP Params
  Sys.Utl_Http.Set_Body_Charset('UTF-8');
  Sys.Utl_Http.Set_Header(v_Req, 'Content-Type', 'application/xml');
  Sys.Utl_Http.Set_Header(v_Req, 'Content-Length', LengthB(p_Msg));
  Sys.Utl_Http.Write_Raw(v_Req, Utl_Raw.Cast_To_Raw(p_Msg));
  -- Response
  v_Resp := Sys.Utl_Http.Get_Response(v_Req);
  Begin
    Loop
      Sys.Utl_Http.Read_Raw(v_Resp, v_Value, 1024);
      v_Buf := Trim(Replace(Replace(Sys.Utl_Raw.Cast_To_Varchar2(v_Value), Core_Const.c_New_Line), Chr(13)));
--      Dbms_Output.put_line(p_URL);
      If (v_Buf = 'OK') Then
        If (p_Code = 4) Then Null;
          Update crm_messages t
              Set t.State = 1
            Where t.Id = p_Msg_Id;
        Else
          Insert Into crm_messages Values(crm_messages_SQ.Nextval, p_Id, p_Service_Type, sysdate, p_Msg_Group, p_Code, p_Msg, 1, p_Subject_Id, p_phone, p_email, p_subscribe_type, p_login);
        End If;
        Commit;
      End If;
    End Loop;
    Sys.Utl_Http.End_Response(v_Resp);
  Exception 
    When Sys.Utl_Http.End_Of_Body Then
      Sys.Utl_Http.End_Response(v_Resp);
  End;
End send;

до переноса базы на новый сервер все работало прекрасно
при переносе версию обновили с 10.0 до 10.2.0.5.0
проблема состоит в том что когда пакет запускаю в тесте вручную вылетает ошибка
ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1231
ORA-29259: end-of-input reached ORA-06512: at "CORE.CRM_MSG_SEND", line 126
но когда пакет запускает жоб то работает без ошибок
в чем может быть проблема??
буду благодарен за любую помощь
Ivan K
Дата: 16.11.2015 12:41:18
718,

Проверьте результат, который получается на выходе процедуры Read_Raw. Возможно из-за разных настроек среды окружения (в Вашей сессии и в сессии задания) исключение Sys.Utl_Http.End_Of_Body не отрабатывает, и цикл проскакивает дальше.
Я бы проверял конец сообщения в цикле по какому нибудь еще исключению, например utl_tcp.end_of_input.
flexgen
Дата: 17.11.2015 21:32:38
718,

Поиск по форуму выдал вот это - ora-29259
mcureenab
Дата: 17.11.2015 22:17:57
С кодировками все в порядке? Какая кодировка БД, клиента?
Сообщение из БД или еще откуда?
Из примера не видно, какой концерт ты отправляешь.