首页 > 解决方案 > 如何处理 DB2 for I 期刊状态

问题描述

要测试一个 qshell 脚本,它会自动清理 DB2 for i 中超过 2 天的日志,我需要有一些状态不是 Attached 或 Online 的日志(脚本会跳过具有此类状态的日志)。任何人都可以帮助我并建议如何使用 System I 导航器或 SQL 语句更改/更新日志状态。

目前,我在“Journal Receivers”部分中有处于“Attached”状态的项目,当我更改 Journal 的接收者时,会在 Attached 状态下创建一个新的期刊接收者,而前一个会移动到 Online 状态。我还没有找到任何方法将它们移动到其他状态。我还尝试使用 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.

标签: db2db2-400

解决方案


日记接收者状态不像数据库表中的状态字段那样可以更改。它是对象本身的状态。一旦接收者被更改,您就可以删除它们,并且不再是附加的接收者。但是,如果您尝试删除尚未保存的接收器,它会向您发送一条消息。您可以保存日志接收器,即使它已附加,但最好的方法是,如果您不希望系统为您管理接收器,则在更改接收器后保存接收器,然后您可以自由删除接收器随时。

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


推荐阅读