// Another question from Bobby
I found this (http://msdn2.microsoft.com/en-us/library/ms905802.aspx) and
was wondering if I could use the "QueueManagerGUID" and still have it run on
boot?
// Original Answer from John
We force people to call the commands the first time because MSMQ needs to
create a UUID for the machine on 1st use - msmqadm register. If MSMQ tried
to get its UUID the 1st time a device ever booted without user intercaction,
there's the chance (very slight) that if the system clock weren't set already
then we could get the same random # when we call the random # generator since
every clock would be 12:00:05AM, 1/1/08. This way people presumably set the
clock 1st and then msmqdam register.
Now CE's random # generator is better than only relying on current device
time, but the original implementor was paranoid.
You can check out the MSMQADm source code at
\public\servers\sdk\samples\msmq\msmqadm to get a sense of what it's doing.
Basically all this stuff is just registry writes. You could potentially
implement equivalent of this stuff in .Net, probably easier is to have a
boottime program that just does CreateProcess("msmqadm","register",...) on
each command. In theory you could also burn the MSMQ device GUID in at ROM
creation time, though since it's important GUID's are unique each device
would have to have a slightly different img which I imagine is quite hard in
practice to make.
Finally, if you have followups let's take the conversation to
microsoft.public.windowsce.platbuilder newsgroup, copying+pasting what we
have, so the whole community can benefit.
John
// Original Email from Bobby Cannon
I would like any help possible.
I have a project that I am working on that requires MSMQ. I have create a
new Windows CE 6.0 R2 image that includes everything I need (.NET 3.5
Headless, MSMQ, etc...). The problem is that I have to manually start MSMQ
with the following three commands.
msmqadm register
msmqadm enable binary
msmqadm start
Then run my apps. How can I start the image and have MSMQ already running.