powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / виснет вызов extproc в процедуре WebDB
23 сообщений из 23, страница 1 из 1
виснет вызов extproc в процедуре WebDB
    #39345442
Фотография vava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Помогите, уже не знаю куда копать. Спрашивал в соседней ветке, проверил советы, не помогло.
http://www.sql.ru/forum/1237709/visnet-vyzov-extproc-iz-sessii-webdb

Есть PL/SQL процедура (в пакете), формирующая страницу:
Код: plsql
1.
2.
3.
4.
procedure Page1 is 
begin
htp.p('<HTML><BODY> abc </BODY></HTML>');
end;



Есть функция с вызовом extproc:
Код: plsql
1.
2.
3.
4.
5.
 function mySQRT(d in double precision) return double precision as
  language C
	library ora_dll_lib
	name "SquareRoot"
	parameters (d double,return double);



Всё по отдельности - работает: страничка загружается, вызов функции (в Developer'е, DEDICATED) отрабатывает.
А вот если вызов extproc поместить в код процедуры страницы:
Код: plsql
1.
2.
3.
4.
5.
6.
procedure Page1 is 
ret number;
begin
ret:=mySQRT(81);
htp.p('<HTML><BODY> My Page </BODY></HTML>');
end;


браузер виснет, висит сессия ANONYMOUS ("ACTIVE", virtual circuit wait), процесс extproc.exe присутствует, но в функцию C++ не заходит (пробовал, например, файлы копировать - не копирует).
В логах и TNS и extproc (hs) всё чисто, логгирование и трассировка включены. Из толстого клиента процедура отрабатывает нормально.

На машине с Win32 / 10gEE (+Apache) - всё работает. Пытаюсь запустить на Win64 / 11gEE (EPG?) - не работает.
На работающей машине сессии ANONYMOUS'а запускаются как DEDICATED. На новой - толстые клиенты и Developer - DEDICATED, а вот ANONYMOUS - как SHARED. Пробовал в TNS насильно поставить DEDICATED на extproc (CLRExtProc) - не влияет, всё равно SHARED. Пробовал в SPFILE выставить shared_servers = 0 - отвалились все подключения из браузеров, в т.ч. EManager 12c.

Подскажите, куда копнуть? Скорее всего, я не понимаю как работает http-доступ в 11g по сравнению с 10g (apache).
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39345448
Фотография vava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю - и никаких ошибок не возникает, просто виснет сессия ANONYMOUS'а .
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39345538
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavaЕсть PL/SQL процедура (в пакете), формирующая страницу:
Код: plsql
1.
2.
3.
4.
procedure Page1 is 
begin
htp.p('<HTML><BODY> abc </BODY></HTML>');
end;


переделать на страничку из построителя апекс - Новая страница - далее ответы на вопросы и готовая страничка.
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39345921
Фотография vava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сама страничка работает. Не работает вызов extproc из сессии ANONYMOUS'a.

Подскажите, как заставить ANONYMOUS'а подключаться DEDICATED?
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39346176
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavaНе работает вызов extproc из сессии ANONYMOUS'a.
Подскажите, как заставить ANONYMOUS'а подключаться DEDICATED?
вы разве не поняли?
Был совет использовать штатные механизмы апекса версии 4 и 5.
Вызов внешней хранимки не является штатным.
Поэтому либо пишите задачу и подыщем решение без extproc либо удачи вам!
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39346392
Фотография vava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, мысль я понял, но apex я не использую. Вопрос задавал тут, так как в основном форуме пока не помогли. Предполагал, что раз тут тоже используется http доступ, то может кто-то сталкивался с подобной проблемой.
Сейчас всё свелось к задаче "заставить ANONYMOUS'а подключаться DEDICATED". Подскажите.
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39346505
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavaНет, мысль я понял, но apex я не использую. Вопрос задавал тут, так как в основном форуме пока не помогли. Предполагал, что раз тут тоже используется http доступ, то может кто-то сталкивался с подобной проблемой.
Сейчас всё свелось к задаче "заставить ANONYMOUS'а подключаться DEDICATED". Подскажите.
Извини. Странные задачи не от пользователя а от программиста моя голова не умеет решать.
Пользователь сказал бы: "включил, кликнул кнопку и нужно то и то то....".
Программист же понапридумает такие Г. задачи...
vavaНет, мысль я понял, но apex я не использую. Вопрос задавал тут, так как в основном форуме пока не помогли
И не помогут.
Нужно использовать апекс решения.
Удачи!
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39347288
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не понял, что за приложение стоит между БД и браузером, чтобы отображать странички процедуры Page1. Апекс вы не используете...
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39348879
Фотография vava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,
Прошу прощения за поздний ответ.
Настраивал примерно так:
Код: plsql
1.
2.
3.
4.
5.
6.
begin 
dbms_xdb.setHTTPPort(8080);
dbms_epg.create_dad('dad','/dd/*');
dbms_epg.authorize_dad('dad','USER1');
...
end;



Думаю, используется EPG, не Apache.
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39348906
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vavablkangel,
Прошу прощения за поздний ответ.
Настраивал примерно так:
Код: plsql
1.
2.
3.
4.
5.
6.
begin 
dbms_xdb.setHTTPPort(8080);
dbms_epg.create_dad('dad','/dd/*');
dbms_epg.authorize_dad('dad','USER1');
...
end;



Думаю, используется EPG, не Apache.

Ах вы дадс настроили через EPG. И почти сами ответили на вопрос. у USER1 должны быть права на выполнение процедуры.
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39348942
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vava,
Еще в качестве эксперимента, апач который настроен на рабочий инстанс, временно перенастроить на не рабочий. Чтобы исключить рабочие звенья в цепочке.
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39348986
Фотография vava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,
И пакет с функциями для страниц и внешняя процедура - всё создавалось пользователем USER1. Он же назначен и для DAD.
Я пытался Анонимусу давать права на внешнюю процедуру - не помогает. И ведь ошибки не возникает, просто виснет сессия.
И почему-то на старой машине (10g + Apache), сессия Анонимуса создавалась как dedicated и всё работало. А на новой (12с) - как shared.
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39349026
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vavablkangel,
И пакет с функциями для страниц и внешняя процедура - всё создавалось пользователем USER1. Он же назначен и для DAD.
Я пытался Анонимусу давать права на внешнюю процедуру - не помогает. И ведь ошибки не возникает, просто виснет сессия.
И почему-то на старой машине (10g + Apache), сессия Анонимуса создавалась как dedicated и всё работало. А на новой (12с) - как shared.

Вообще при работе в Апексе через EPG, у меня возникал эффект "заморозки", но при этом не висло.
Я EPG как боевой метод работы никогда не рассматривал. Рассмотрите варианты Apache, ORDS, OHS.

Я вот с Анонимосом не могу понять, ну в 10ке, там наверное Апач под этим пользователем конектился, по новой схеме у вас USER1 должен обращаться к БД.
В любом случае, чтобы я сделал.
1. Провел эксперимент, который описал в посте выше.
2. Поставил бы для использование другой дадс.

Про тип сессии dedicated/shared, у вас наверное один сервер dedicated, а второй как shared вот и сессии такие же...
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39349255
Фотография vava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

На проблемной машине везде выставлено dedicated. Единственное, где оставил - в spfile SHARED_SERVER=5 (не 0). Если и тут запретить SHARED, отваливается веб-доступ (в т.ч. EManager).

И на старой машине (где Апач) и на новой, везде подключение идет через Анонимус.
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39352189
Фотография vava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоге, сформулировался вопрос так:
Как конфигурируется тип подключения для XDB? Ведь вы же настраиваете APEX ...
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39352473
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vavaВ итоге, сформулировался вопрос так:
Как конфигурируется тип подключения для XDB? Ведь вы же настраиваете APEX ...

XDB для апекса настроено при установке, большинство знает одну команду, как отключить XDB, прописав нулевой порт...
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39352531
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vava,
Не требует настройки как у вас выключатель на стене.
Если вы туда полезли, то значит вы белая ворона и делаете что то не так. Постановщик задачи ошибся.
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39353357
Фотография vava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Я про тонкости APEX'а ничего не знаю и обратился за советом, так как схожий механизм.
Выяснилось, что проблема именно в режиме SHARED, независимо от клиента.
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39353372
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vava,
А я вам и говорю. Что знать как устроен выключатель что такое shared вам не надо. Но вы упорно бъетесь в стену.
Для этого 2 условия:
- shared и листенер XDB настраивает сам оракл при установке новой бд из меню Пуск винды.
- апекс вы используете штатно и декларативно по документации.
Всё.
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39353823
Фотография vava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Листенер XDB был настроен инсталятором при установке базы, я лишь настраивал вызов внешних процедур. APEX я не использую и его не устанавливал.
Сейчас проблема ушла из сферы XDB и веб-доступа:
при подключении (толстым клиентом) через SHARED - получаем
Код: plaintext
ORA-28575: unable to open RPC connection to external procedure agent 
а при DEDICATED - всё нормально.
На старой машине работает и в том и в другом случае.
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39353862
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavaAPEX я не использую и его не устанавливал.
значит эта ветка форума ни при чём.
OFF
vavaСейчас проблема ушла из сферы XDB и веб-доступа:
при подключении (толстым клиентом) через SHARED - получаем
Код: plaintext
ORA-28575: unable to open RPC connection to external procedure agent 

берём поиск:
https://www.google.ru/search?q=ORA-28575: unable to open RPC connection to external procedure agent&ie=utf-8&oe=utf-8&gws_rd=cr&ei=k-s2WIOBFcOisAHJnIyIDQ
и первая же ссылка:
https://dba-notes.org/2011/03/31/ora-28575-unable-to-open-rpc-connection-to-external-procedure-agent/
показывает что вам в ветку оракла или напр. дельфи как клиента.
Удачи!
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39354066
Фотография vava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

По ссылкам есть лишь инфа как настраивать сам агент внешних процедур. Но это не ответит на вопрос "почему extproc в DEDICATED работает, а в SHARED - нет".

Проблема вылечилась рестартом экземпляра после добавления настроек PLSExtProc к уже присутствующим CLRExtProc.
Проблески (ещё до рестарта) появились после
Код: plaintext
ALTER SYSTEM SET DISPATCHERS='(PROTOCOL=IPC) (SERVICE=ORCLXDB)' scope=both
Но! После рестарта это не понадобилось, вернул
Код: plaintext
'(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
...
Рейтинг: 0 / 0
виснет вызов extproc в процедуре WebDB
    #39354118
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vava,
возможно.
Я extproc писал ещё в прошлом тысячелетии). Не популярно это в наше время.
Ничем помочь не могу.
Удачи!
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / виснет вызов extproc в процедуре WebDB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]