PC Review


Reply
Thread Tools Rate Thread

Q: Accessing MSMQ on WinXP Pro from a docked WM5 device

 
 
Paul G. Tobey [eMVP]
Guest
Posts: n/a
 
      6th Oct 2006
I almost hate to say it because I'm not a MSMQ expert by any stretch of the
imagination, but you might verify what capabilities MSMQ on Windows CE has
for the CE version you're using. It used to be that only private$ queues on
remote machines were accessible. I don't use MSMQ on a daily basis, so I
haven't kept up with what might have been added for CE5. In CE4.2, the PC
name, the NetBIOS name, was used to identify where the queue should go. I
can't tell from your description if XPBASE fits that model.

Paul T.

"Adam Bradley" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Frank Boyne wrote:
>> "Frank Boyne" <(E-Mail Removed)> wrote in message
>> news:(E-Mail Removed)...
>>> The easiest way to tell what is going on is to set the "UseJournalQueue"

>>
>> I mean "UseDeadLetterQueue" not UseJournalQueue, sorry.

>
> Thought as much!
>
>>> These messages are placed into the Journal queue local to the Queue
>>> Manager that determines a failure has occurred.

>>
>> That should read ... placed into the Dead letter Queue local to ...

>
> Still no luck I'm afraid. Following are my attempts at the correct naming
> for .NET CF2
>
> MessageQueue(@"FormatNameIRECT=OS:WM_Administrat1\system$;deadletter");
> MessageQueue(@"DIRECT=WM_Administrat1\SYSTEM$;DEADLETTER");
> MessageQueue(String.Format(System.Globalization.CultureInfo.InvariantCulture,
> @"FORMATNAMEIRECT=OS:{0}\SYSTEM$;DEADLETTER;XACTONLY", deviceIP));
> MessageQueue(@"FORMATNAMEIRECT=TCP:{0}\SYSTEM$;DEADLETTER;XACTONLY");
> MessageQueue(@"FORMATNAMEIRECT=TCP:{0}\SYSTEM$;DEADLETTER;XACTONLY");
> MessageQueue(@"FormatNameIRECT=OS:WM_Administrat1\SYSTEM$;DEADLETTER;XACTONLY");
> MessageQueue(@".\SYSTEM$;DEADLETTER");
>
> Unfortunately, none seem to work. To reiterate, I'm trying to retrieve
> the contents of the DLQ on the handheld device. To confirm, the DLQ is
> created during the standard WM5 MSMQ install?
>
> Writing to a local queue of .NET CF2 works happily using
>
> MessageQueue(@".\private$\MyQueue");
>
> I've been attempting to write to a queue on the Windows XP box where the
> device is cradeled (albeit the WM5 emulator) using
>
> MessageQueue(@"FormatNameIRECT=OS:XPBASE\private$\testq");
>
> to no avail.
>
> I was having a look at the MSMQSample.zip.exe (can't for the life of me
> find it since I downloaded it (I've made it available at
> http://svn.adamjbradley.com:8888/WebDAV/anonymous/)
>
> It makes the following references
> ---snip---
> //The response Queue is specified to receive acknowledgement from the
> // server
> message.ResponseQueue = new MessageQueue
> (String.Format(System.Globalization.CultureInfo.InvariantCulture,
> @"FORMATNAMEIRECT=TCP:{0}\private$\mqdemoAck",deviceIP));
> ---snip---
>
> and
>
> ---snip---
> //Create an instance of the MessageQueue class that abstracts a
> //connection to a queue specified on the server
> MessageQueue orderQueue = new MessageQueue
> (String.Format(System.Globalization.CultureInfo.InvariantCulture,
> @"FORMATNAMEIRECT=OS:{0}\private$\mqsample", textBoxServer.Text));
> ---snip---
>
> if you could provide any code that would allow me to view the local DLQ
> would be wonderful
>
> Thanks in advance.
>
> Adam



 
Reply With Quote
 
 
 
 
Adam Bradley
Guest
Posts: n/a
 
      13th Oct 2006
After a few coffee's and a bit of time I can now report back and saying
its working!

By retrieving the IP address of the host the device is connected to
(over ActiveSync) by using the "ppp_peer" trick.

---snip---
IPHostEntry iph = System.Net.Dns.GetHostByName("ppp_peer");
---snip---

then pushing the message into a queue

---snip---
MessageQueue myQueue = new MessageQueue(@"FORMATNAMEIRECT=TCP:" +
hostIP + @"\private$\testq");
---snip---

Works perfectly.

However, I still have no way of referencing the local DLQ on the
WM device.

I've tried a few different ways as you can see below (the createQueue
method just takes this string and does a check to see if I get a non
-null readPointer value on my newly created Queue object)

---snip---
createQueue(@"FormatName:" + computerGUID.ToString() + @";DEADLETTER");
createQueue(@"FormatName:" + computerGUID.ToString() + ";DEADLETTER");

createQueue(@"FormatNameIRECT=OS:" + "WM_Administrat1" +
@"\SYSTEM$;DEADLETTER");
createQueue(@"FormatNameIRECT=OS:WM_Administrat1" +
@"\SYSTEM$;JOURNAL");
createQueue(@".\SYSTEM$;DEADLETTER");
createQueue(@"FORMATNAMEIRECT=OS:WM_Administrat1\SYSTEM$;DEADLETTER");

createQueue(@"FORMATNAMEIRECT=OS:WM_Administrat1\SYSTEM$;DEADLETTER;XACTONLY");

createQueue(@"FORMATNAMEIRECT=TCP:{0}\SYSTEM$;DEADLETTER;XACTONLY");

createQueue(@"FORMATNAMEIRECT=TCP:{0}\SYSTEM$;DEADLETTER;XACTONLY");

createQueue(String.Format(System.Globalization.CultureInfo.InvariantCulture,
@"FORMATNAMEIRECT=OS:{0}\SYSTEM$;DEADLETTER;XACTONLY", deviceIP));

createQueue(@"FORMATNAMEIRECT=WM_Administrat1\SYSTEM$;DEADLETTER");

createQueue(@"FORMATNAMEIRECT=OS:WM_Administrat1\system$;deadletter");

---snip---

Anyone? I need to have some way of working out if the message did in
fact get to the other end

Adam
 
Reply With Quote
 
 
 
 
New Member
Join Date: Apr 2012
Posts: 1
 
      19th Apr 2012
Hello folks,
Not sure if I was in the same context. However I got caught in a situation with MSMQ where I had a queue with
CanRead - false
CanWrite - true
In my case this was because the queue had been created by a service (which I wrote in .NET C#) that was running under Local System account. My service could write to that queue, but I as administrator had no read access to it... I couldn't delete it either. In the properties , security, I found a strange user S-1-5-32-554 with a question mark, and I couldn't change the security settings. This was very puzzling.
I resolved it by temporarily adding a line in my service code to delete that queue:
MessageQueue.Delete(@".\private$\myQueueName");
As this was also done with the Local System account, it worked, it successfully deleted that queue. Then I created it newly manually as administrator, and had no more problem with it.
 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
MSMQ binding Stop processing after Cluster MSMQ failover Bhavesh Shah Microsoft C# .NET 0 24th Apr 2009 05:02 PM
Checking if device is docked - please help =?Utf-8?B?Um9iIFM=?= Microsoft Dot NET Compact Framework 3 8th Nov 2007 04:26 PM
WM5 MSMQ c00e000b error Po Microsoft Dot NET Compact Framework 0 17th Aug 2007 08:29 AM
Problems with MSMQ, WM5 and (possibly) PXA270 =?Utf-8?B?TWFydGluIFNsYXRlcg==?= Microsoft Dot NET Compact Framework 13 14th Mar 2006 05:43 PM
Getting device ID WM5 Jerry Microsoft Dot NET Compact Framework 4 10th Jan 2006 12:16 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 10:26 PM.