ASP系列讲座(二十一)创建事务性脚本(2)

2008-02-23 05:35:27来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折



注册和配置事务性组件可使用 MTS 资源管理器。必须将事务的属性设置为需要事务或需要新事务。事务组件必须在 MTS 包中注册。不要将组件放在 IIS 内部进程包中,而应该创建自己的包。通常,应将所有的组件放在一个组件库中。组件库的组件可被多个 ASP 应用程序使用并以 ASP 应用程序进程运行。使用 MTS 资源管理器可创建新的包并将包的 Activation 属性设置为 Library。

也可以在 Server 包中注册事务性组件。Server 包通常以服务器上的一个独立的进程运行。如果希望使用基于职能组的安全性检查或希望您的组件可被远程计算机上的应用程序访问,可对事务性组件使用 Server 包。

要使用 MTS 资源管理器,必须安装 Microsoft Transaction Server。

对象作用域
一般情况下,不要将从 MTS 组件中创建的对象存储在 ASP Application 或 Session 对象中。 MTS 对象在事务完成后消失。因为 Session 对象和 Application 对象是为在不同 ASP 页之间使用的对象实例设计的,所以不要用它们保存在事务结束时即被释放的对象。

ASP 脚本是已声名的事务的根,即起始点。任何事务性 ASP 页所使用的 MTS 对象都被认为是事务的一部分。当事务完成后,在页中使用的 MTS 对象将消失,其中包括存储在 Session 或 Application 对象中的对象。在此之后,从另一个事务性页中调用会话作用域或应用程序作用域对象的尝试都将失败。

事务排队
从一个远程服务器对数据库的更新可能因为网络延迟或故障而导致事务延迟或终止。因为事务的所有部分都必须提交,所以应用程序将可能挂起,等待远程服务器的提交或终止消息,也可能由于无法发送数据库更新而导致事务被放弃。

对于必须同时完成的更新,正确的做法是在事务的所有参与者都能够提交之前,终止事务或推迟完成事务。例如,航空公司的定票程序应该同时完成对客户的银行帐号计入借方和对航空公司的银行帐户计入贷方。如果一个更新属于事务整体的一部分,但可能晚于其他更新,您可能不希望让客户等待整个更新过程的完成。例如,机票预定事务可能也要向食品供应商发送食品订单或更新客户的旅程津贴。这些操作虽然也必须完成,但可以晚一些。

Microsoft Message Queue Server 使您能够将一个或一组更新捆绑到一个事务性消息中送给远程服务器。Message Queue Server 保证更新将被发送给远程服务器,即使目前网络不可用。您的应用将收到一个提交消息,从而可以继续处理事务。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ASP系列讲座(二十)维护 ASP 应用程序的安全

下一篇:ASP系列讲座(二十二)使用国际站点