使用DSS从Wso2 ESB插入两个或多个表

时间:2013-10-04 06:51:11

标签: wso2 wso2esb wso2dss

我有一个问题: -

在我的ESB 4.7.0中,Dss是3.0.1

我希望将数据可靠地插入数据库,因为我从客户端获取一个数组列表。 那个数组我需要插入3个不同的表。每个表都给我返回生成的key.which将有助于插入 第2个表,第3个表的相同过程。 为此我使用wso2dss在wso2esb中使用了3种不同的插入操作,插入很顺利..

@my问题是在我插入第2或第3表时,由于网络问题或任何数据相关问题而发生错误。 在这种情况下,我的事务可以回滚。我已经在事务调解器中完成了,但它在序列中有用。 它没有反映到任何其他序列,所以我怎么能这样做。因为这可能我使用任何类调解员或任何新的东西。

3 个答案:

答案 0 :(得分:0)

事务调解器旨在满足原子性要求。由于您只使用插入而没有删除,您可以将第一个表中插入条目的主键传递给类中介并删除,但我认为,在这种情况下,将不保证原子性。因此,在这种情况下无法实现交易的概念。

答案 1 :(得分:0)

由于您使用了三种不同的操作,因此您可以使用DSS boxcarring功能以及查询请求导出功能,该功能使您能够以协调的方式进行交易。请参阅this,了解如何使用boxcarring功能。它允许在boxcarring会话中执行的各个查询相互通信。该概念是“导出”特定的结果元素,以便下一个调用查询将该结果元素作为查询参数。所以,如果你有两个查询,即在一个boxcarring会话中按顺序执行的'query1'和'query2',并且'query1'有一个特定的结果元素,并且该元素以名称'foo'导出,那么' query2'还获得一个名为'foo'的查询参数。因此,当执行此boxcarring会话时,query1的导出值将作为输入参数传递给query2。

答案 2 :(得分:0)

根据您的要求,理想的解决方案是使用Boxcarring。 Boxcarring是一种将一组服务调用分组在一起并立即执行它们的方法。在适用的情况下,boxcarring会话以事务方式工作,例如与RDBMS数据源一起使用时。 “数据服务托管”功能通过在服务器端对服务呼叫进行分组来促进箱式卡。因此,不需要特殊服务客户端,并且像往常一样,可以向服务器进行连续的服务调用以参加棚车会话。

要使Boxcarring正常运行,必须使用支持会话管理的传输,例如HTTP。服务客户端还应通过在服务器发送时返回会话cookie来支持会话管理。 Axis2服务客户端完全支持会话管理。

请查看有关箱子卡的WSO2 original documentationthis useful blog post,了解如何逐步使用Boxcarring。