2015-12-15 77 views
1

WSO2 esb中的Property mediators的操作范围究竟是什么?
虽然我已阅读此标准文档https://docs.wso2.com/display/ESB490/Property+Mediator。但是操作范围信息不多。它只是说
操作:该范围用于检索操作上下文级别的属性。

我使用此作用域来访问迭代器之外的迭代器中介器内的一个属性集。它运作良好。该代码是
WSO2 esb中的Property mediators的操作范围究竟是什么?

<sequence key="Main"> 
     <iterate xmlns:ns="http://org.apache.synapse/xsd" expression="//source_record_details/source_record" sequential="true"> 
       <target sequence="Loop"></target> 
      </iterate> 
      <sequence key="OutsideLoop"></sequence> 
</sequence> 


在命名循环的顺序,我设置属性X与范围的操作,我能够访问序列OutsideLoop在X的值。但是,如果我将范围更改为默认值,我不会得到X的值。
尽管这适用于我,但我正在寻找一些解释。我希望操作范围对于当前代理的执行仍然是本地的,并且是线程安全的。

回答

1

根据WSO2 Documentation, 您可以从操作范围中检索操作上下文级别的属性。

具有操作范围的迭代/克隆消息中的属性将依次保存,即使您已配置要在故障存在时通过故障序列发送的API资源。

具有操作范围的给定属性仅存在于单个请求中,并且可以由单个资源访问。当FORCE_ERROR_ON_SOAP_FAULT属性设置为true时,此作用域中的属性将传递给错误处理程序

+0

这也是非常安全的线程安全,根据文档 –

+0

https://docs.wso2.com/display/ESB481/Generic+Properties #GenericProperties-SOAPfault还说当响应中发生SOAP错误时,默认情况下,从后端发送的SOAPFault作为常规响应由out序列接收。如果此属性设置为true,则SOAPFault将重定向到故障序列。请注意,当此属性为true时,只有“操作”作用域中的属性将传递给错误处理程序,而axis2或默认作用域中的其他属性不会传递给错误处理程序。 –