WEB开发网      婵犵數濞€濞佳囧磹婵犳艾鐤炬い鎰堕檮閸嬬喐銇勯弽銊с€掗梻鍕閺岋箑螣娓氼垱笑闂佽姘﹂褔婀佸┑鐘诧工妤犲憡绂嶉崜褏纾奸弶鍫涘妼缁楁岸鏌熷畡鐗堝殗闁诡喒鏅犲畷褰掝敃閵堝棙顔忔繝鐢靛仦閸ㄥ爼骞愰幘顔肩;闁规崘绉ぐ鎺撳亹闁绘垶锕╁Λ鍕⒑閹肩偛濡奸悗娑掓櫇缁顓兼径妯绘櫇闂佹寧绻傞弻濠囨晝閸屾稓鍘甸柣搴㈢⊕閿氶柣蹇ョ稻缁绘繃绻濋崘銊т紝闂佽鍨伴崯鏉戠暦閻旂⒈鏁傞柛鈾€鏅欑槐妯衡攽閻愬樊鍤熷┑顔藉劤铻為柛鏇ㄥ墯閸欏繘鏌嶉崫鍕櫣缂佲偓婢跺绠鹃柟瀛樼箘閿涘秵顨ラ悙顏勭伈闁诡喖缍婂畷鎯邦槻婵℃彃顭烽弻娑㈠Ω閵夈儺鍔夌紓浣稿€哥粔褰掑极閹剧粯鏅搁柨鐕傛嫹 ---闂傚倷鐒︾€笛兠洪埡鍛闁跨噦鎷�
开发学院数据库MSSQL Server SQL Server 2005 Service Broker 初探 阅读

SQL Server 2005 Service Broker 初探

 2007-05-13 09:26:17 来源:WEB开发网 闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹闂傚倷绀侀幉锟犲垂閻㈠灚宕查柟鎵閸庡秵銇勯幒鎴濃偓鐢稿磻閹炬枼妲堟繛鍡楃С濞岊亞绱撻崒姘扁枌闁瑰嚖鎷�婵犵數濮幏鍐川椤撴繄鎹曢梻渚€娼уú銈吤洪妸鈺佺劦妞ゆ帊鑳堕埊鏇㈡煏閸モ晛浠х紒杈╁仱閺佹捇鏁撻敓锟�闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹  闂傚倷鑳舵灙缂佺粯顨呴埢宥夊即閵忕姵鐎梺缁樺姇閻忔氨鈧凹鍓熷娲垂椤曞懎鍓伴梺閫炲苯澧紒澶婄秺瀵濡歌閸嬫捇妫冨☉娆忔殘闂佷紮缍€娴滎剟鍩€椤掑倹鏆柛瀣躬瀹曚即寮借閺嗭箓鏌ㄩ悤鍌涘
核心提示: 我想通过这个例子说明的最后一个问题是,当持有会话组的事务被提交后,SQL Server 2005 Service Broker 初探(4),该会话组中的另一条消息到达时会发生什么情况,还以售票处为例,因为如果使用数据库确保队列中消息的完整性,但消息却在传送到其他数据库的过程中丢失,当我的家

我想通过这个例子说明的最后一个问题是,当持有会话组的事务被提交后,该会话组中的另一条消息到达时会发生什么情况。还以售票处为例,当我的家人都登记后,我的一个孩子才到达机场。由于原始事务已经结束,最后一位乘客可以由任一票务代理服务。只有在原始代理留下便条,说明该组中其他人员的位置时,新代理才能知道如何为最后一位乘客安排座位。同样,当处理相关消息组的事务完成时,必须记录会话的“状态”以便当该组中下一条消息到达时,接收该消息的队列读取器了解上一个事务停止时的位置。因为这是数据库应用程序,所以存储该状态的位置应该是一张数据库表。Service Broker 提供了一个会话组 ID,可以使用它来方便地将会话状态和会话中的消息相关联。这是与会话组中每条消息一起显示的唯一标识符。如果唯一标识符用作存储状态的表中的密钥,则消息处理逻辑可以很容易地找到与接收到的每条消息相关联的状态。另外,因为每次只有一个队列读取器可以处理来自特定会话组的消息,所以开发人员不必担心同时有两个事务更新状态行从而导致丢失状态信息。

以上示例说明,多读取器队列是扩展大型应用程序的一种简单而有效的方法。Service Broker 提供的会话组锁定机制使编写使用多读取器队列的应用程序像编写使用单读取器队列的应用程序一样容易。

分布

前面讨论的队列都假定位于一个数据库中。为了开发适用于多种业务情况的松散耦合的分布式数据库应用程序,我们需要进行扩展,以包括分散在网络中(通过可靠的消息传送进行通信)的多个数据库中的队列。我们需要可靠的消息传送,因为如果使用数据库确保队列中消息的完整性,但消息却在传送到其他数据库的过程中丢失,所有工作都将是徒劳的。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:SQL Server Service

编辑录入:coldstar [复制链接] [打 印]
赞助商链接