WebService SOAP协议底层是无状态的HTTP协议,而由我们日常使用网络浏览器IE的经验也可看出,由于网络路由\服务器响应等诸多原因,最先发出请求的request并不一定会最先完成数据的post和页面的响应,所以如果是两个有先后顺序的WS调用,如果在极短的间隔内发出网络请求,确实是会发生"后发先至"的情况,这是由HTTP协议的设计所决定的,并不是某个产品或代码的BUG.而如果要在基于HTTP的WS上开发顺序敏感的报文交换,可有以下三种推荐方案:
1.A系统经由Biztalk向B系统发送报文后,由Biztalk回应(或由B系统发出)response报文后,再发出第二份业务报文;
2.将两部分报文进行组装,形成一个2in1的大报文发出,由Biztalk负责拆解和分发两部分;
3.评估"按序处理"参数在可靠性传输,性能指标方面是否已达到业务的要求,如达到,可使用此方式;
1.A系统经由Biztalk向B系统发送报文后,由Biztalk回应(或由B系统发出)response报文后,再发出第二份业务报文;
2.将两部分报文进行组装,形成一个2in1的大报文发出,由Biztalk负责拆解和分发两部分;
3.评估"按序处理"参数在可靠性传输,性能指标方面是否已达到业务的要求,如达到,可使用此方式;
本文探讨了WebService在使用SOAP协议时可能出现的请求顺序错乱问题,并提出了三种解决方案:通过BizTalk进行响应控制、打包多个请求为单一报文以及评估并启用按序处理参数。
8767

被折叠的 条评论
为什么被折叠?



