Bloomberg API request timing out
bloomberg, blpapi, c#, eventqueue
Solution
I didn't really ever get around to solving this question, but we did find a workaround.
Based on a small, apparently throwaway, comment in the Server API documentation, we opted to create a second session. One session is responsible for static requests, the other for real-time. e.g.
_marketDataSession.OpenService("//blp/mktdata");
_staticSession.OpenService("//blp/refdata");
The means one session operates in subscription mode, the other more synchronously - I think it was this duality which was at the root of our problems.
Since making that change, we've not had any problems.
Problem
Having set up a ReferenceDataRequest I send it along to an EventQueue ``` Service refdata = _session.GetService("//blp/refdata"); Request request = refdata.CreateRequest("ReferenceDataRequest"); // append the appropriate symbol and field data to the request EventQueue eventQueue = new EventQueue(); Guid guid = Guid.NewGuid(); CorrelationID id = new CorrelationID(guid); _session.SendRequest(request, eventQueue, id); long _eventWaitTimeout = 60000; myEvent = eventQueue.NextEvent(_eventWaitTimeout); ``` Normally I can grab the message from the queue, but I'm hitting the situation now that if I'm making a number of requests in the same run of the app (normally around the tenth), I see a `TIMEOUT` EventType ``` if (myEvent.Type == Event.EventType.TIMEOUT) throw new Exception("Timed Out - need to rethink this strategy"); else msg = myEvent.GetMessages().First(); ``` These are being made on the same thread, but I'm assuming that there's something somewhere along the line that I'm consuming and not releasing. Anyone have any clues or advice? There aren't many references on SO to BLP's API, but hopefully we can start to rectify that situation.