Acknowledgements on Pocket Pc (MSMQ)

Does MSMQ on Pocket PC support Acknowledgements

I have a PC sending messages using Acknowledgements set .. But when the messages reach the client ie pocket pc ..I dont get any Acknowledgements in the Acknowledgement queue ...
Have tried all types of Acknowledgements....Any idea on this


Thanks in advance


Answer this question

Acknowledgements on Pocket Pc (MSMQ)

  • bingbangzoom

    your guess was right . It works if the fully qualified path name is provided ...Thanks Ilya!!
    I had few more questions
    1. Specifiying the local private queues by the following format ---
    @".\private$\MyQueue" ----affect the sending and receiving of messages .

    2) .Can i read mesages from the deadletter queue on the pocket PC.

    3).The above code sends messages to the pocket pc . Here i face a problem on the device (or  the Pocket Pc) if the meesages are sent when the device is offline and  after 10 or 15 mins  i go online  ,These messages fall in to the dead letter queue on the Pocket PC as u can see i have set the following message property
    m.TimeToReachQueue = MessageQueue.InfiniteTimeout; which does not seem to work.Now as theAcknowledgement works , i get the Acknowledgement description or class property which has the following message "destination queue does not exist "..
    what could be the reason why does the MSMQ not send these messages ....any ideas on solving this..

    thanks in advance
    praveen

  • PaulMD

    The PC a Windows XP using MSMQ 3.0 which acts as Host in sending messages to the client Pocket PC (wince 4.2)2003 and WM5 devices. The pocket pc connects to the local network using wifi.


    This is the code on the PC application(VS 2005 .net 2.0 , c#) which sends the message:
    string destQ = string.Format(@"FormatName:Direct=TCP:192.168.2...\Private$\MyQueue",
    MessageQueue messageQueue = new MessageQueue(destQ);
    Message m = new Message();
    m.AdministrationQueue = new MessageQueue(@".\private$\Ack");
    m.AcknowledgeType = AcknowledgeTypes.NegativeReceive | AcknowledgeTypes.NotAcknowledgeReachQueue | AcknowledgeTypes.NotAcknowledgeReceive | AcknowledgeTypes.PositiveArrival | AcknowledgeTypes.FullReceive | AcknowledgeTypes.FullReachQueue | AcknowledgeTypes.PositiveReceive;
    m.Recoverable = true;
    m.Formatter = new "My fromatter";
    m.Label = "Test";
    m.Body = "Test object";
    m.UseDeadLetterQueue = true;
    m.TimeToReachQueue = MessageQueue.InfiniteTimeout;
    messageQueue.Send(m);
    messageQueue.Close();


    On the client Pocket pc i have used the following code for recieving messages(compactframework 2.0,c#) :

    myQueue.ReceiveCompleted+=newReceiveCompletedEventHandler(MyReceiveCompleted);
    myQueue.BeginReceive();
    **************************************************

    private
    static void MyReceiveCompleted(Object source, ReceiveCompletedEventArgs asyncResult)
    {
    try { MessageQueue mq = (MessageQueue)source;
    Message m = mq.EndReceive(asyncResult.AsyncResult);
    //some work
    }
    catch
    {
    //
    }
    finally
    {
    mq.BeginReceive();
    }
    }


    Thanks ,
    praveen

  • meravsha

    Yes, it does. Please post code you’re using and describe your environment.



  • NikiB

    Not sure that's the reason, but here's my guess: device attempts to send ACK messages to the queue named ‘Ack’ located on device itself just like you've instructed it to do in this line of code:

    m.AdministrationQueue = new MessageQueue(@".\private$\Ack");

    Try specifying fully qualified path to the desktop ACK queue instead.



  • Acknowledgements on Pocket Pc (MSMQ)