Как работать со статусами журналов DB2 for I - PullRequest
0 голосов
/ 04 апреля 2019

Для тестирования сценария qshell, который автоматически очищает журналы старше 2 дней в DB2 for i, мне нужно иметь несколько журналов в статусах, которые не являются Прикрепленными или Онлайн (сценарий пропускает журналы с такими статусами).Кто-нибудь может мне помочь и посоветовать, как изменить / обновить статусы журнала с помощью навигатора System I или операторов SQL.

В настоящее время у меня есть элементы в статусе «Прикреплено» в части «Получатели журнала» и когда я меняю получателя дляЖурнал, новый получатель журнала создается в состоянии «Присоединен», а предыдущий переводится в состояние «Онлайн».Я не нашел способов перевести их в другие статусы.Я также попытался получить некоторую информацию из DISPLAY_JOURNAL, используя операторы SQL, но безуспешно.

select * from TABLE (QSYS2.DISPLAY_JOURNAL(
    'QSYS2',    -- put the JOURNAL_LIBRARY parameter value instead of 'JOURNAL_LIBRARY' (VARCHAR(10))
    'QSQJRN',   -- put the JOURNAL_NAME parameter value instead of 'JOURNAL_NAME' (VARCHAR(10))
    '', -- put the STARTING_RECEIVER_LIBRARY parameter value instead of 'STARTING_RECEIVER_LIBRARY' (VARCHAR(10))
    '', -- put the STARTING_RECEIVER_NAME parameter value instead of 'STARTING_RECEIVER_NAME' (VARCHAR(10))
    '', -- put the STARTING_TIMESTAMP parameter value instead of 'STARTING_TIMESTAMP' (TIMESTAMP)
    '', -- put the STARTING_SEQUENCE parameter value instead of 'STARTING_SEQUENCE' (DECIMAL(21,0))
    '', -- put the JOURNAL_CODES parameter value instead of 'JOURNAL_CODES' (VARCHAR(48))
    '', -- put the JOURNAL_ENTRY_TYPES parameter value instead of 'JOURNAL_ENTRY_TYPES' (VARCHAR(1200))
    '', -- put the OBJECT_LIBRARY parameter value instead of 'OBJECT_LIBRARY' (VARCHAR(10))
    '', -- put the OBJECT_NAME parameter value instead of 'OBJECT_NAME' (VARCHAR(10))
    '', -- put the OBJECT_OBJTYPE parameter value instead of 'OBJECT_OBJTYPE' (VARCHAR(10))
    '', -- put the OBJECT_MEMBER parameter value instead of 'OBJECT_MEMBER' (VARCHAR(10))
    '', -- put the USER parameter value instead of 'USER' (VARCHAR(10))
    '', -- put the JOB parameter value instead of 'JOB' (VARCHAR(26))
    ''  -- put the PROGRAM parameter value instead of 'PROGRAM' (VARCHAR(10))
    )) AS X

SQL Error [42704]: [SQL0204] DISPLAY_JOURNAL in QSYS2 type *N not found.
  [SQL0204] DISPLAY_JOURNAL in QSYS2 type *N not found.

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Статус получателя журнала нельзя изменить, например, поле статуса в таблице базы данных.Это статус самого объекта.Вы можете удалить получателей, как только они были изменены, и больше не являются подключенными получателями.Однако, если вы попытаетесь удалить получателя, который не был сохранен, он сообщит вам об этом.Вы можете сохранить получателя журнала, даже если он подключен, но лучше всего, если вы не хотите, чтобы система управляла вашими получателями для вас, - это сохранить получателей после их изменения, тогда вы можете свободно удалять получателей.в любое время.

Так что, возможно, вам следует сохранить получателей с онлайн-статусом, затем вы можете разрешить их сценарию удалять их.

0 голосов
/ 05 апреля 2019

DISPLAY_JOURNAL доступен только с версии 7.2

однако, у вас недостаточно параметров для контроля удаления журнала? Я позволил IBM, я управляю ими Методы уменьшения хранилища, которые используют получатели журнала

...