db2 - 如何处理 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.
解决方案
日记接收者状态不像数据库表中的状态字段那样可以更改。它是对象本身的状态。一旦接收者被更改,您就可以删除它们,并且不再是附加的接收者。但是,如果您尝试删除尚未保存的接收器,它会向您发送一条消息。您可以保存日志接收器,即使它已附加,但最好的方法是,如果您不希望系统为您管理接收器,则在更改接收器后保存接收器,然后您可以自由删除接收器随时。
所以也许你应该用在线状态保存接收器,然后你可以让你的脚本删除它们。
推荐阅读
- angular - 将 Angular 的依赖项移动到 devDependencies
- php - 如何在 Laravel 控制器中使用“for 循环”而不是“foreach 循环”?
- angular - BehaviorSubject 为每个订阅发出相同的值
- amazon-web-services - 如果我在 Cloudfront 上启用了 SSL,AWS ALB 是否需要 SSL?
- azure - QnA Maker 在 MS Teams 中部署时不显示按钮
- javascript - 如何在窗口关闭 MSCRM 上将值从 HTML webresource 传递到 javascript
- c++ - 如何在 C++ 中使用 unix 时间格式化 time_t 中的时间/日期字符串
- powerbi - 在工作区中找不到发布到 Web
- android - 如何测试在其中创建新对象的演示者方法?
- javascript - 如何在地图框中更改语言