Hizmet Aracısı ile'uygulamaları oluşturma
Herhangi bir programı çalıştırmak için Transact-SQL ifadeleri Hizmet Aracısı kullanabilirsiniz. Hizmet Aracısı bir uygulama dışında çalışan bir program olarak uygulanabilir: SQL Server, veya'de yazılmış bir saklı yordam Transact-SQL veya bir .NET dili.
Hizmet Aracısı'ı kullanan BIR programı, genelde bir görevi gerçekleştirmek için birlikte çalışan bileşenleri sayıda oluşur.Bir görüşmeyi başlatan BIR program oluşturur ve başka bir hizmet için bir ileti gönderir.Bu programda bir yanıt için bekleyin veya hemen çıkın ve yanıtı işlemek için başka bir programa bağlıdır.Hedefi olan bir konuşma bir hizmet, program hizmet, sıraya gelen bir ileti aldığında, iletinin verileri okur, gerekli tüm işlem yaptığı oluşturur ve uygunsa, bir yanıt iletisi gönderir.
Hizmet Aracısı'ı genişletir Transact-SQL. Bir uygulama, bir özel nesne modeli veya kitaplık Hizmet Aracısı'ile çalışmak için gerekli değildir.Bunun yerine, programları Gönder Transact-SQL komutları SQL Server ve sonuçlar komutları işler. Bir uygulama tarafından Hizmet Aracısı etkin bir arka plan hizmeti da çalıştırabilirsiniz zamanlanmış bir iş olarak çalıştırabilirsiniz veya bir olaya yanıt olarak başlatıldı.Hizmet Aracısı'ı kullanan bir uygulama başlatılıyor stratejileri hakkında daha fazla bilgi için bkz: Başlangıç strateji seçme.
Hizmet Aracısı'ile uygulamaları oluşturma hakkında daha fazla bilgi için bkz: Programlama ile Service Broker'ın yararları.
Hizmet Aracısı uygulamasına genel bakış
Aşağıda, etkileşim Hizmet Aracısı'ı kullanan bir uygulama içinde gösterilmiştir:
Çizimde gösterildiği gibi SubmitExpense, AcceptDenyExpense, and ReimbursementIssued ileti türleri önce oluşturulur.The ProcessExpenses anlaşma is created based on these message types and provides a schema for having a conversation to complete an expense reimbursement task.The ProcessExpenses anlaşma governs all conversations between the ProcessExpense hizmet and the SubmitExpense hizmet.The ProcessExpenses anlaşma and the message types that it uses must exist in the databases of all services that have conversations based on this anlaşma.
Hizmet Aracısı gönderilen iletileri depolayan SubmitExpense Hizmet sıranın hizmet. The ExpenseSubmission saklı yordam receives messages from this queue, processes them, and sends messages to another hizmet if a reply is necessary.
Hizmet Aracısı gönderilen iletileri depolayan ProcessExpense Hizmet sıranın hizmet. The ExpenseProcessing saklı yordam receives messages from this queue, processes them, and sends messages to another hizmet if a reply is necessary.
Bu iki hizmet arasındaki BIR görüşmeye şekilde yapılandırılmış:
Bir kullanıcı, bir kullanıcı arabiriminden bir masraf tediye isteği gönderir.Uygulama çalıştırır ExpenseSubmission saklı yordam, hangi oluştururSubmitExpense ileti.The SubmitExpense hizmet starts a conversation with the ProcessExpense hizmet, then sends the SubmitExpense message to the ProcessExpense hizmet.
Hizmet Aracısı alır SubmitExpense iletiProcessExpense hizmeti ileti üzerinde yerleştirirExpenseQueue sırası.The ExpenseQueue queue activates the ProcessExpense saklı yordam, which dequeues and processes the SubmitExpense message.The ProcessExpense saklı yordam then creates an AcceptDenyExpense message and sends this message to the SubmitExpense hizmet.Masraf engellenirse, ProcessExpense saklı yordam konuşmayı sona erdirir.
Hizmet Aracısı koyar AcceptDenyExpense iletiSubmitExpense Hizmetin hizmet sıraya. If the ProcessExpense procedure ended the conversation, Hizmet Aracısı puts an EndDialog message on the Expenses queue.Sıra etkinleştirir ExpenseSubmission işler ve da dequeues yordamı, depolananAcceptDenyExpense ileti.If the ExpenseSubmission saklı yordam finds an EndDialog message on the queue, the procedure ends the conversation.
Masraf kabul edilirse, ProcessExpense hizmet oluşturur ve bir gönderir.ReimbursementIssued iletiye gider ödeme yayımlanmıştır ve sonra da görüşme sona erdirir onaylama.Bu iletileri Hizmet Aracısı, hizmetin sıraya koyar.Sıra etkinleştirir ExpenseSubmission yordam ve yordamın işlerReimbursementIssued ileti.Yordamı sonra işler EndDialog ileti ve konuşmayı sona erdirir.
See Also