System A captures X information from users via UI. This information is validated and persisted in a database. The user can change, add or delete the information. I have to keep this X information is sync with System B using web service. Also I need to send this information as soon as possible after its persisted in the database.
I thought of using MSMQ here. System A will send a message to a Queue. Another process listening for messages on this queue will process the message by reading the information from database and send to System B.
I want to know, is it a good idea to use MSMQ here or write my own simple queuing mechanism by polling the database regularly.
Since near real-time transfer and guarantee is required I thought its a good idea to use MSMQ. Are there any other better solutions available?
Technology platform is .Net with Oracle database.
MSMQ does seem quite handy in your scenario as you are not familiar with AQ's in Oracle. MSMQ is sure fast enough for replication in your case. Writing your own queue for the same purpose is not less then reinventing the wheel and increasing the code that you have to maintain. Implementation of MSMQ in .NET is frictionless, which is another plus.
Database polling is probably not the best idea, especially if you are using Oracle which already contains advanced queueing. If you choose to do the polling thing (against my advice), use DBMS_ALERT to notify the sending process of changes.
You might consider synchronization services. You can use both SQL Server and Oracle.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With