Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / проблема с дблинком / 9 сообщений из 9, страница 1 из 1
07.12.2016, 15:29
    #39361908
relav
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с дблинком
Система при начальной загрузки вызывает БД функцию(f_onlogin),которая вызывается через пхп. Данная БД функция по дблинку(plmon) вызывает другую функцию. Все работает, но через некоторое время возникает ошибка:

Warning: oci_execute():
ORA-03150: end-of-file on communication channel for database link
ORA-02063: preceding line from PLMON

привожу текст БД функции:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
 
CREATE OR REPLACE FUNCTION f_onlogin(vHostname VARCHAR2,
                                     vUser VARCHAR2,
                                     vOwner VARCHAR2,
                                     vSession VARCHAR2,
                                     vRequest NUMBER) RETURN VARCHAR2
as
function f_get_key(vSQL VARCHAR2,vUser VARCHAR2) RETURN VARCHAR2
    as
    PRAGMA AUTONOMOUS_TRANSACTION;

    lIdent varchar2(512);

  begin
    SET TRANSACTION READ ONLY;

    execute immediate vSQL
    using in vUser,out lIdent;

    commit;

    return lIdent;
  end;

begin
       if lower(vOwner) = 'plmon' then
               lSQL:= 'begin SELECT plmon.GIS_GetKey@plmon(:user) into :ident FROM dual; end;';
        end if;

    lIdent := f_get_key(lSQL,lUser);
    
    if lower(vOwner) = 'plmon' then
        execute immediate 'ALTER SESSION CLOSE DATABASE LINK PLMON';
    end if;



Используется оракл: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

Как избавиться от данного предупреждения?
...
Рейтинг: 0 / 0
07.12.2016, 18:41
    #39362081
Viewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с дблинком
relav... но через некоторое время возникает ошибка...
... что значит "через некоторое время"?
Сама по себе, формулировка "через некоторое время", в общем смысле, означает, что идёт некий непрерывный процесс, который "через некоторое время".... говорит "упссс"...
Возможно, вы хотели сказать "время от времени" ... "иногда" ... "при начальной загрузке" ?
...
Рейтинг: 0 / 0
07.12.2016, 18:52
    #39362086
Viewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с дблинком
P.S.
relavКак избавиться от данного предупреждения?
Довреднечию уж до конца :)
Избавиться от предупреждения очень просто, достаточно в обработчике "проглотить" exception...
Возможно, вы хотели избавиться от ошибки? :)
...
Рейтинг: 0 / 0
08.12.2016, 09:59
    #39362282
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с дблинком
relav,

А в чём суровая необходимость использовать автономку вкупе с распределённой транзакцией и динамическим sql?
...
Рейтинг: 0 / 0
08.12.2016, 10:03
    #39362289
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с дблинком
И что проталкивается в вызов автономки для юзера отличного от plmon?

Не говоря уж о том, что функция в приведённом варианте даже не скомпилируется, кинув ошибку на несуществующей переменной lSql.
...
Рейтинг: 0 / 0
08.12.2016, 11:49
    #39362412
relav
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с дблинком
env,

PRAGMA AUTONOMOUS_TRANSACTION;
SET TRANSACTION READ ONLY;
execute immediate 'ALTER SESSION CLOSE DATABASE LINK PLMON';

приведенные выше прагма, оператор и динамический sql применены в данном коде, как рекомендации, которые нашел в интернете, но они не помогли.
...
Рейтинг: 0 / 0
08.12.2016, 11:53
    #39362417
relav
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с дблинком
Viewer,

да, избавится от ошибки. exception - не вариант. Нужно разобраться в корне проблемы.
...
Рейтинг: 0 / 0
08.12.2016, 11:53
    #39362419
relav
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с дблинком
Viewer,

да, вы правы, время от времени.
...
Рейтинг: 0 / 0
08.12.2016, 11:55
    #39362422
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с дблинком
Сессии пхп цепляются к dedicated или к shared серверу?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / проблема с дблинком / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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