MSMQ: подтверждения не возвращаются при доставке в удаленную очередь

У меня есть следующий фрагмент кода для проверки подтверждений MSMQ:

    static void Main(string[] args)
    {
        string queuePath = args[0];
        string ackQueuePath = args[1];
        MessageQueue queue = new MessageQueue(queuePath);
        MessageQueue ackQueue = new MessageQueue(ackQueuePath);
        Message message = new Message("Body text");
        message.Label = "test";
        message.Recoverable = true;
        message.TimeToReachQueue = new TimeSpan(0, 1, 0);
        message.TimeToBeReceived = new TimeSpan(1, 0, 0);
        message.AdministrationQueue = ackQueue;
        message.AcknowledgeType = AcknowledgeTypes.FullReachQueue;
        queue.Send(message, MessageQueueTransactionType.Single);
    }

Если и queuePath, и ackQueuePath являются локальными, то есть в формате ". \ Private $ \ queuename", я получаю "тестовое" сообщение в основной очереди и подтверждение очереди в очереди администратора, как и ожидалось. Однако, если queuePath указывает на удаленную очередь, то есть формат «FormatName: DIRECT = OS: MACHINENAME \ private $ \ queuename», я получаю «тестовое» сообщение в этой удаленной очереди, но не подтверждаю получение очереди в локальной очереди администратора. .

Я не видел ничего, что указывало бы на то, что подтверждения не могут быть возвращены из удаленных очередей, поэтому я предполагаю, что есть проблема с моим кодом или моей средой. Любые идеи?

(Обе машины работают под управлением Windows 2003.)


person marijne    schedule 10.06.2009    source источник


Ответы (2)


@LievenCardoen и @marijne.

Не уверен, что это была ваша первоначальная проблема, но очередь подтверждений не должна быть транзакционной. Если это так, вы не получите никаких подтверждающих сообщений, и нет никаких сообщений об ошибках, которые указали бы вам на это. Мне пришлось усвоить это на собственном горьком опыте :)

Ура, Йохан

person Johan J v Rensburg    schedule 04.01.2012

Для справки, это сработало правильно после того, как я переустановил очередь сообщений на обеих машинах.

person marijne    schedule 10.06.2009
comment
Это действительно отстой ... многое говорит о msmq. Я начал использовать его несколько недель назад, и у меня до сих пор тысячи вопросов, почему иногда то или это не работает ... - person Lieven Cardoen; 17.08.2010