We use the SOAP API method call Retrieve() to get back users' sends, opens, clicks, unsubs and bounces. We specify the required event-type and date-range.
One of our customers have now accumulated so much data for most of these event-types that we start seeing SQL Server type time-out messages: “Error: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.”
This happens after 12 minutes. It is not our WCF webservice call timing out, because we have set the timeouts for that to 30 minutes; WCF shows different style time-out messages anyway, this message is typical SQL Server client exception message, presumably generated on ET's database server-side.
Even when we make the time-interval really small (down to 1 second), we still get the time-out. I suspect the database is only indexed on event-type (and we have MANY records for most of these), not including response-date on top of that - or at least that would explain this result.
We already logged this with support who suggested using tracking extracts instead, but given the major urgency with our customer we simply have no time to refactor our app.
Instead it was suggested to increase the time-out. We had been recommended to visit this place to find out how but whatever keywords I use, I can't find a solution. I actually doubt whether there IS a "secret" setting or property for this, given the obvious risk of clients extending the SQL Server time-out on ET's databases. Still if anyone knows one then we'd love to hear about it ;)