Распределенные приложения на основе MS Message Queue Server


         

Второй параметр метода Open служит


Второй параметр метода Open служит для разделения доступа к одной очереди между процессами и при отправке может быть только MQ_DENY_NONE

Set q = FindQueOnLabel(strQueLbl).Open(MQ_SEND_ACCESS, MQ_DENY_NONE)

Создаем новый объект “сообщение”. MSMQMessage входит в ActiveX-интерфейс сервера сообщений.

Dim msg As New MSMQMessage

Задаем свойства сообщения. Обычно, когда в одну очередь поступает много сообщений, предусматривающих различный характер прикладной обработки, программист может использовать Label и AppSpecific в качестве отличительных признаков типа сообщения. Поясним наглядно. Пусть некая процедура занимается обработкой выписки по какому-то заранее известному счету. Отводить по очереди на каждого клиента в общем-то неэкономно (хотя в принципе ограничений нет), поэтому выписки по всем счетам падают в общую очередь приема. В этом случае разумно вынести номер счета в метку сообщения, чтобы наша процедура не отвлекалась на чтение тела сообщения, если этот счет ей заведомо неинтересен.

msg.Label = strMsgLbl
msg.AppSpecific = lngAppSpec
msg.Body = varBodyText

Если требуется ответ, указываем MSMQQueueInfo очереди, в которой мы были бы счастливы его видеть:

If strRespQueLbl <> “” Then
Set msg.ResponseQueueInfo = FindQueOnLabel(strRespQueLbl)
End If

Сообщение msg сформировано. Можно смело отослать его в ранее открытую для отправки очередь q:

msg.Send q

По умолчанию все сообщения отсылаются (и принимаются) в контексте текущей транзакции Microsoft Transaction Server. Если соблюдение транзакционной целостности не требуется для вашего приложения, вы можете сэкономить время и ресурсы, отключив участие в транзакции параметром MQ_NO_TRANSACTION. Если текущая транзакция началась не на MTS, а на каком-то внешнем XA-совместимом координаторе транзакций, вы можете указать это MSMQ c помощью объекта MSMQTransaction.

q.Close
End Sub

Проверим нашу процедуру в действии. Создадим на втором сервере (независимом клиенте) очередь с именем InteractionQueue:

CreateMQPublQue “InteractionQueue”, “ntalexejs”


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий