Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
jamil Участник - экстремал
Вступление в Клуб: 11.08.2014
|
Ср Ноя 18, 2020 11:05  rtl.open |
|
Полезность: Нет оценки
|
какие действия происходят когда вызывается rtl.open?
во время взаимодействия с внешней системой происходят периодические зависания. Предполагаю, что во время rtl.open что то происходит. |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Ср Ноя 18, 2020 21:02  Re: rtl.open |
|
Полезность: Нет оценки
|
Цитата: | какие действия происходят когда вызывается rtl.open?
во время взаимодействия с внешней системой происходят периодические зависания. Предполагаю, что во время rtl.open что то происходит. |
Точно не знаю, как именно, но при вызове rtl.open текущая сессия регистрируется где-то внутри ЦФТ, как если она работает из-под АРМ Навигатор. |
|
 |
De Mian Профи
Вступление в Клуб: 26.09.2008
|
Пт Ноя 20, 2020 00:22   |
|
Полезность: 1
|
Регистрация на блокировщике. |
|
 |
jamil Участник - экстремал
Вступление в Клуб: 11.08.2014
|
Пт Ноя 20, 2020 08:23  Re: rtl.open |
|
Полезность: Нет оценки
|
Цитата: | Цитата: | какие действия происходят когда вызывается rtl.open?
во время взаимодействия с внешней системой происходят периодические зависания. Предполагаю, что во время rtl.open что то происходит. |
Точно не знаю, как именно, но при вызове rtl.open текущая сессия регистрируется где-то внутри ЦФТ, как если она работает из-под АРМ Навигатор. |
извиняюсь за навязчивость, но кто то может по подробнее объяснить? |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Пт Ноя 20, 2020 09:46  Re: rtl.open |
|
Полезность: Нет оценки
|
Цитата: | извиняюсь за навязчивость, но кто то может по подробнее объяснить? |
Пакет rtl заврапплен, очевидно, что ЦФТ не желает открывать его внутренности.
Для выполнения запросов к типам данных никакой регистрации не нужно. А для выполнения функций, разработанных в ИБСО, нужна регистрация и получения доступа. Это даёт функция rtl.open без пояснений, что она там делает внутри. Просто пользуйтесь.
Вам это зачем? |
|
 |
jamil Участник - экстремал
Вступление в Клуб: 11.08.2014
|
Пт Ноя 20, 2020 10:01  Re: rtl.open |
|
Полезность: Нет оценки
|
Цитата: | Цитата: | извиняюсь за навязчивость, но кто то может по подробнее объяснить? |
Пакет rtl заврапплен, очевидно, что ЦФТ не желает открывать его внутренности.
Для выполнения запросов к типам данных никакой регистрации не нужно. А для выполнения функций, разработанных в ИБСО, нужна регистрация и получения доступа. Это даёт функция rtl.open без пояснений, что она там делает внутри. Просто пользуйтесь.
Вам это зачем? |
Периодически, при входе в Навигатор система зависает. |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Сб Ноя 21, 2020 15:56  Re: rtl.open |
|
Полезность: Нет оценки
|
Цитата: | Периодически, при входе в Навигатор система зависает. |
Попробуйте трейс снять. |
|
 |
De Mian Профи
Вступление в Клуб: 26.09.2008
|
Пн Ноя 23, 2020 13:06  Re: rtl.open |
|
Полезность: Нет оценки
|
Цитата: |
Пакет rtl заврапплен, очевидно, что ЦФТ не желает открывать его внутренности. |
Это уже по привычке видимо врапят.
Есть ресурс https://codecrete.net/UnwrapIt/ , который всё открывает. Лет 15 назад сделали exe-шники которые и старый и новый формат разврапливают. и даже книжка на инглише попадалась, которая весь процесс раскрывает.
Порылся года 4 назад на форумах англоязычных и нашел пример на JAVA разврапливающий ораклянные пакеты.
И вуаля. Это кощунство конечно, но теперь у меня уже как 4 года есть пакет, написанный на PLSQL разврапливающий заврапленные пакеты PL/SQL.
 |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Вт Ноя 24, 2020 09:34  Re: rtl.open |
|
Полезность: Нет оценки
|
The code does not seem to be valid wrapped PL/SQL code. The binary (Base64 encoded) part is invalid or incomplete. |
|
 |
De Mian Профи
Вступление в Клуб: 26.09.2008
|
Вт Ноя 24, 2020 14:57  Re: rtl.open |
|
Полезность: 1
|
Цитата: |
The code does not seem to be valid wrapped PL/SQL code. The binary (Base64 encoded) part is invalid or incomplete. |
Ну не знаю даже.
Код: | 7366 FUNCTION OPEN(P_NAME VARCHAR2 DEFAULT NULL,
7367 P_INFO VARCHAR2 DEFAULT NULL,
7368 P_USER_ID PLS_INTEGER DEFAULT NULL,
7369 P_COMMIT BOOLEAN DEFAULT TRUE
7370 ) RETURN PLS_INTEGER IS
7371 IDX PLS_INTEGER;
7372 U_IDX PLS_INTEGER;
7373 SELF BOOLEAN;
7374 STR VARCHAR2(2000);
7375 BEGIN
7376 IF INIT_LOCK THEN LOCK_INIT; END IF;
7377 U_IDX := NVL(P_USER_ID, CUR_USER.ID);
7378
7379 IF IS_LOCKED THEN
7380
7381
7382 WRITELOG_ERROR('SESSION_LOCKED', U_IDX);
7383
7384 RAISE NULL_PASSWORD;
7385 END IF;
7386
7387 SELF := U_IDX=CUR_USER.ID;
7388 CURDATE := SYSDATE;
7389 IF IS_OPEN THEN
7390 READ(NULL);
7391 END IF;
7392 IF SELF THEN
7393 IF U_IDX=0 THEN
7394 IF P_NAME='JOB' THEN
7395 U_IDX:= P_INFO;
7396 DBMS_APPLICATION_INFO.SET_CLIENT_INFO(P_INFO);
7397 U_IDX:= -U_IDX;
7398 CUR_USER.ID := U_IDX;
7399 IF NOT INIT_SELF(CUR_USER,STR) THEN
7400
7401 STR := SUBSTR(CHECK_USER(CUR_USER), 1, 2000);
7402
7403
7404 WRITELOG_ERROR('JOB_NOT_INITIALIZED', STR);
7405
7406 CUR_USER.ID := 0;
7407 DBMS_APPLICATION_INFO.SET_CLIENT_INFO(SESSION_ID);
7408 MESSAGE.CLEAR;
7409 MESSAGE.ERROR_REPEAT(STR);
7410 END IF;
7411 ELSE
7412
7413 WRITELOG_ERROR('ILLEGAL_JOB', P_NAME);
7414
7415 DBMS_APPLICATION_INFO.SET_CLIENT_INFO(SESSION_ID);
7416 RAISE LOGIN_DENIED;
7417 END IF;
7418 SESSION_ID := P_INFO;
7419 DBMS_SESSION.SET_CONTEXT(RTL_CONTEXT,'ID',U_IDX);
7420 IF CUR_USER.ORA_USER<>RTL_USER THEN
7421 RTL_USER := CUR_USER.ORA_USER;
7422 DBMS_SESSION.SET_CONTEXT(RTL_CONTEXT,'USER',RTL_USER);
7423 RTL_PROF := NULL;
7424 END IF;
7425 UID$ := CUR_USER.ID;
7426 USR$ := RTL_USER;
7427 LOCKS_RETURN_PIPE:= RTL_UTILS.PREFIX||U_IDX;
7428 DBMS_PIPE.PURGE(LOCKS_RETURN_PIPE);
7429 ELSIF RTL_UTILS.IS_SESSION_3L(U_IDX) AND IS_DBRW THEN
7430
7431
7432 WRITELOG_ERROR('ILLEGAL_SESSION_TYPE', '3L', U_IDX);
7433
7434 RAISE NO_PRIVILEGES;
7435 ELSIF NOT INIT_SELF(CUR_USER,STR) THEN
7436 MESSAGE.CLEAR;
7437 MESSAGE.ERROR_REPEAT(CHECK_USER(CUR_USER));
7438 END IF;
7439 LAST_USER := CUR_USER;
7440 ELSIF CAN_OPEN THEN
7441 IF IS_OPEN THEN
7442 LAST_USER.ID := U_IDX;
7443 LAST_USER.SID:= NULL;
7444 IF NOT INITUSER(LAST_USER) THEN
7445 MESSAGE.CLEAR;
7446 MESSAGE.ERROR_REPEAT(CHECK_USER(LAST_USER));
7447 END IF;
7448 LOG_INFO(CUR_USER,'OPENING '||U_IDX,'-'||RTL_SRV,UID$,TRUE);
7449 ELSE
7450
7451 WRITELOG_ERROR('SESSION_NOT_OPENED', U_IDX);
7452
7453 RAISE LOGIN_DENIED;
7454 END IF;
7455 ELSE
7456
7457 WRITELOG_ERROR('CANNOT_OPEN_SESSION', U_IDX);
7458
7459 RAISE NO_PRIVILEGES;
7460 END IF;
7461
7462 IF P_NAME='JOB' THEN
7463 CHECK_OPTION_JGS(P_INFO);
7464 END IF;
7465 IF NOT SESSION_REGISTERED(U_IDX, SES_CONTEXT_WRITE = CW_ENABLE) THEN
7466 LAST_USER.LOGONTIME := SYSDATE;
7467 BEGIN
7468 REG_SESSION(LAST_USER, CASE WHEN P_NAME LIKE 'CHECK$%' THEN SUBSTR(P_NAME, 7) ELSE '' END);
7469 EXCEPTION WHEN NOT_LOGGED_ON OR LOGIN_DENIED THEN
7470 ACTIVATE_REFRESH_SERVICE;
7471 RAISE;
7472 END;
7473 END IF;
7474
7475 IF SELF THEN
7476 IS_OPEN := TRUE;
7477 DBMS_SESSION.SET_CONTEXT(RTL_CONTEXT,'STATUS',CASE WHEN IS_DBRW THEN '1' ELSE '5' END);
7478
7479
7480 IF IS_DBRW THEN
7481 CHECK_HELD;
7482 END IF;
7483 ELSE
7484 IF MAX_SERVERS > 0 THEN
7485 IDX := TRUNC(RANDOM(MAX_SERVERS+1));
7486 ELSE
7487 IDX := 0;
7488 END IF;
7489 DBMS_PIPE.RESET_BUFFER;
7490 DBMS_PIPE.PACK_MESSAGE(OPEN_ANS);
7491 DBMS_PIPE.PACK_MESSAGE(IDX);
7492 EVENT_SERVICE.SEND(RTL_UTILS.PREFIX||U_IDX, IS_DBRW);
7493 END IF;
7494 RETURN U_IDX;
7495 END;
7496 |
|
|
 |
De Mian Профи
Вступление в Клуб: 26.09.2008
|
Вт Ноя 24, 2020 15:01  Re: rtl.open |
|
Полезность: Нет оценки
|
Цитата: |
The code does not seem to be valid wrapped PL/SQL code. The binary (Base64 encoded) part is invalid or incomplete. |
Ну если есть необходимость старые заврапленные пакеты разврапить. то ищите rewrap.exe и unwrap10.exe. Но они не совместимы с 64-х разрядной ОС. |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Ср Ноя 25, 2020 19:51  Re: rtl.open |
|
Полезность: Нет оценки
|
Цитата: | Ну если есть необходимость старые заврапленные пакеты разврапить. то ищите rewrap.exe и unwrap10.exe. Но они не совместимы с 64-х разрядной ОС. |
Да мне-то нужды в том нет Это вон джамилю пригодится  |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|