powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / iSeries, V5R3. Вообще больше не создаются триггеры.
25 сообщений из 26, страница 1 из 2
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33732374
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начиная с некоторого времени перестали создаваться любые триггеры на любые таблицы.
Вот job log:
--------------------------------------------------------------------
Message ID . . . . . . : CPD32E7 Severity . . . . . . . : 20
Message type . . . . . : Diagnostic
Date sent . . . . . . : 15/05/06 Time sent . . . . . . : 16:17:31

Message . . . . : Операция триггера не выполнена.
Причина . . . . : Операция триггера не выполнена для файла PD в библиотеке
GCP_MRDWD, триггер PDAD в библиотеке GCP_MRDWD, не выполнена из-за ошибок.
Операция 1. Код причины - 6.

Список операций:
1 - Добавление триггера
..
Причины:
..
06 - Создать перекрестные ссылки не удалось, код возврата X'10A1',
диагностический код 0.
..
Исправление.
..
06 - Создайте отчет о неполадке с помощью команды Анализировать
неполадку. (ANZPRB).
..
--------------------------------------------------------------------

Кто-нибудь видел подобное?
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33732704
lazy-beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте сделать rclstg, похоже что где-то линки побились

зы. а Вам удобно работать с secondary language russian?

Serge Reva
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33734591
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за совет, я скажу, чтоб попробовали.
Я сам не админ iSeries.

А как изменить secondary language?
Только чтоб не менять ccsid у job'а c 1025, а то меня ломает каждый раз при создании таблицы у строкового поля ее явно указывать.

Попутно еще один наболевший вопрос:
как сделать так, чтоб русские комментарии к объектам правильно сохранялись?
А то напишешь комментарий к таблице в навигаторе, оно сохранится, но в кривом виде.
Достать его в нормальной форме можно только извращенным селектом типа
Код: plaintext
1.
2.
select cast(cast(table_text as varchar( 50 ) for bit data) as varchar( 50 ) ccsid  1025 )
from qsys2.systables
where table_schema='...' and table_name='...';
который, естественно, ни одна программа не шлет (навигатор тоже), в результате чего комментарии неправильно отображаются...
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33735795
lazy-beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
secondary language должен админ менять, но ето - дело привычки, да и с ccsid работы никак не связано
по-поводу каментов - если взять обычный winsql и сделать LABEL ON COLUMN
что будет? теоретически если у ВАс ccsid джобы 1025 и файла тоже 1025 - все должно работать. какой ccsid у работ навигатора?

Serge Reva
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33736033
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я делал одно и то же из разных сред:
iSeries Navigator, run sql scripts его же.
db2cmd своей db2 udb ese v8.2.1.
кучи разных средств, которые работаот через odbc (пробовал и через ese-шный драйвер, и через навигаторский) или jdbc.
Даже из окна терминала в утилите strsql.
Везде работа с русскими буквами корректна в sql-выражениях.
И везде (даже в окне терминала) команды
Код: plaintext
LABEL ON TABLE schema.name IS 'ТЕСТ';
приводит к одному и тому же
Код: plaintext
select table_text from qsys2.systables ...
возвращает непереводимую игру букв (хотя, если из окна терминала выполнять селект, то получится слово "ТЕРТ")
Код: plaintext
1.
select cast(cast(table_text as varchar( 50 ) for bit data) as varchar( 50 ) ccsid  1025 )
from qsys2.systables ...
везде выдает то что надо.

У меня есть подозрение, что т.к. комментарии заносятся в системные таблицы (а там ccsid 37), то при фактически селекте оттуда (ведь всякие средства, достающие метаданные из базы, должны их, эти селекты делать) данные возвращаются криво.

Ведь та же ерунда происходит и с обычными таблицами, созданными с явно указанным ccsid 37. Если попробовать
Код: plaintext
1.
create table test (c varchar( 20 ) ccsid  37 );
insert into test values('ТЕСТ');
То обычный
Код: plaintext
select c from test 
вернет кривые символы, а вышенаписанный извращенный - то что надо...
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33736434
lazy-beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все верно описано и все выводы о причинах правильные, эти глюки начали происходить с драйверами от client access _старше_ 4.5
дело в том, что это чудо в версии 5.1 и выше при несовпадающих кодировках в файл-джоба-клиент пытается делать конвертацию, используюя АСочные tbl-файлы, которые в 5.1 уже в unicode
как решение:
1. поставить CA 4.5 или
2. почитать client access programming guide (если нужно, найду номер публикации) и написать свою dll, которую потом подсунуть CAшному ODBC драйверу в качестве translation dll
теоретически можно поделиться той transaction dll что мы сделали(на delphi), но наши прикладники все каменты на английском делают, так что такие проблем нет

зы. самый правильный путь делать таблицы - через команду CRTPF -)))

Serge Reva
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33736504
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но ведь через odbc драйвер от udb db2 ese v8.2 for LUW (мы ее, эту ese, в качестве гейта используем, так уж исторически сложилось) те же кривые буквы гонятся, а он (этот драйвер) к CA никакого отношения не имеет.

Да уж, лучше мы каменты будем на английском писать, не охота возиться...
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33736552
lazy-beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о, кстати, а я не пробовал не-CAшный драйвер... его можно десь взять отдельным паком?
у нас тут ваще цирк до недавнего времени был - все файлы были в 37ой кодировке -)) что не мешало туда пхать русский текст
у нас в качестве гейта - sybase

Serge Reva
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33736659
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, вроде отдельным - нельзя.
Во всяком случае, я не нашел...
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33736674
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну да, я невнимательно читал ваш пост.
Дело в том, что гейтом может служить либо
db2 udb ese, либо db2 Connect, т.е. много чего еще, кроме, собственно, odbc драйвера...
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33737229
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lazy-beaverсамый правильный путь делать таблицы - через команду CRTPF -)))
я понимаю, что смайлик стоит, но всё же хочу уточнить, что CRTPF и CREATE TABLE создают таблицы с разным размером блока (2K vs 64K) - для больших таблиц это сказывается на количестве io
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33737824
lazy-beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov lazy-beaverсамый правильный путь делать таблицы - через команду CRTPF -)))
я понимаю, что смайлик стоит, но всё же хочу уточнить, что CRTPF и CREATE TABLE создают таблицы с разным размером блока (2K vs 64K) - для больших таблиц это сказывается на количестве io

не знал -(
а в каком буке об этом написано?

Serge Reva
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33746758
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в доке лень искать - мне об этом на курсах рассказали, но это прекрасно видно в свойствах таблиц в контрол центре (да и dspfd покажет).
Та же фишка и с индексами - create index создаёт структуру с 64К блоком. Если потом пересоздать logical views, то они подхватят индекс и не будут под себя ещё дисковое пространство занимать. Соответственно чтение будет происходить более крупными блоками - часто это работает быстрее.
Код: plaintext
1.
2.
--
Антон
Per rectum ad astrum
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33747578
lazy-beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidovв доке лень искать - мне об этом на курсах рассказали, но это прекрасно видно в свойствах таблиц в контрол центре (да и dspfd покажет).
Та же фишка и с индексами - create index создаёт структуру с 64К блоком. Если потом пересоздать logical views, то они подхватят индекс и не будут под себя ещё дисковое пространство занимать. Соответственно чтение будет происходить более крупными блоками - часто это работает быстрее.
Код: plaintext
1.
2.
3.
4.
5.
гм... век живи - век учись -))
а чего за курсы то? от IBM?

--
Антон
Per rectum ad astrum
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33747667
lazy-beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тут в размышлениях - размер блока для увеличения скорости чтения влияет только когда чтение асинхронное... када страницы предварительно в память загружаются...

Serge Reva
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33749823
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lazy-beaver
а чего за курсы то? от IBM?
Да, в Рочестер, штат Миннесота летал на неделю.
Курсы назывались
DB2 UDB for iSeries SQL and Query Performance Tuning and Monitoring Workshop

После этих курсов я понял, насколько IBM отстала от Оракла в этих вопросах.
Но не буду об этом - offtop.
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33750473
lazy-beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov lazy-beaver
а чего за курсы то? от IBM?
Да, в Рочестер, штат Миннесота летал на неделю.
Курсы назывались
DB2 UDB for iSeries SQL and Query Performance Tuning and Monitoring Workshop

После этих курсов я понял, насколько IBM отстала от Оракла в этих вопросах.
Но не буду об этом - offtop.

ага, я учил тока общий perfomance tuning, там больше уделялось внимание на прямой ввод-вывод
по-поводу "отстало" - они с 5.2 очень сильно движок сиквельный поменяли, так что думаю скоро все наладится -)) к примеру, в 4.5 прямой ввод-вывод уделывал sql _в разы_, сейчас видимых тормозов не видно

Serge Reva
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33750501
тлгдшлщм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DB2/400 - это не совсем DB2. Это OS/400 с DB2 образным интерфейсом. Так что говорить, что IBM отстала в вопросах оптимизации, как минимум не совсем корректно.

Давай посмотрим сначала cколько методово Oracle использует для переписывания запроса у Oracle? Какую статистику использует оптимизатор etc...
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33751056
lazy-beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тлгдшлщмDB2/400 - это не совсем DB2. Это OS/400 с DB2 образным интерфейсом. Так что говорить, что IBM отстала в вопросах оптимизации, как минимум не совсем корректно.

Давай посмотрим сначала cколько методово Oracle использует для переписывания запроса у Oracle? Какую статистику использует оптимизатор etc...

речь шла о том, что до недавного время прямой ввод-вывод в разы работал быстрее чем SQL. и ясно что нельзя сравнивпать oracle и as/400, кторая поддерживает все мыслимые интерфейсы доступа к данным, а не только SQL

Serge Reva
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33752762
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2lazy-beaver
Меня учили на версии 5R3
Вот тут немного про разницу между таблицами и физ. файлом (стр. 18). Там много маркетинговой чуши в разделе сравнения, но это не важно.
Я забыл упомянуть такую важную деталь, как разница в чтении/записи. Для SQL таблицы валидация вставляемых данных происходит непосредственно в момент инсерта, при выборке выдаётся всё, что есть и быстро. Для Physical Files всё наоборот - вставить можно любой мусор - проверка не делается, но при выборке происходит валидация данных (что приводит иногда к интересным последствиям).
Для SQL таблиц сделали конкурентный insert (для PF все желающие вставить выстраиваются в очередь), там же разрешается автоматически реюзать освободившееся после удалений место.

2тлгдшлщм
DB2/400 позиционируется как полноценная БД, это не SQL нашлёпка для DBF файлов. Да, она слабже смотрится по интеллектуальности, по сравнению с Ораклом (то, что я знаю). У DB2/400 есть два оптимизатора - CQE и SQE. Первый - аналог Rule-based optimizer from Oracle6. Второй - новый, современный, но пока ещё совсем зелёный. Если запрос может быть оптимизирован SQE (т.е. нет union, group by, functions и прочего из длинного пока списка) - повезло - план исполнения будет хорошим, он и статистику посмотрит, и bind peeking сделает и про EVT индексы он знает. А нет - извини, будем ползать по всем индексам, даже если это не выгодно. Мы три дня на курсах изучали их поведение. Как ты понимаешь, в одном посте этого не описать.
Код: plaintext
1.
2.
--
Антон
Per rectum ad astrum
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33753573
тлгдшлщм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не к этому. Я к тому что ты обощил выводы с DB2/400 на все остальные версии DB2
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33758766
lazy-beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Anton Demidov] 2lazy-beaver
Меня учили на версии 5R3
Вот тут немного про разницу между таблицами и физ. файлом (стр. 18). Там много маркетинговой чуши в разделе сравнения, но это не важно.
Я забыл упомянуть такую важную деталь, как разница в чтении/записи. Для SQL таблицы валидация вставляемых данных происходит непосредственно в момент инсерта, при выборке выдаётся всё, что есть и быстро. Для Physical Files всё наоборот - вставить можно любой мусор - проверка не делается, но при выборке происходит валидация данных (что приводит иногда к интересным последствиям).
Для SQL таблиц сделали конкурентный insert (для PF все желающие вставить выстраиваются в очередь), там же разрешается автоматически реюзать освободившееся после удалений место.


текс, спасибо... где про ето можно почитать? :)

Serge Reva
PS. Кстати, а триггеры-то начали создаваться после reclaim storage?
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33758841
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lazy-beaverPS. Кстати, а триггеры-то начали создаваться после reclaim storage?
А его никто там делать не стал.
Ведь это ж всех надо от базы отрубать. :)
У нашего заказчика, ИМХО, оригинальные админы.
Они, подумав, сохранили библиотеку, восстановили ее в новую, и все стали с новой работать.
А что они со старой сделали - не знаю, грохнули, наверное...
...
Рейтинг: 0 / 0
iSeries, V5R3. Вообще больше не создаются триггеры.
    #33759054
lazy-beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein lazy-beaverPS. Кстати, а триггеры-то начали создаваться после reclaim storage?
А его никто там делать не стал.
Ведь это ж всех надо от базы отрубать. :)
У нашего заказчика, ИМХО, оригинальные админы.
Они, подумав, сохранили библиотеку, восстановили ее в новую, и все стали с новой работать.
А что они со старой сделали - не знаю, грохнули, наверное...

тоже вариант конечно -)
но вообще reclaim storage рекомендуют делать не реже 2 раза в год, я на своем зверинце на production машинах так и поступаю

Serge Reva
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
iSeries, V5R3. Вообще больше не создаются триггеры.
    #37789995
db2adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

Поля TABLE_TEXT и LONG_COMMENT в системном каталоге имели тип CHAR и VARCHAR, причем c ccsid 37
Начиная с V7R1 это поправили - теперь там оба поля имеют тип VARGRAPHIC(50) CCSID 1200, т.е. это теперь юникодные строки.
Получается, что трюк с
cast(cast(table_text as varchar(50) for bit data) as varchar(50) ccsid 1025)
до v7r1 был единственным вариантом получить описательные поля с нормальной кириллицей...

Как вариант можно попробыть поправить вью QSYS2/SYSTABLES, но скорее всего это не получиться, тк эта вью часть OS
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / iSeries, V5R3. Вообще больше не создаются триггеры.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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