如何处理 DB2 for I 期刊状态

How to deal with DB2 for I journals statuses

为了测试自动清理 DB2 中超过 2 天的日志的 qshell 脚本,我需要一些状态不是附加或联机的日志(脚本会跳过具有此类状态的日志)。谁能帮助我并建议如何使用 System I 导航器或 SQL 语句change/update 记录状态。

目前,我在 "Journal Receivers" 部分中有处于 "Attached" 状态的项目,当我为 Journal 更改接收者时,会在 Attached 状态下创建一个新的 journal receiver 并将之前的接收者移至在线状态。我还没有找到任何方法将它们移动到其他状态。 我还尝试使用 SQL 语句从 DISPLAY_JOURNAL 中获取一些信息,但是没有成功。

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.

DISPLAY_JOURNAL 仅在版本 7.2

之后可用

但是,您没有足够的选项来控制日志删除吗? 我让 IBM 我管理它们 Methods to reduce the storage that journal receivers use

期刊收件人状态不像数据库中的状态字段那样可以更改table。它是对象本身的状态。您可以在更改接收器后将其删除,并且不再是附加的接收器。但是,如果您尝试删除尚未保存的接收器,它会给您一条消息。您可以保存日志接收器,即使它是附加的,但最好的是,如果您不希望系统为您管理接收器,则最好在更改接收器后保存接收器,然后您可以自由删除接收器随时。

所以也许你应该保存在线状态的接收者,然后你可以让你的脚本删除它们。