Click here to Skip to main content
15,888,351 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Currently, to allow concurrency and load balancing while accessing a resource on server,
An WCF Service is implemented over MSMQ.

Not MSMQBinding, but Just MSMQ.

Client Writes content as Messages on Server's MSMQ queue.
A Windows Service on Server listens to the queue.
Upon receiving a message, it performs the appropriate action using the message content.

This works fine now. Any comments on this architecture?

The only downside seems to be few too many installations

(WCF Service + Win Service) X No.Of Servers

The better alternative seems to be to use netMSMQBinding, so that the WinService can be

replaced by a listener on service host itself.

But, sources say, MSMQ needs to be on client as well as server.

Client -> Client's MSMQ -> Message -> Server's MSMQ -> Server

Is there a way the architecture can skip the Client MSMQ WHILE using netMSMQBinding? Any

pointers?

Note: The solution is deployed on intranet.
Posted

1 solution

WCF can work as a listner to MSMQ messages using netMSMQBinding without any support of any other mechanism like Windows Service etc.

Sometimes it is preferred to keep MSMQ on both Servers Sender and Reciever, Considering in case if Reciever Server is down then you will have your messages in waiting mode in Sender Server's Queue.

In case if you want to avoid MSMQ on Sender's Sever then you can use MessageQueue.ReceiveByCorrelationId Method to make your Remote Message transactions more reliable. Below article has information on this.

http://beaucrawford.net/post/MSMQ-ndash3b-Sending-Messages-to-Remote-Queues.aspx

You may refer below link for more information on MessageQueue.ReceiveByCorrelationId Method.

http://msdn.microsoft.com/en-us/library/4f31cxs4.aspx
 
Share this answer
 
Comments
[no name] 13-Nov-11 1:00am    
Thanks a lot! And can you explain about How sender's queue is skipped from the architecture?
RaisKazi 13-Nov-11 1:02am    
Welcome! Above links has information on how you can work with Remote Queues.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900