MIDDLEWARE 在传输大量数据时,经常会发生堵塞,如果有一条错误的数据整个队列将无法处理

版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

我们希望能在数据出错时,将错误的数据放到队列的末尾,这样能保证数据能一直处理下去,而不会发生堵塞? 以CRM inbound processing为例,数据从ERP到了CRM后, Middleware framework会call application 自己的逻辑,如果application inbound里发生了异常,而没有在application里处理,则该异常就抛到了framework layer,导致队列里剩下的item没机会得到处理,BDOC亮红灯。 我当时的思路就是,把standard 不支持,但是客户又确实用到的scenario抽象成一个exception,当application检测到这种情况后,application 抛exception,然后在最外面,就是application的入口处catch住该exception,输入error message,然后继续队列里下一个item的处理。

但是这个思路是将这个issue当做标准产品的一个bug处理的,即需要修改application的代码。如果partner consultant想通过不改标准代码,仅仅写一些BAdI是没法完成的。 另外如果把adapter对应的block size改成1的话,即每个队列的size就为1,这样比如有N个material从ERP到CRM,则会在CRM生成N个队列,每个队列size为1,这样就使得每个队列里唯一的material的inbound处理独立开来,但是inbound 处理不再是mass handling的,我们没有测试过block size =1 对性能影响究竟有多大。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券