Clustering newbie help

Associate
Joined
28 Apr 2012
Posts
800
I am totally new at clustering and need your help. It took me ages to try and learn and get things going and hope ive done it..... but we will see! completely stressed and only had 8 hours of sleep over 3 days trying to get this all done.

The entire environment is in a virtual system (VMware unfortunately).

I have:

DC
NodeA
NodeB
VSAN (Virtual SAN)

all joined to the domain
NodeA and B are clustered.
all running WS2008R2 EE

I have also, believe, to have clustered MSMQ and given it the name "ClusteredMSMQ"

I need some clarifications at this stage....

Messages will be coming in from some external source (or maybe for this demo purpose, from another computer within the domain). These will be placed on the Clustered MSMQ (for failover reasons).
I have written a WCF self hosted app which simply reads the messages from the queue.
It works fine when you have ComputerA sending to ComputerB's private queue. So the sender app is on ComputerA and the receiver app is on ComputerB

Now, I want to host this self hosting WCF app so that it can receive those messages being placed on the clustered MSMQ.

how do I do this? Where do I host the app? On both nodes? or on ComputerB?
Also how should I setup the MSMQ on the cluster? I installed it on both nodes with the same features (default) and then created a private queue on each and then clustered it. Is this correct or am i missing something?
 
Last edited:
Associate
Joined
19 Feb 2005
Posts
1,233
Location
Docklands, London
From experience (if anybody has managed then I'd be intered to see the config) when clustering MSMQ, you can only access the clustered resource from outside of the cluster. Your application will still use the individual node installations to send the messages (including acks) which will fail to connect to the clustered instance.
So, build another VM to host your application and it should work fine.
 
Associate
OP
Joined
28 Apr 2012
Posts
800
Thanks. I appreciate that.
The problem I seem to have is this:

if I run the app on the clustered nodes, it runs fine and I can see the messages coming through and being procecssed which is being sent from ComputerA.

If I use ComputerB to run the app to listen/read messages from the MSMQ Cluster, it just fails and says that the messaging service is not available - even though it clearly is as the cluster nodes still have that app running and is receiving messages.

What I was hoping for was the following:

ComputerA sends MSMQ messages to "ClusteredMSMQ"
ComputerB gets the message from "ClusteredMSMQ"
NodeA goes down
ComputerA sends MSMQ Messages to "ClusteredMSMQ"
after a few seconds, NodeB kicks in and receives messages being sent from ComputerA
ComputerB would then still continue to receive these messages

is this correct?
What about the scenario of having ComputerC and ComputerB running this app to receive messages from the same ClusteredMSMQ. I'd want only one of them to receive the message but if Computer B or C goes down, then the other one should still pick up these messages from the cluster and continue doing the job....

Thanks again. ive been up for 5 days with very very little sleep trying to learn all this but also setting up the virtual environment and clustering.... ahh!! :)
 
Associate
OP
Joined
28 Apr 2012
Posts
800
I re-read what you said and it unfortunately isnt doing this

So I have a clustered MSMQ.
if I run the service application outside of this, pointing to the clustered MSMQ, it does not appear to read any messages.

if I run the service app inside the cluster, all is fine.
if I create the high availability of the service app and set the "use network name for computer name" to be checked (by default) then I get an error saying :

The version of MSMQ cannot be detected All operations that are on the queued channel will fail. Ensure that MSMQ is installed and is available.

however if I do tick it then the service runs fine and can process messages.

thoughts?
 
Back
Top Bottom