|
From: Toli K. <to...@ma...> - 2007-06-05 01:20:29
|
In the spirit of answering my own questions, I have figured out my problem - it was a "user error" of sorts. Turns out I had a deadlock: since this was a quick-and-dirty sample app, i was stupid to send a MarketDataRequest from inside the onLogon() method. As a result, i had a lock on the DataDictionary and was waiting on SocketIoProcessor (mina's SSL processor) while the SocketIoProcessor was receiving a new message and was in turn waiting on the DataDictionary. So rest assured, SSL (if used correctly) does not drop any incoming messages. Here's a corollary question: it's obvious that sending messages out in onXXX callbacks can lead to deadlocks. Any advice/best practices on how to handle that situation, aside from handing work out to other threads/runnables? thanks! (stack dump with deadlock attached for the curious). On 6/4/07, Toli Kuznets <to...@ma...> wrote: > Hi, > > I'm using QFJ to connect to a broker via SSL. > > Every once in a while, i get in a situation where the underlying MINA > layer is seeing incoming FIX messages, but they don't seem to ever > make their way up to the application layer. > Connecting to the same broker without SSL, i'm seeing the same exact > incoming messages, but they don't ever get dropped. > > For example, during connection in the Mina output i'm seeing a Logon > (35=A) followed by a Trading Session Status (35=h). > The Logon comes through, but every once in a while the > TradingSessionStatus doesn't. > The broker logs shows them sending me a heartbeat and a test request, > but i never see that (even in Mina layer) so eventually i'm timed out > and disconnected. > > Is it possible that there's some race condition in the SSL decoding > code? i can't seem to trace where the entrypoint from Mina into QFJ > code is. > > The log with QFJ and Mina messages attached. > > -- > Toli Kuznets > http://www.marketcetera.com: Open-Source Trading Platform > download.run.trade. > > -- Toli Kuznets http://www.marketcetera.com: Open-Source Trading Platform download.run.trade. |