PO系列之 过期消息的删除

2021-10-30 19:22发布


          点击此处--->   EasySAP.com 群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)

点击蓝字 关注我们

前言

最近系统管理员监控表BC_MSG过快增长,HANA内存占用90% . 需要解决表BC_MSG 占用空间的问题. 加上之前公众号沟通群中也用人提出过这个问题. 所以借此机会详细说明一下

PO消息过期机制及删除处理


消息的记录

所有同步/异步的接口消息都会记录到PO的底层表中.

  • BC_MSG  which contains the main data for messages processed from Adapter Engine.(存在消息及消息内容)

  • BC_MSG_LOG  which contains the message versions created by logging(for both asynchronous and synchronous messages) 存放消息的日志信息

  • BC_MSG_AUDIT which contains the audit log of the messages.存放消息的审计信息

这三个表是PO系统中占用空间最多,增长最快的表


空间占用统计

可以通过HANA SQL语句查询到表占用空间的情况

SELECT TOP 1000 "SCHEMA_NAME", "TABLE_NAME", "DISK_SIZE"

FROM (SELECT SCHEMA_NAME,TABLE_NAME,DISK_SIZE FROM PUBLIC.M_TABLE_PERSISTENCE_STATISTICS ORDER BY DISK_SIZE DESC) TMP



PO消息保留期配置

PO的可以通过参数配置消息的保留时间

有两个地方可以定义保留期(优先级依次增高)

  1. 参数定义 : NWA->JAVA系统属性(可以通过站点地图查找)->服务->XPI Adapter: XI -> 属性输入 *persistDuration* 这两个参数可以在线修改,直接生效. (但线修改的值重启系统会丢失,建议由管理员后台修改) 图一

  2. 保留期定义 NWA->消息保留->创建一个保留规则  可以针对不同的接口设计不同的保留期规则(比如主数据设计为7天,交易数据设计为30天)  图二

图一

图二


TIPS

SPRING

上述设置的参数会在消息产生的时候,计算出消息的到期日 ,写入BC_MSG-PERSIST_UNTIL 字段.

所以改变参数,并不会改变旧消息, 只会影响新产生的消息的到期日期.


标准删除作业

PO通过后台作业定期删除过期的消息.通过下面的图可以找到后台作业管理页面

系统只会删除状态是DLVD(成功处理的) 的消息



日志信息中可以看到每次处理的统计情况


紧急处理方式

可以变更消息的到期日,让消息早点被作业删除

在HANA STUDIO 中用数据库管理员帐号登录后, 执行下面的SQL语句, 把到期日提前.

update bc_msg set persist_until = '20210414090000'

where to_dats(persist_until)<='20210416'


上述语句把20210416 之前到期的消息调整到 20210414  到期


然后在PO后台作业处理监控器中手工执行删除操作.

可以在日志中发现成功删除的信息. 

日志中的条目数=SQL语句变更的条目数,验证通过


几个有用的SQL语句

统计到期日的消息条目数(用于推算每天预计删除的消息条目数)

select to_dats(persist_until),STATUS,count( * ) from bc_msg

where to_dats(persist_until)<='20220328' and status <> 'NDLV'

group by to_dats(persist_until),STATUS --达到保留期的消息

ORDER BY to_dats(persist_until)


统计总消息数

select count( * ) from bc_msg



总结

  • 建议对不同类型的消息设置不同的保留期. 通过PO的删除消息作业实现消息的删除.

  • 修改保留期只对新产生的消息有效.

  • 如果想紧急处理表的空间占用问题, 可以手工调整消息的到日期. 手工执行删除作业.

THE

END

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.       

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)



公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077


公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群

赞赏支持