CftClub.ru
Клуб специалистов ЦФТ-Банк

Каким скриптом «почистить» или вычитать все pipe ы

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих
Предыдущая тема :: Следующая тема  
Автор Сообщение
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеПт Сен 16, 2016 14:31   Каким скриптом «почистить» или вычитать все pipe ы Ответить с цитатой
Полезность: Нет оценки
Каким скриптом "почистить" или вычитать все pipe ы?
...Можно как то по неименному пайпу определить какая операция(или запись в справочнике включения отладки) данные в него кладет?
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеПн Сен 19, 2016 05:37    Ответить с цитатой
Полезность: 2
dbms_pipe.reset_buffer;
?
или как-н так...
var v varchar2(32767);
loop
v := RTL.get_debug_text(rtl.DEBUG2PIPE);
if trim(v) is null then
exit;
end if;
end loop;
kai
Профи


Вступление в Клуб: 16.08.2012
СообщениеПт Окт 07, 2016 05:28   Re: Каким скриптом «почистить» или вычитать все pi Ответить с цитатой
Полезность: 3
Матвеев Евгений пишет:
Каким скриптом "почистить" или вычитать все pipe ы?
...Можно как то по неименному пайпу определить какая операция(или запись в справочнике включения отладки) данные в него кладет?


Если сессия зарегистрирована в системе, то имя пайпы (например, 'DEBUG$017A1B850001') будет содержать подстроку "DEBUG$" а далее hex-число - вот по нему и можно найти инфу через запрос:

Код:
select s.username
     ,s.osuser
     ,s.machine
     ,s.sid
     ,s.SERIAL#
     ,s.client_info
     ,s.status
     ,s.module
     ,s.program
     ,s.action
     ,TO_CHAR(s.logon_time, 'DD/MM HH24:MI') LT
     ,s.AudSid
     ,p.spid
  from v$session s, v$process p
 WHERE p.addr(+) = s.paddr
   AND exists (select null
        from IBS.users u
       where u.type = 'U'
         and u.username = s.username
           )
   AND s.client_info='017A1B850001'
;


p.s. Запрос этот подсматриваем в "Администраторе словаря данных" в Меню | Словарь | Сервер | Сессии (где предварительно в "Меню | Управление | Настройка логирования" включаем отладку )

А чистить можно через DBMS_PIPE.REMOVE_PIPE:

Код:

    j integer;
    k integer := 0;
begin
    for    (    select i( i.name : name )
                    in    v$db_pipes%rowtype
                where    i.name  not like 'LOCK%'
                    and    i.name not like '%CACHE%'
            )
    loop
        j := 0;
        while j = 0 loop
            j := DBMS_PIPE.RECEIVE_MESSAGE(i.name, 0);
        end loop;
        DBMS_PIPE.REMOVE_PIPE(i.name);
        k := k + 1;
    end loop;
    stdio.put_line_buf('обработано '||k||' пайп');
end;


Последний раз редактировалось: kai (Вт Окт 11, 2016 05:16), всего редактировалось 1 раз
budinva
Участник - экстремал


Вступление в Клуб: 15.01.2008
СообщениеПт Окт 07, 2016 11:56    Ответить с цитатой
Полезность: Нет оценки
Задания по расписанию SYSTEM_JOBS.PIPES_REFRESH
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеПт Окт 07, 2016 13:49    Ответить с цитатой
Полезность: Нет оценки
USERNAME OSUSER MACHINE SID SERIAL# CLIENT_INFO STATUS MODULE PROGRAM ACTION LT AUDSID SPID
1 IBS XXXXX XXXX\XXXXXXXX 928 5882 03A016FA0001 ACTIVE Автоматизированное рабочее место NovoXXX_XX.exe 11:49:Nav.Execute 2407982339 07/10 10:25 137675359 10671

Приходят данные подобного вида, я так понял, информацию по операциям так не получить... Это так?
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеПт Окт 07, 2016 15:21    Ответить с цитатой
Полезность: 1
Nav.Execute 2407982339

а это не ID ли из methods ?
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеПт Окт 07, 2016 15:39    Ответить с цитатой
Полезность: Нет оценки
vtar пишет:
Nav.Execute 2407982339

а это не ID ли из methods ?


Бинго

Код:

select * from methods a where a.id = '2407982339'



CLASS_ID BODY_SELECT BODY_WHERE ID SHORT_NAME NAME USER_DRIVEN ACCESSIBILITY RESULT_CLASS_ID BODY FLAGS TEXT_TYPE CONDITION DEF PROPAGATE PACKAGE_NAME CREATED USER_CREATED MODIFIED USER_MODIFIED OBJECTS_RIGHTS STATUS HIERARCHY_ATTR REPORT_CLASS_ID REPORT FORMULA HINTS KERNEL PROPERTIES REPORT_OBJECT REPORT_ON_PROC REPORT_TYPE ACCESS_GROUP DEF_DESTRUCTOR SCRIPT_ID TAG FORM_ID BELONG_GROUP CHECK_METHOD EXT_ID SRC_ID
1 CERT_INVALID 2407982339 IMPORT_FMS Èìïîðò íåäåéñòâèòåëüíûõ ïàñïîðòîâ, ïîëó÷åííûõ èç ÔÌÑ 1 0 S 1 Z$CERT_INVALID_IMPORT_FMS 22/07/2015 9:26:57 mbondar 31/03/2016 14:47:35 xxxxxxx VALID CCEBE22B9034DB7B67DA9E98ED27CBF7.EA905245924511379B97BA12657D5D3D 0 |ARCHPACK 0|BUF |CMD N|COMMIT N|COMPILER 01111011101110FF0000|CREATE N|CRITICAL N|DEFHOTKEY N|EMPTY_ID N|FOCUS_VALIDATE 0|HOTKEY 473|IPIPE |LOAD_VALIDATE 0|OPIPE |PARAMS N|PRIORITY 100|REFRESH N|RTLBASE 1949001|RUN_MON Y|SHARE N|STREAM N| COPIED
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru