如何在WSO2 ESB中跨序列管理事务

如何在WSO2 ESB中跨序列管理事务,wso2,wso2esb,Wso2,Wso2esb,我的ESB中有2个序列,分别是“seqDeleteEntry”和“seqInsertEntry” 序列“seqDeleteEntry”将根据收到的输入从表中删除条目。 代码片段: <sequence xmlns="http://ws.apache.org/ns/synapse"> <property xmlns:ns="http://org.apache.synapse/xsd" name="propertyName" expression="//Id/text()" s

我的ESB中有2个序列,分别是“seqDeleteEntry”和“seqInsertEntry”

序列“
seqDeleteEntry
”将根据收到的输入从表中删除条目。
代码片段:

<sequence xmlns="http://ws.apache.org/ns/synapse">
   <property xmlns:ns="http://org.apache.synapse/xsd" name="propertyName" expression="//Id/text()" scope="default" type="STRING"/>
   <transaction action="new"/>
   <property name="SET_ROLLBACK_ONLY" value="true" scope="axis2"/>       
         <dbreport useTransaction="true">
            <connection>
               <pool>
                  <password>$pwd</password>
                  <user>$uname</user>
                  <url>connectionURL</url>
                  <driver>$driver</driver>
               </pool>
            </connection>
            <statement>
               <sql>
                  <![CDATA[ delete from tbl_name where column_name = ?]]>
               </sql>
               <parameter expression="$ctx:propertyName" type="VARCHAR"/>
            </statement>
          </dbreport>
          <sequence key="conf:/seqInsertEntry"/>
   </sequence>  
我的问题是:
当在第二个序列(
seqInsertEntry
)中插入条目时出现错误(例如
完整性约束冲突
)时,我需要回滚事务,以便恢复使用前一个序列(
seqDeleteEntry
)删除的记录

在上面的示例中,我需要添加什么配置来实现事务管理

注意:
我尝试设置以下属性,但没有帮助

<transaction action="new"/>
<property name="SET_ROLLBACK_ONLY" value="true" scope="axis2"/>  
有人请澄清我错过了什么配置,或者我需要在上面的序列中添加


提前感谢。

请参阅文档[1]和[2]

[1]

[2]

问候,


默翰

请参考文献[1]和[2]

[1]

[2]

问候,


Mohan

Vijay,我的理解是,交易不会跨序列进行,除非是在错误序列中(以及当错误同步出现时)。事务似乎附加到序列和客户端

您是如何实现故障序列的


如果我对跨序列事务的理解是错误的,我希望知道如何实现这一点:-)

Vijay,我的理解是,事务不会跨序列进行,除非在错误序列中(以及当错误同步出现时)。事务似乎附加到序列和客户端

您是如何实现故障序列的


如果我对跨序列事务的理解有误,我希望知道如何实现这一点:-)

你好,莫汉,谢谢你的链接。。。我查看了上述链接中给出的文档。但这对我没有帮助。在上面的文档中,delete和insert(通过DBReport)的顺序相同,而在我的例子中,它们的顺序不同。此外,我还尝试在链接中实现“faultSequence”,这也没有帮助。我认为交易没有按照我转发的顺序进行。有什么建议吗?提前谢谢。嗨,默翰,谢谢你的链接。。。我查看了上述链接中给出的文档。但这对我没有帮助。在上面的文档中,delete和insert(通过DBReport)的顺序相同,而在我的例子中,它们的顺序不同。此外,我还尝试在链接中实现“faultSequence”,这也没有帮助。我认为交易没有按照我转发的顺序进行。有什么建议吗?提前谢谢。
<transaction action="new"/>
<property name="SET_ROLLBACK_ONLY" value="true" scope="axis2"/>  
useTransaction="true"