powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / мониторинг sql
25 сообщений из 25, страница 1 из 1
мониторинг sql
    #35466953
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть программа которая работает с db2.

Она добавляет записи в таблицу, в которой поле id уникальное и не NULL
Добавляю в эту же таблицу запись sql запросом сам.
Т.к. id надо передавать, беру предыдущее + 1, добавляется нормально.
Но после при попытки добавить заказ (записи) через программу, ругается на то что id не уникален (уже есть).
Вопрос:
Как узнать где храниться следующий уникальный id.
Как отследить запросы к бд, чтобы понять ответ на предыдущий вопрос.
...
Рейтинг: 0 / 0
мониторинг sql
    #35468174
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скорее всего какой-то sequence использует.

1.
Запустите свою программу, найдите ее application_id в выводе команды
db2 list applications
на сервере.
2.
Создайте event monitor для statements для этого соединения
Код: plaintext
1.
2.
3.
4.
5.
CREATE EVENT MONITOR TEST FOR STATEMENTS
WHERE APPL_ID='...'
WRITE TO TABLE 
  CONNHEADER (TABLE TEST_CONN, IN USERSPACE1)
, STMT (TABLE TEST_STMT, IN USERSPACE1);
SET EVENT MONITOR TEST STATE  1 ;
3.
Заставьте программу вставить строку в таблицу.
4.
Остановите монитор и посмотрите, что он поймал:
Код: plaintext
1.
SET EVENT MONITOR TEST STATE  0 ;
SELECT STMT_TEXT FROM ORDER BY SQL_REQ_ID;
...
Рейтинг: 0 / 0
мониторинг sql
    #35468460
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно посмотреть ddl таблицы и код, который осуществляет вставку?
...
Рейтинг: 0 / 0
мониторинг sql
    #35468642
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rimanА можно посмотреть ddl таблицы и код, который осуществляет вставку?

-- Этот файл CLP создан при помощи DB2LOOK Версии 9.1
-- Timestamp: 8/4/2008 1:04:55 PM
-- Database Name: CMS
-- Версия менеджера баз данных: DB2/NT Version 9.1.2
-- Кодовая страница базы данных: 1251
-- Последовательность слияния базы данных -: UNIQUE


CONNECT TO CMS;

-- Табличное пространство Mimic

ALTER TABLESPACE SYSCATSPACE
PREFETCHSIZE 16
OVERHEAD 24.100000
TRANSFERRATE 0.900000;


ALTER TABLESPACE TEMPSPACE1
PREFETCHSIZE 16
OVERHEAD 24.100000
TRANSFERRATE 0.900000;


ALTER TABLESPACE USERSPACE1
PREFETCHSIZE 16
OVERHEAD 24.100000
TRANSFERRATE 0.900000;


------------------------------------------------
-- Операторы DDL для таблицы "SHL "."SMORDER"
------------------------------------------------


CREATE TABLE "SHL "."SMORDER" (
"ID" INTEGER NOT NULL ,
"CUSTID" INTEGER ,
"CUSTCLASSID" SMALLINT WITH DEFAULT ,
"CREATEDATE" DATE NOT NULL ,
"CREATORID" SMALLINT NOT NULL ,
"REGDATE" DATE ,
"REGUSERID" SMALLINT ,
"DROPDATE" DATE ,
"DROPID" SMALLINT ,
"CLOSEDATE" DATE ,
"CLOSEID" SMALLINT ,
"DISCOUNT" DOUBLE WITH DEFAULT ,
"INUSE" SMALLINT ,
"CURS" DOUBLE WITH DEFAULT ,
"PRIM" CHAR(100) WITH DEFAULT '' ,
"CNID" INTEGER NOT NULL ,
"NDSP" DOUBLE WITH DEFAULT ,
"TYPE" SMALLINT WITH DEFAULT 0 ,
"DOCID" INTEGER ,
"PAYEDCOST" DOUBLE WITH DEFAULT )
IN "USERSPACE1" ;


-- Операторы DDL для первичных ключей таблицы "SHL "."SMORDER"

ALTER TABLE "SHL "."SMORDER"
ADD PRIMARY KEY
("ID");









-- Операторы DDL для внешних ключей таблицы "SHL "."SMORDER"

ALTER TABLE "SHL "."SMORDER"
ADD CONSTRAINT "SQL060307174455511" FOREIGN KEY
("CUSTID")
REFERENCES "SHL "."CUSTOMER"
("ID")
ON DELETE NO ACTION
ON UPDATE NO ACTION
ENFORCED
ENABLE QUERY OPTIMIZATION;

ALTER TABLE "SHL "."SMORDER"
ADD CONSTRAINT "SQL060307174455512" FOREIGN KEY
("CREATORID")
REFERENCES "SHL "."PERSONALL"
("ID")
ON DELETE NO ACTION
ON UPDATE NO ACTION
ENFORCED
ENABLE QUERY OPTIMIZATION;

ALTER TABLE "SHL "."SMORDER"
ADD CONSTRAINT "SQL060307174455530" FOREIGN KEY
("CNID")
REFERENCES "SHL "."CNARRAY"
("ID")
ON DELETE NO ACTION
ON UPDATE NO ACTION
ENFORCED
ENABLE QUERY OPTIMIZATION;

-- Операторы DDL для проверочных ограничений таблицы "SHL "."SMORDER"

ALTER TABLE "SHL "."SMORDER"
ADD CONSTRAINT "SQL060307180728010" CHECK
(TYPE IN (0,1,2))
ENFORCED
ENABLE QUERY OPTIMIZATION;

--------------------------------------------------------
-- Параметры конфигурации базы данных и менеджера баз данных
--------------------------------------------------------

UPDATE DBM CFG USING cpuspeed 1.889377e-007;
UPDATE DBM CFG USING intra_parallel NO;
UPDATE DBM CFG USING federated NO;
UPDATE DBM CFG USING fed_noauth NO;

UPDATE DB CFG FOR CMS USING locklist 1792;
UPDATE DB CFG FOR CMS USING dft_degree 1;
UPDATE DB CFG FOR CMS USING maxlocks 98;
UPDATE DB CFG FOR CMS USING avg_appls 1;
UPDATE DB CFG FOR CMS USING stmtheap 2048;
UPDATE DB CFG FOR CMS USING dft_queryopt 5;

---------------------------------
-- Значения переменных среды
---------------------------------


COMMIT WORK;

CONNECT RESET;

TERMINATE;

-- Генерировать статистику для всех создателей
-- Утилита db2look будет принимать во внимание только указанные таблицы
-- Создается DDL для таблиц
-- Автоматическое связывание пакета ...
-- Успешное связывание
-- Автоматическое связывание пакета ...
-- Успешное связывание
;

а вот как раз код, который осуществляет вставку, я и хотел бы сам увидеть
...
Рейтинг: 0 / 0
мониторинг sql
    #35468684
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз кода нет, тогда совет Марка - единственный вариант.
...
Рейтинг: 0 / 0
мониторинг sql
    #35468734
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SET EVENT MONITOR TEST STATE 0;
SELECT STMT_TEXT FROM ORDER BY SQL_REQ_ID;

Во второй строке между FROM и ORDER скорей всего вы что-то забыли...
...
Рейтинг: 0 / 0
мониторинг sql
    #35468753
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L0gicaSET EVENT MONITOR TEST STATE 0;
SELECT STMT_TEXT FROM ORDER BY SQL_REQ_ID;

Во второй строке между FROM и ORDER скорей всего вы что-то забыли...Виноват:
Код: plaintext
SELECT STMT_TEXT FROM test_stmt ORDER BY SQL_REQ_ID;
...
Рейтинг: 0 / 0
мониторинг sql
    #35468786
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT STMT_TEXT FROM test_stmt ORDER BY SQL_REQ_ID;

Успешно возвращено 0 строк. (((
...
Рейтинг: 0 / 0
мониторинг sql
    #35468812
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проделал в ручную эти действия результат следующий, но что мне это даст?
...
Рейтинг: 0 / 0
мониторинг sql
    #35468892
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L0gicaпроделал в ручную эти действия результат следующий, но что мне это даст?Вам надо найти, как приложение делает insert в таблицу SMORDER.
Если вы сделали всё в той последовательности, как я написал, то приложение должно было сгенерировать insert в SMORDER, а текст этого insert должен был попасть в таблицу test_stmt.
Сделайте
Код: plaintext
1.
2.
select STMT_TEXT 
from test_stmt 
where UPPER(VARCHAR(stmt_text,  4000 )) like '%SELECT%SMORDER%';
Есть какой-то результат?
...
Рейтинг: 0 / 0
мониторинг sql
    #35468994
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein L0gicaпроделал в ручную эти действия результат следующий, но что мне это даст?Вам надо найти, как приложение делает insert в таблицу SMORDER.
Если вы сделали всё в той последовательности, как я написал, то приложение должно было сгенерировать insert в SMORDER, а текст этого insert должен был попасть в таблицу test_stmt.
Сделайте
Код: plaintext
1.
2.
select STMT_TEXT 
from test_stmt 
where UPPER(VARCHAR(stmt_text,  4000 )) like '%SELECT%SMORDER%';
Есть какой-то результат?Упс!
Опять ошибся:
Код: plaintext
1.
2.
select STMT_TEXT 
from test_stmt 
where UPPER(VARCHAR(stmt_text,  4000 )) like '%INSERT%SMORDER%';
...
Рейтинг: 0 / 0
мониторинг sql
    #35469014
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нашёл, но вот как понять что в запросе вместо вопросов?
...
Рейтинг: 0 / 0
мониторинг sql
    #35469079
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что делает процедура smokeyn?
...
Рейтинг: 0 / 0
мониторинг sql
    #35469137
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rimanА что делает процедура smokeyn?

Не нашёл где посмотреть это?
...
Рейтинг: 0 / 0
мониторинг sql
    #35469171
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L0gica rimanА что делает процедура smokeyn?

Не нашёл где посмотреть это?

Я не знаю как это делается для LUW, но для AS/400 - через меню "Generate SQL".
...
Рейтинг: 0 / 0
мониторинг sql
    #35469178
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L0gica rimanА что делает процедура smokeyn?

Не нашёл где посмотреть это?

в списке процедур её нет
...
Рейтинг: 0 / 0
мониторинг sql
    #35469190
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L0gica rimanА что делает процедура smokeyn?

Не нашёл где посмотреть это?Если это SQL процедура, то
Код: plaintext
SELECT TEXT FROM SYSCAT.ROUTINES WHERE ROUTINENAME='SMOKEYN';
...
Рейтинг: 0 / 0
мониторинг sql
    #35469198
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
результат 0, значит нет...
...
Рейтинг: 0 / 0
мониторинг sql
    #35469205
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть ли возможность просто отследить наличие изменения во всех таблицах, после выполнения операции с db2 сторонней программы
...
Рейтинг: 0 / 0
мониторинг sql
    #35469206
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L0gica
в списке процедур её нет

А что же тогда вызывается?
Это просто мое предположение, которое бы я на вашем месте проверил. Очень уж аккроним smokeyn похожа на "order-key-next".
...
Рейтинг: 0 / 0
мониторинг sql
    #35469210
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L0gicaрезультат 0, значит нет...
У меня плохо отображается ваша картинка. Там действительно call smokeyn?
...
Рейтинг: 0 / 0
мониторинг sql
    #35469217
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
riman L0gicaрезультат 0, значит нет...
У меня плохо отображается ваша картинка. Там действительно call smokeyn?

да, именно так
...
Рейтинг: 0 / 0
мониторинг sql
    #35469225
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нашёл smokeyn в Объекты программ -> пакеты
...
Рейтинг: 0 / 0
мониторинг sql
    #35469230
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
мониторинг sql
    #35469237
L0gica
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
далее уже всё понятно вроде бы))
огромное спасибо!
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / мониторинг sql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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