Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 ошибка ora-29259  [new]
Evgeniypsb
Member

Откуда: Москва
Сообщений: 85
Всем привет, не могу разобраться в чем причина ошибки ora-29259 end-of-input reached. Есть сервис на который по https отправляется запрос (сертификаты загружены). Причем если выполнять отправку запроса из sql, то отрабатывает нормально, возвращает результат работы, а если вызывать через функцию пакета то возвращается эта ошибка.
Тут видел темы подобные но решений проблемы так и не было.

кусок кода
--...........................------------
    UTL_HTTP.SET_WALLET( walletdir, walletpass );
  utl_http.set_transfer_timeout('120');
--- в этот момент срабатывает exception
  req := utl_http.begin_request(URL, 'POST','HTTP/1.1');
-------------------
  utl_http.set_header(req, 'Content-Type', 'text/xml');
  utl_http.set_header(req, 'Content-Length', dbms_lob.getlength(v_blob));



Error Stack:
ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1130
ORA-29259: end-of-input reached
17 июн 15, 14:10    [17782222]     Ответить | Цитировать Сообщить модератору
 Re: ошибка ora-29259  [new]
Evgeniypsb
Member

Откуда: Москва
Сообщений: 85
Выяснилось, что при вызове функции из пакета, запрос уходит не подписанным клиентским сертификатом. Осталось понять почему такое происходит.
17 июн 15, 17:20    [17783606]     Ответить | Цитировать Сообщить модератору
 Re: ошибка ora-29259  [new]
Evgeniypsb
Member

Откуда: Москва
Сообщений: 85
Возможно кому то пригодится. После того как вы создадите wallet и сертификаты вам для вашего пользователя необходимо выдать разрешения.
BEGIN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE('all_access.xml','USER1', true, 'use-client-certificates');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_WALLET_ACL('all_access.xml','file:/path/to/oracle/wallet');
END;


И только после этого у меня всё заработало.
17 июн 15, 17:59    [17783837]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить