Después de haber establecido un ReferenceDataRequest lo envío junto a un EventQueueBloomberg solicitud de API tiempo de espera
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);
Normalmente me puedo agarrar el mensaje de la cola, pero estoy golpeando la situación ahora que si estoy hacer una serie de peticiones en la misma ejecución de la aplicación (normalmente alrededor de la décima), veo un EventType TIMEOUT
if (myEvent.Type == Event.EventType.TIMEOUT)
throw new Exception("Timed Out - need to rethink this strategy");
else
msg = myEvent.GetMessages().First();
Estos se realizan en el mismo hilo, pero estoy asumiendo que hay algo en algún lugar a lo largo de la línea que estoy consumiendo y no liberando.
¿Alguien tiene alguna pista o consejo?
No hay muchas referencias en SO a la API de BLP, pero esperamos poder comenzar a rectificar esa situación.
Creo que el problema es que ahora está abriendo explícitamente el servicio antes de obtener la referencia. Usamos 'if (session.OpenService (BlpConstants.BLP_REF_DATA)) return session.GetService (BlpConstants.BLP_REF_DATA); else return null; 'mientras que su pregunta inicial no abrió el servicio primero –