JMS Sender:仅在上一条消息成功的情况下提取消息

2020-08-24 21:27发布

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

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


专家您好,

是否有一种方法可以配置JMS发送方适配器,即如果前一条消息已成功处理,则PI仅接收下一条JMS消息?

此操作的目的是使用我们的消息Bus进行排队。 我们想将队列从我们的PI外包。

在某些情况下,有时我们会收到太多的主数据,以至我们的PI难以处理它,尤其是在目标系统不可用时。

所以代替这个:

ECC-(MATMAS)-> PI->目标系统

我们想要这个:

ECC-(MATMAS)->消息总线-(JMS)-> PI

但是,如果PI从消息总线中获取消息,并且先前接收的MATMAS已成功处理,则这才有意义。 否则,PI将再次开始排队。

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

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


专家您好,

是否有一种方法可以配置JMS发送方适配器,即如果前一条消息已成功处理,则PI仅接收下一条JMS消息?

此操作的目的是使用我们的消息Bus进行排队。 我们想将队列从我们的PI外包。

在某些情况下,有时我们会收到太多的主数据,以至我们的PI难以处理它,尤其是在目标系统不可用时。

所以代替这个:

ECC-(MATMAS)-> PI->目标系统

我们想要这个:

ECC-(MATMAS)->消息总线-(JMS)-> PI

但是,如果PI从消息总线中获取消息,并且先前接收的MATMAS已成功处理,则这才有意义。 否则,PI将再次开始排队。

付费偷看设置
发送
3条回答
代楠1984
1楼-- · 2020-08-24 22:07

您好,Filipe!

我想您应该可以使用带有服务质量EOIO的JMS Sender通道满足您的要求。

您也可以参考此说明以获取 其他信息:

1501724-向EOIO QoS注册的JMS适配器多个侦听器

问候,Evgeniy。

木偶小白
2楼-- · 2020-08-24 22:12

如果启用EOIO,则消息是 还在PI中排队,对吗?

这个想法是在PI中没有排队。 如果没有成功处理上一条消息,则所有消息都应保留在消息总线中。

昵称总是被占用
3楼-- · 2020-08-24 22:12

嗯,不确定是否有帮助,但是(相对)具有QoS BE的JMS有一个新功能: https://launchpad.support.sap.com/#/notes/2217210

< p>如果您可以通过某种方式设法仅将新值发布到PI侦听的队列中,那么当上述注释中的" JMS ReplyTo Queue"为空时,您将有一个进一步研究的起点。

另一个可能的解决方案是在消息总线和PI之间包含一些逻辑。 您的逻辑可以选择单个队列实体,然后将其同步发布到PI中,例如 通过SOAP,并且只有在发布没有错误的情况下才选择下一个。 最后,这种"逻辑"也可以在PI上实现,因为它是J2EE服务器。

第三个解决方案在某种程度上依赖IDoc作为输入消息的方式:您可以轻松地将IDoc同步发送到PI 从那里也同步到目标。 有效地将排队卸载到发送(ECC)系统。 ERP-> C4C-> CPI集成就是这样。 然后可以通过BD87,SRT_UTIL等进行监视。 要使PI顺利运行,您需要以xml http的形式发送,并附带 https://blogs.sap.com/2011/10/19/soap-for-idoc-demystified/

干杯

简斯

# p#

Hi Filipe,

这并非在所有情况下都是理想的。 在某些情况下,除非修复/解决了先前的消息问题并导致JMS服务器崩溃,否则队列中的消息将不断积累。

我仍将让PO提取消息,进行处理并将其传递到最终系统。 您可以进一步调整界面,以解决峰值流量,邮件大小,可用性等问题。

如果目标系统是能够处理Idocs的SAP系统,则可以将Idocs交付(不立即发布)并通过后台作业进行处理,以提高接口吞吐量。

希望有帮助。

Rakesh

一周热门 更多>