行程中的多个业务流程 [英] Multiple orchestrations in an Itinerary

查看:96
本文介绍了行程中的多个业务流程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我参与创建了多个编排的行程。将一个业务流程的出站消息作为入站消息发送到下一个业务流程。此外,所有捕获的故障都通过try catch块转到EsbExcpetionDb。所有业务异常(通过业务逻辑引发)都会附加到消息中。我通过发送端口将所有带有业务例外的消息发送到WSS。

OnRamp - > OrchestrationService - > OrchestrationService - > OrchestrationService

我在第一个业务流程的接收形状中设置了以下过滤器:

MyCompany.BT.MessageStage =" 1" AND
ESB ....的ServiceName = QUOT; MyOrch"       AND
ESB .... ServiceState = QUOT;待定"      和
ESB .... ServiceType =" Orchestration"
一切都很好,除了当消息进入Sharepoing门户时(因为消息有业务例外)在第二和第三个编排服务中,我在ESB门户中收到以下消息的例外情况:

"无法找到行程标题...." />
注意:当消息从第一个业务流程转到WSS时,不会发生这种情况。
)1)有关为什么我可能会收到此消息的任何想法? 2)另外,我希望能够重新提交这些转到WSS的消息,并从行程中遗漏的那一点开始继续。任何想法如何实现这一目标?现在,我使用了"MessageStage"和"MessageStage"。提升属性以控制哪些消息发送到哪个业务流程。 有没有更好的方法? 
3)我是否需要在每个业务流程的接收形状上指定上述过滤器?我确实注意到当消息从第一个业务流程移动到下一个业务流程时,不再提升三个ESB架构属性(ServiceName等)。

请执行我需要添加解析器以防止异常以上?如果是,如何?

干杯,

Dipesh一半/>



软件开发人员 - 网络/移动应用程序

Hi,

I have been involved in creating an itinerary with multiple orchestrations. With the outbound message of one orchestration going as an inbound message to the next orchestration. Also all faults captured go to the EsbExcpetionDb via the try catch block. All business exceptions (raised via the business logic) get appended to the message. I send all messages with Business exceptions to WSS via a send port..

OnRamp --> OrchestrationService --> OrchestrationService --> OrchestrationService


I have the following filters set in the receive shape of the first orchestration:


MyCompany.BT.MessageStage="1" AND
ESB....ServiceName="MyOrch"       AND
ESB....ServiceState="Pending"       AND
ESB....ServiceType="Orchestration"


All works well, except that when a message goes to the Sharepoing portal (as the message has business exceptions) from the second and third orchestration service, I get an exception in the ESB Portal with the following message:

"The itinerary header could not be found...."

Note: This does not happen when the message goes to WSS from the first orchestration.

1) Any ideas as to why I might be getting this?

2) Also, I want to be able to resubmit these messages that go to WSS, and continue from the point it left off in the itinerary. Any ideas how this can be achieved? For now, I make use of the "MessageStage" promoted property to control what message goes to which orchestration.  Is there a better way? 

3) Do I need to specify the above filters on the receive shape for every orchestration? I did notice the three ESB schema properties (ServiceName etc) are no longer promoted when the message moves from the first orchestration to the next.

4) Do I need to add resolvers to prevent the exception above? If so, how?


Cheers,

Dipesh





Software Developer - Web/Mobile Applications

推荐答案

Hi Dipesh,

1-消息离开Orch 1后,您是否检查过消息上下文实际上是否包含行程标题作为提升值?这可能是它无法找到itin标头的原因。 ESB可以在消息上下文中查找,也可以查看此行程的soap标题.2 - 在消息上下文中保留行程标题,或者使用soap标头可以执行此操作。如果您在这里遇到问题,请尝试使用行程缓存或自定义机制来缓存行程.3-是的,您需要拥有这些过滤器。您还需要在发送之前在先前的业务流程中提升这些值。您可以通过自定义代码或使用相关集来执行此操作,方法是在发送时进行操作。
4-不... ...

HTH
Hi Dipesh,

1- Have you check to verify that the message context actually contains the Itinerary Header as a promoted value after the message leaves Orch 1? This could be the reason why it can't find the itin header. ESB looks either in the message context, or a soap header for this itinerary
2- Keeping the itinerary header in the message context, or a soap header will allow you to do this. If you're having problems here, try caching the Itinerary either with the Itinerary cache or a custom mechanism
3- Yes you need to have these filters. You also need to promote these values in the previous orchestration before sending out. You can do this through custom code, or using correlation sets, by intiailizing on the send.
4- Nope...

HTH


这篇关于行程中的多个业务流程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆