• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 665
  • Last Modified:

MSMQ 2.0 and Domain Controllers role

I have an environment (Windows 2000 Server) that uses MSMQ 2.0 to transport messages throughout the environment.  During installation I have MSMQ just automatically discover a DC, which is no problem works everytime.  However, i began to wonder and then proved it by shutting down the DC in the environment and all my services failed as they are dependent on MSMQ.

So I was thinking that if I had two DC's in the environment, if one failed, the queues would just be picked up from the other DC.  By the way, I am using Public Queues.  So I added another DC, made them both Global Catalog dc's and reinstalled MSMQ, then again had it discover a DC.  That worked no problem, however when I shut down the original DC to simulate a "crash" the services failed and the queues could not be read from the other machine.  I then began to wonder if it had to do with what the logon server was for a particular machine.  So I logged off the machine and back on and viola! it picked up the queues.

So here is my question!  I cannot find anything on this.  How does MSMQ work in regards to this??  I was hoping it was dynamic and able to query any available domain within its subnet.  But this does not seem to be the case.  Does anybody know??

Thank you so much for your help!!
  • 2
  • 2
1 Solution
Joseph NyaemaIT ConsultantCommented:
From what I can see from your comments.
MSMQ is using Active Directory for Authentication Purposes.

Windows 2000 and letter use DNS to find the Role servers in Active Directory.

Which seems to suggetst that you may need to configure to DNS servers in your environment.
authentifyAuthor Commented:
Good guess, but DNS is working properly in the environment as all nslookups respond normally.  

There is just no clear cut documentation out there on this....this is killing me.  How do you make MSMQ redundant with MQIS servers?  I can't beleive Microsoft did not think of this!!!
Joseph NyaemaIT ConsultantCommented:
OK authentify...
Done a little more reading about MSMQ.

Basically this is the scoop...
At startup your application queries Active Directory to find a DC which running MSMQ
and connects to a que on that server.
Now if that server goes down, the application still connected to that que and waits for that server to come up.
It doesn't look for another server to provide a que
i.e. No fault tolerance.

To achieve Fault tolerance you rely on other server techonologies.
Basically you can choose from
1. Network Load Balancing
2. Cluster Servers

Network Load Balancing Might be the answer you are looking for.

You may also consider upgrading to Windows 2003
which offers more features in its new release of Message Queing.
Also the new MSMQ 3.0 client can access active directory directly
The earlier clients can't.

MSMQ 2.0 Feature List

Message Queuing 3.0  features
authentifyAuthor Commented:
Excellent information, thanks much!!!  That really shocks me that it cannot dynamically search for a DC.  I mean looking into the registry entries for a box with MSMQ installed you can set a static and what not.  WHy even give the choice.  I understand the idea, but it makes no sense.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Microsoft Windows 7 Basic

This introductory course to Windows 7 environment will teach you about working with the Windows operating system. You will learn about basic functions including start menu; the desktop; managing files, folders, and libraries.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now