Налагодження коду в Oracle, Інші СУБД, Бази даних, статті

У цій статті пропонується простий і ефективний спосіб налагодження серверної і клієнтської частин додатків Oracle. Спосіб не претендує на повноту і не покликаний замінити собою відомі способи налагодження, однак може бути корисний при налагодженні бізнес логіки додатків.


Цей спосіб налагодження заснований на встановленні простих точок налагодження без зупинки виконання додатків. В кожному випадку в необхідному місці коду програми викликається спеціальна процедура, як параметр якій передається рядок з даними налагодження. Рядок формується розробником виходячи з потреб налагодження і конкретної ситуації.


Для використання цього способу налагодження пропонується створити просту таблицю бази даних і процедуру налагодження. Ці об’єкти можна оформити у вигляді компоненти ядра системи. Таблиця має наступну структуру:


create table CORE_DEBUG


(ID     number(16),


CREATED    date            default sysdate not null,


CREATED_BY varchar2(30)    default user    not null,


DATA       varchar2(4000)


);


comment on table  CORE_DEBUG            is “Debug info”;


comment on column CORE_DEBUG.ID         is “ID”;


comment on column CORE_DEBUG.CREATED    is “Date/time”;


comment on column CORE_DEBUG.CREATED_BY is “User name”;


comment on column CORE_DEBUG.DATA       is “Debug data”;


alter table CORE_DEBUG


add constraint PK_CORE_DEBUG


primary key (ID)


using index pctfree 0;


create sequence CORE_DEBUG_SEQ;


Для запису налагоджувальної інформації в таблицю створимо процедуру


create or replace


procedure DBG(psDATA in varchar2)


is


pragma autonomous_transaction;


begin


insert


into CORE_DEBUG (ID, DATA)


values (CORE_DEBUG_SEQ.nextval,psDATA);


commit;


end;


/


Для очищення таблиці з налагоджування також створимо процедуру:


create or replace


procedure DBG_DEL


is


pragma autonomous_transaction;


begin


delete CORE_DEBUG


where CREATED_BY=user;


commit;


end;


/


Після створення цих об’єктів можна займатися налагодженням коду. Наприклад, у нас є деяка серверна процедура, в якій необхідно дізнатися в певний момент значення змінних X і Y. У необхідному місці процедури записуємо таку строчку коду:


DBG(“X: “//X//”, Y: “//Y);


Далі запускаємо налагоджувати процедуру, потім дивимося результати, виконавши простий запит:


select * from CORE_DEBUG where CREATED_BY=user order by ID;


В результаті бачимо значення цікавлять нас змінних.


При необхідності дізнатися значення змінних в клієнтських формах або факт виконання тієї чи іншої ділянки коду, також формуємо необхідні виклики з клієнтських форм процедури CORE_DEBUG.


Отладочная інформація записується з ім’ям користувача, який формує виклик CORE_DEBUG. Отже, використовувати таблицю можуть одночасно кілька розробників. Для видалення всієї отладочной інформації поточного користувача використовуємо виклик процедури DBG_DEL.


Процедури DBG і DBG_DEL працюють в автономних транзакціях, запис або видалення налагоджувальної інформації відбудеться гарантовано, і не буде впливати на результати поточної транзакції, в якій виконується відладжуваної код.


Для перегляду і видалення результатів налагодження можна зробити окрему форму, якщо так буде зручніше.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*