欢迎来到天天文库
浏览记录
ID:24650149
大小:55.00 KB
页数:4页
时间:2018-11-15
《基于servicebroker的异步消息传递》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于ServiceBroker的异步消息传递>>教育资源库 这里演示同一个SQLServer中不同数据库之间的基于ServiceBroker的异步消息传递,其中StoredProcedure充当ServiceProgram。HelloessageType(XMLMessage),Contract(XMLContract),Queue(SendingQueueandReceivingQueue)等等,具体操作可以参考《AsimpletutorialonSQLServer2005Beta2ServiceBro
2、ker》。另外,因为在不同的Databases之间进行消息传递,因此需要创建Route,具体操作可以参考《SQLServer2005Beta2ServiceBroker:CreateRoute》。 1.创建StoredProcedure作为InternalServiceProgram.USEHelloAX)Declaremessage_type_nameSYSNAME[ReceivingQueue]),TIMEOUT1000--Ifamessageessage,--respondessage_type_n
3、ame='XMLMessage'BEGINSENDONCONVERSATIONconversationHandleMESSAGETYPEXMLMessage('<hello>HelloFromRickie</hello>')ENDCONVERSATIONconversationHandleENDMITENDMITENDGO 该StoredProcedure负责从ReceivingQueue中检索消息,并根据Queue的Retention设置,来确定从
4、Queue中移除消息或更新Queue中消息的状态。 2.设置目标队列(TargetQueue)的激活机制UseHelloE=[HelloAX_QUEUE_READERS=4,--Upto4concurrentreadersEXECUTEASSELF) --Executeasuserofiningdialog 设置上述创建的StoredProcedure,该StoredProcedure将被激活并处理Queue中的消息。 3.在Initiator端发送消息UseDotNetFun2goDECLAREco
5、nversationHandleuniqueidentifierBEGINTRANSACTION--BeginadialogtotheHelloSERVICE [SendingService]TOSERVICE 'ReceivingService','a727462b-52e7-4405-9eee-d19923729790'ONCONTRACT [XMLContract]E=600;--SendmessageSENDONCONVERSATIONconversation
6、HandleMESSAGETYPE[XMLMessage]('<hello>IT 其中,TOSERVICE'ReceivingService','a727462b-52e7-4405-9eee-d19923729790',ReceivingSerice表示目标Service名称,'a727462b-52e7-4405-9eee-d19923729790'则指定目标Service所在的数据库,可12下一页>>>>这篇文章来自..,。以通过如
7、下SQLScript获取:--RetrieveremotebrokerinstanceguidSELECTservice_broker_guidFROMsys.databasesL)FromSendingQueueReceivemessage_type_name,cast(message_bodyasXML)FromSendingQueue 4.查询对话端点状态(StateofConversationEndpoints) 最后,可以通过在Target/Initiator端查询sys.conversati
8、on_endpoints表,获取Dialog对话状态:Select*Fromsys.conversation_endpoints上一页12>>>>这篇文章来自..,。
此文档下载收益归作者所有