Налагодження коду в 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 працюють в автономних транзакціях, запис або видалення налагоджувальної інформації відбудеться гарантовано, і не буде впливати на результати поточної транзакції, в якій виконується відладжуваної код.
Для перегляду і видалення результатів налагодження можна зробити окрему форму, якщо так буде зручніше.
Схожі статті:
- Видалення записів у аплеті Add or Remove Programs (0)
- Політики обмеженого використання програм (0)
- Роль сервера додатків (0)
- «Розумний» SQL (0)
- Причини переходу від BDE до ADO (0)
- Серверні операційні системи провідних виробників (0)
- Короткий огляд (0)
Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.
Коментарів поки що немає.
Ваш отзыв
Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>