One important thing I noticed in your log is that the message:

10/01/12 00:16:16.630 IB API 1102: Connectivity between IB and Trader
Workstation has been restored - data maintained.

was NOT followed up with this the message:

IB API 2104: Market data farm connection is OK:usfuture

So, my plan for implementing the "re-subscribe" functionality is to detect
this condition and resubscribe.





On Tue, Oct 9, 2012 at 11:48 PM, Klaus <[email protected]> wrote:

> Dear Eugene,
> right. I did not check every line, but it was exactly the same price at
> the end and all checks in between gave the same data
> (It had run by this time for 10 hours). It was only afterwards that I
> found that exactly at the same time these events happened.
>
> Klaus
>
>
>
>
>> Between 23:59:05 and 00:16:16, there is some activity indicating IB
>> restart processes kicking in, which ultimately end at 00:16:16. The message
>> says "Connectivity between IB and Trader Workstation has been restored -
>> data maintained", which means that all market data subscriptions are still
>> valid. But you are saying that the price data never changed after 00:16:16.
>> Correct?
>>
>>
>>
>> On Tuesday, October 9, 2012 2:48:01 PM UTC-4, Klaus wrote:
>>>
>>> Dear Eugene, Dear Judson,
>>>
>>> first thanks to all for clarifying this. This was puzzling me and now I
>>> understand how it can technically
>>> happen. I was mistaken to believe it would be the same stream.
>>>
>>> Certainly, if you give me a proposed patch, I would be happy to analyze
>>> the relevant effects.
>>>
>>> Cheers
>>>  Klaus
>>>
>>>
>>> Am Dienstag, 9. Oktober 2012 14:43:00 UTC-4 schrieb nonlinear:
>>>>
>>>> Correct, Judson.
>>>>
>>>> The book data is requested via this line in TraderAssistant.java:
>>>> socket.reqMktDepth(ticker, contract, 10);
>>>> The corresponding callback method in Trader.java:
>>>> updateMktDepth();
>>>> This is where the price is determined as the midpoint between the
>>>> current best bid and current best ask.
>>>>
>>>> The volume data is requested via this line in TraderAssistant.java:
>>>> socket.reqMktData(ticker, contract, "", false);
>>>> The corresponding callback method in Trader.java:
>>>> tickSize()
>>>> Price data (such as the "last price") can also be handled here, but JBT
>>>> only uses the volume data here.
>>>>
>>>> The subscription to market depth and volume happens here:
>>>>         if (!subscribedTickers.contains(**ticker)) {
>>>>             subscribedTickers.add(ticker);
>>>>             socket.reqContractDetails(**strategy.getContract().m_**conId,
>>>> strategy.getContract());
>>>>             eventReport.report(**JBookTrader.APP_NAME, "Requested
>>>> contract details for instrument " + instrument);
>>>>             socket.reqMktDepth(ticker, contract, 10);
>>>>             eventReport.report(**JBookTrader.APP_NAME, "Requested book
>>>> data for instrument " + instrument);
>>>>             socket.reqMktData(ticker, contract, "", false);
>>>>             eventReport.report(**JBookTrader.APP_NAME, "Requested
>>>> market data for instrument " + instrument);
>>>>         }
>>>>
>>>>
>>>> What I suggested to Klaus is that we can detect the loss of market data
>>>> via the error() method, and resubscribe if this happens. Klaus, I'll see if
>>>> I can make that code change and I'll send it over to you to test. Are you
>>>> OK with it?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, Oct 9, 2012 at 1:58 PM, Judson Wilson <[email protected]>wrote:
>>>>
>>>>> I thought price was not coming from the same stream as volume, i
>>>>> thought it comes from the book stream (isn't it the midpoint of the
>>>>> best bid/ask on the book?)
>>>>>
>>>>>
>>>>> On Tue, Oct 9, 2012 at 8:59 AM, Klaus <[email protected]> wrote:
>>>>> > Dear nonlinear,
>>>>> >
>>>>> > what irritates me most is that it partially recovers: some data (for
>>>>> the
>>>>> > same instrument) is reconnected and correctly logged (volume = at
>>>>> least I
>>>>> > assume it is correct, it is at least reasonable), while price is not
>>>>> > correctly logged. To me this looks more like a SW issue, as both
>>>>> types of
>>>>> > data are coming from the same stream.
>>>>> > Regarding network connection, I assume there is probably few better
>>>>> > connections than AWS. It certainly is way ahead of private
>>>>> > connections I dealt with.  It might also be interesting to note that
>>>>> I do
>>>>> > not use TWS, but IB Gateway.
>>>>> >
>>>>> > Cheers
>>>>> >    Klaus
>>>>> >
>>>>> >
>>>>> > Am Montag, 8. Oktober 2012 10:44:27 UTC-4 schrieb nonlinear:
>>>>> >>
>>>>> >> Thanks for reporting the problem, Klaus. With respect to the
>>>>> midnight
>>>>> >> market data interruptions, this has always been the case, as IB
>>>>> servers
>>>>> >> restart at that time. The expected behavior is that once the
>>>>> restart is
>>>>> >> completed, the market data resumes and TWS and JBT would resume
>>>>> receiving
>>>>> >> the data stream without the need to restart. However, I noticed that
>>>>> >> occasionally this fails. My remedy is restart both TWS and JBT
>>>>> every day in
>>>>> >> the morning before regular trading starts. With respect to the
>>>>> interruptions
>>>>> >> during the other times of the day, I belive it all has to do with
>>>>> the
>>>>> >> quality of your network connection. The better quality, the less
>>>>> frequent is
>>>>> >> the loss. In my experience, both JBT and TWS recover from these
>>>>> >> interruptions (except for the occasional non-recoverable midnight
>>>>> resets).
>>>>> >> The typical pattern in the log is the message "market data lost",
>>>>> followed
>>>>> >> by in a minute or two by message "market data restored". Now, with
>>>>> respect
>>>>> >> to the stock data that you see in the TWS log, it's probably your
>>>>> standard
>>>>> >> subscription. I'd suggest visiting your "market subscriptions" page
>>>>> >> associated with your account on the IB we site.
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >> On Mon, Oct 8, 2012 at 9:45 AM, Klaus <[email protected]> wrote:
>>>>> >>>
>>>>> >>> Just had the same again. This time at 3:25 Monday morning.
>>>>> >>> Registered a temporary connection loss in the event report. Book
>>>>> and
>>>>> >>> price data did not change for any of the collected data from
>>>>> thereon, but
>>>>> >>> volume does.
>>>>> >>>
>>>>> >>> In addition, I found the following messages in the terminal window.
>>>>> >>> Perhaps somehow can make sense of all this?
>>>>> >>> (I include one message before and after for context)
>>>>> >>> ---
>>>>> >>> 03:08:11:547 JTS-CCPPing-269: Warning: not received heartbeat at
>>>>> 20904000
>>>>> >>> elapsed:11000
>>>>> >>> 03:25:30:728 JTS-PostAuthenticate-513: pre-logon message
>>>>> successfully
>>>>> >>> sent
>>>>> >>> 03:25:36:225 AWT-EventQueue-0: Warning: hot restart not equal to
>>>>> quick
>>>>> >>> restart
>>>>> >>> 03:25:36:226 AWT-EventQueue-0: Unsubscribe MD before routing table
>>>>> >>> rerequest
>>>>> >>> 03:25:36:227 AWT-EventQueue-0: Unsubscribe HMDS before updating
>>>>> routing
>>>>> >>> table
>>>>> >>> 03:25:36:227 AWT-EventQueue-0: Could not find route table entry for
>>>>> >>> path:exch=NEWS secType=STK currency=USD dataType=DayChart
>>>>> >>> 03:25:36:228 AWT-EventQueue-0: No data of type DayChart is
>>>>> available for
>>>>> >>> the exchange 'NEWS' and the security type 'Stock'
>>>>> >>> 03:25:36:228 AWT-EventQueue-0: Could not find route table entry for
>>>>> >>> path:exch=RTRSFND secType=STK currency=USD dataType=DayChart
>>>>> >>> 03:25:36:228 AWT-EventQueue-0: No data of type DayChart is
>>>>> available for
>>>>> >>> the exchange 'RTRSFND' and the security type 'Stock'
>>>>> >>> 03:25:36:228 AWT-EventQueue-0: Could not find route table entry for
>>>>> >>> path:exch=RTRSFND secType=STK currency=USD dataType=DayChart
>>>>> >>> 03:25:36:228 AWT-EventQueue-0: No data of type DayChart is
>>>>> available for
>>>>> >>> the exchange 'RTRSFND' and the security type 'Stock'
>>>>> >>> 03:25:36:229 AWT-EventQueue-0: Reconnected!
>>>>> >>> 03:25:37:151 JTS-ForwardRouting-HISTORICAL_**DATA-532:
>>>>> >>> handleCompatibleRouting HISTORICAL_DATA compmode=true ready=false
>>>>> >>> farm=ushmds
>>>>> >>> 03:25:37:939 JTS-ForwardRouting-MARKET_**DATA-536:
>>>>> handleCompatibleRouting
>>>>> >>> MARKET_DATA compmode=true ready=false farm=usfarm
>>>>> >>> 03:26:36:399 JTS-Fuse-sd-533: Reset transferrable socket:ushmds
>>>>> >>> gw1.ibllc.com:4000
>>>>> >>> 03:26:37:187 JTS-Fuse-sd-537: Reset transferrable socket:usfarm
>>>>> >>> gw1.ibllc.com:4000
>>>>> >>> 05:20:18:052 JTS-CCPPing-516: Warning: not received heartbeat at
>>>>> 28813000
>>>>> >>> elapsed:11000
>>>>> >>> ------
>>>>> >>>
>>>>> >>> Data that is collected is only for the three instruments: EUR, NQ,
>>>>> ES
>>>>> >>> (thus I am puzzled also by the stock request above)
>>>>> >>>
>>>>> >>> Cheers
>>>>> >>>   Klaus
>>>>> >>>
>>>>> >>>
>>>>> >>> Am Montag, 1. Oktober 2012 10:42:52 UTC-4 schrieb Klaus:
>>>>> >>>>
>>>>> >>>> Hi,
>>>>> >>>>
>>>>> >>>> for quite some time, I am using JBT to gather data. For this
>>>>> purpose, it
>>>>> >>>> is running on a AWS micro-instance.
>>>>> >>>> Once in a while I found it stuck (actually , but was not sure
>>>>> where it
>>>>> >>>> was coming from). Usually the happened also after a
>>>>> >>>> full week of data.
>>>>> >>>>
>>>>> >>>> However, today it happened again and I found some strange things
>>>>> (I
>>>>> >>>> start recording usually some time Sunday evening and let it run
>>>>> till
>>>>> >>>> Friday). Perhaps someone has an idea where it might come from.
>>>>> The fact is,
>>>>> >>>> it seems not data itself gets stuck only the price information is
>>>>> kept the
>>>>> >>>> same: the volume does continue to change.
>>>>> >>>>
>>>>> >>>> This is how the end of the recording looks like: then there is a
>>>>> 30sec
>>>>> >>>> gap where I restarted JBT.
>>>>> >>>>
>>>>> >>>> 100112,101425,-11.6,1.28335,14
>>>>> >>>>
>>>>> >>>> 100112,101426,-11.6,1.28335,6
>>>>> >>>>
>>>>> >>>> 100112,101427,-11.6,1.28335,0
>>>>> >>>>
>>>>> >>>> 100112,101458,9.95,1.29335,0
>>>>> >>>>
>>>>> >>>> 100112,101459,9.16,1.29335,2
>>>>> >>>>
>>>>> >>>> 100112,101500,8.24,1.29335,1
>>>>> >>>>
>>>>> >>>> The gap is not due to a change in the market, but because the data
>>>>> >>>> before was no longer correct (btw, this is the EUR)
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> This is the part of the data where it seemed to happen:
>>>>> >>>>
>>>>> >>>> 100112,001556,-9.99,1.2833,0
>>>>> >>>>
>>>>> >>>> 100112,001557,-4.27,1.28325,0
>>>>> >>>>
>>>>> >>>> 100112,001558,-2.62,1.28325,0
>>>>> >>>>
>>>>> >>>> 100112,001559,-11.47,1.28335,**16
>>>>> >>>>
>>>>> >>>> 100112,001600,-9.75,1.2833,1
>>>>> >>>>
>>>>> >>>> 100112,001601,-10.32,1.2833,0
>>>>> >>>>
>>>>> >>>> 100112,001602,-10.26,1.2833,0
>>>>> >>>>
>>>>> >>>> 100112,001603,-13.42,1.28335,1
>>>>> >>>>
>>>>> >>>> 100112,001604,-13.61,1.28335,0
>>>>> >>>>
>>>>> >>>> 100112,001605,-12.64,1.28335,0
>>>>> >>>>
>>>>> >>>> 100112,001606,-12.04,1.28335,0
>>>>> >>>>
>>>>> >>>> 100112,001607,-11.83,1.28335,0
>>>>> >>>>
>>>>> >>>> 100112,001608,-11.71,1.28335,0
>>>>> >>>>
>>>>> >>>> 100112,001609,-11.71,1.28335,0
>>>>> >>>>
>>>>> >>>> 100112,001610,-11.71,1.28335,0
>>>>> >>>>
>>>>> >>>> 100112,001611,-11.71,1.28335,0
>>>>> >>>>
>>>>> >>>> 100112,001612,-11.93,1.28335,0
>>>>> >>>>
>>>>> >>>> 100112,001613,-11.98,1.28335,0
>>>>> >>>>
>>>>> >>>> 100112,001614,-11.04,1.28335,7
>>>>> >>>>
>>>>> >>>> the price keeped changing until 001602, then was stuck - as far
>>>>> as I
>>>>> >>>> could see in the file all the way until I restarted.
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> The following is an excerpt from the Eventreport file - it
>>>>> contains the
>>>>> >>>> end before the restart (the were no further events recorded)
>>>>> >>>>
>>>>> >>>> 09/30/12 23:59:05.196 IB API 2103: Market data farm connection is
>>>>> >>>> broken:usfuture
>>>>> >>>>
>>>>> >>>> 09/30/12 23:59:21.450 IB API 2104: Market data farm connection is
>>>>> >>>> OK:usfuture
>>>>> >>>>
>>>>> >>>> 10/01/12 00:14:04.896 IB API 317: Market depth data has been
>>>>> RESET.
>>>>> >>>> Please empty deep book contents before applying any new entries.
>>>>> (for id 3)
>>>>> >>>>
>>>>> >>>> 10/01/12 00:14:04.896 My JBookTrader Market data for book 3 has
>>>>> been
>>>>> >>>> reset.
>>>>> >>>>
>>>>> >>>> 10/01/12 00:14:04.896 IB API 317: Market depth data has been
>>>>> RESET.
>>>>> >>>> Please empty deep book contents before applying any new entries.
>>>>> (for id 2)
>>>>> >>>>
>>>>> >>>> 10/01/12 00:14:04.896 My JBookTrader Market data for book 2 has
>>>>> been
>>>>> >>>> reset.
>>>>> >>>>
>>>>> >>>> 10/01/12 00:14:04.896 IB API 317: Market depth data has been
>>>>> RESET.
>>>>> >>>> Please empty deep book contents before applying any new entries.
>>>>> (for id 1)
>>>>> >>>>
>>>>> >>>> 10/01/12 00:14:04.896 My JBookTrader Market data for book 1 has
>>>>> been
>>>>> >>>> reset.
>>>>> >>>>
>>>>> >>>> 10/01/12 00:14:04.896 IB API 2103: Market data farm connection is
>>>>> >>>> broken:usfuture
>>>>> >>>>
>>>>> >>>> 10/01/12 00:14:42.166 IB API 2104: Market data farm connection is
>>>>> >>>> OK:usfuture
>>>>> >>>>
>>>>> >>>> 10/01/12 00:15:48.860 IB API 1100: Connectivity between IB and
>>>>> Trader
>>>>> >>>> Workstation has been lost.
>>>>> >>>>
>>>>> >>>> 10/01/12 00:16:16.630 IB API 1102: Connectivity between IB and
>>>>> Trader
>>>>> >>>> Workstation has been restored - data maintained.
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> So, it looks like connectivity was lost and restored, but from
>>>>> this
>>>>> >>>> point forward no price updates were recorded..
>>>>> >>>>
>>>>> >>>> Any idea what is going on, would be helpful.
>>>>> >>>>
>>>>> >>>> Cheers
>>>>> >>>>   Klaus
>>>>> >>>>
>>>>> >>>>
>>>>> >>> --
>>>>> >>> You received this message because you are subscribed to the Google
>>>>> Groups
>>>>> >>> "JBookTrader" group.
>>>>> >>> To view this discussion on the web visit
>>>>> >>> https://groups.google.com/d/**msg/jbooktrader/-/O4d4rFkJ3F0J<https://groups.google.com/d/msg/jbooktrader/-/O4d4rFkJ3F0J>
>>>>> **.
>>>>> >>>
>>>>> >>> To post to this group, send email to [email protected].
>>>>> >>> To unsubscribe from this group, send email to
>>>>> >>> jbooktrader...@googlegroups.**com.
>>>>> >>>
>>>>> >>> For more options, visit this group at
>>>>> >>> http://groups.google.com/**group/jbooktrader?hl=en<http://groups.google.com/group/jbooktrader?hl=en>
>>>>> .
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> > --
>>>>> > You received this message because you are subscribed to the Google
>>>>> Groups
>>>>> > "JBookTrader" group.
>>>>> > To view this discussion on the web visit
>>>>> > https://groups.google.com/d/**msg/jbooktrader/-/tEYk3_95L5EJ<https://groups.google.com/d/msg/jbooktrader/-/tEYk3_95L5EJ>
>>>>> **.
>>>>> >
>>>>> > To post to this group, send email to [email protected].
>>>>> > To unsubscribe from this group, send email to
>>>>> > jbooktrader...@googlegroups.**com.
>>>>> > For more options, visit this group at
>>>>> > http://groups.google.com/**group/jbooktrader?hl=en<http://groups.google.com/group/jbooktrader?hl=en>
>>>>> .
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "JBookTrader" group.
>>>>> To post to this group, send email to [email protected].
>>>>> To unsubscribe from this group, send email to
>>>>> jbooktrader...@googlegroups.**com.
>>>>> For more options, visit this group at http://groups.google.com/**
>>>>> group/jbooktrader?hl=en<http://groups.google.com/group/jbooktrader?hl=en>
>>>>> .
>>>>>
>>>>>
>>>>  --
> You received this message because you are subscribed to the Google Groups
> "JBookTrader" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/jbooktrader/-/VQInXSoseSUJ.
>
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/jbooktrader?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"JBookTrader" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jbooktrader?hl=en.

Reply via email to