tags:

views:

95

answers:

3

I have an eCommerce app, which is hosted on 2 geographically different servers

  • Server_A - hosted on our premises, contains product our ERP (Dynamic Navision) softare & database

  • Server_B - hosted in external data center - web application & database (not on same server - just for simplification within this question)

When someone places an order on the website, the order is written to the orders table on Server_B These orders need to be placed into Server_A orders table.

Currently, there is a DTS script that runs and copies across any orders that are in Server_B, but not Server_A Due to moving servers and application bits around, this has become difficult to manage.

My idea is to use MSMQ to transfer the orders "messages" between the two locations.

Is this a viable option?

+1  A: 

What about WebService call right after storing order "locally"?

Rafal Ziolkowski
I don't have the luxury of being able to alter the current app code-basically, all the data in the db, i was going to do a "foreach" loop on the new orders, then put them on a queue. Have a service running on Server_A that listens to this queue, and puts the data in the db on that server.... i suppose i could use a web service, but wouldn't msmq offer greater redundancy incase of problems?
alex
Well, in this case MSMQ looks better. By the way? Are both SQL servers MSSQL? If yes, maybe You could use Replication Services to replicate orders table to Your target server?
Rafal Ziolkowski
+1  A: 

Your talking about msmq wcf right? http://code.msdn.microsoft.com/msmqpluswcf

Elijah Glover
A: 

Yes, that sounds viable.

At an MS event I went to a few years ago, and scenario was almost exactly the case study one of the presenters used (i.e. major site had a tightly coupled process that couldn't scale and crashed during Valentines day ordering period - they then changed to use MSMQ so orders could be always be taken/queued up, and then processed later as the other machines were able to)

Only thing to remember with MSMQ is that it can't store messages over a certain size (~4MB if I recall). It doesn't sound like it'll matter to you, but was a hurdle I ran into building a system that had to take big reports along with purchase order messages.

Steven Adams