I have an .net WCF service (hosted on IIS 7.5) that makes a high volume of calls to a SQL Server 2008 r2 stored procedure which inserts into several tables. The clients of this WCF service are used 24/7 although processing a lower volume of requests during the night. Most of the time this works ok but once a month an SSIS job must run which makes high volume inserts to the same table. When the SSIS job runs (takes approx 4 hours to complete) it causes problems for the WCF service which results in timeouts.
My initial thought was to amend the stored proc so that the insert is made to temporary table, which is later merged to the main table. However, the DBA responsible for the SQL server tells me that during the period that SSIS job runs the server is totally maxed out.
So, I need to come up with some form of cache / queue that doesn't hit the SQL Server. This cache also needs to be resilient and scaleable. Is App Fabric cache the best tool for this? I've had a quick look at the API and I couldn't see an obvious way to make use of it like a queue, the method to Get from the cache seems to require a key - which wouldn't be known by the new service to pull from the cache and write to the permanent SQL Store (once the SSIS job had completed).
In the past I've used MSMQ to solve a similar problem but all the documentation on this seems really old so maybe App Fabric Cache is the preferred choice nowadays?
Thanks,
Rob.