You are welcome about that time notation. By the way, do you now also have to modify your code to use the Decimal class which IB uses for all prices? Others have complained that they needed to review their entire code base for this.
I am not familiar with the latest Gateway&API releases. However, I do remember from a previous version that timing between a disconnect and successive reconnect is important. Suppose you ran m_client.eConnect("127.0.0.1", 7497, 2), followed by the actions you want to do. Then, once your activities are completed, you run m_client.eDisconnect(). After this you have to wait a couple of minutes before you can run m_client.eConnect("127.0.0.1", 7497, 2) again. IB informed me that their servers need time to reset everything to a blank slate. When learning this I changed my approach and use a unique number each time I connect : m_client.eConnect("127.0.0.1", 7497, hhmmss), with hhmmss being the current time. This solved all communication issues for me.The second issue is harder: during the day I reconnect to the same instance of the gateway multiple times (to refresh historical prices, for the actual trading, etc.), and before it was fine, but from a recent version update the subsequent reconnects to the same instance can't initiate streaming of real-time prices, for some FX instruments usually the first one I'm requesting (I use them to get accurate FX-rates) i.e. I call reqMktData, no errors, but the bid\ask\last\lastClose just don't start coming.