|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
FIX.IntConvertor.convert() throwing exceptionQuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html Greetings, I have finally tracked down a bug that has been giving me problems for some time. I'm getting an exception thrown in the FIX.IntConvertor.convert(string) function, and I can't seem to figure out why. It always happens at the same place: in an Incremental Refresh message, I extract the NoMDEntries group. I then try to extract the "price level" of the update (int field 1023), and here is where I get the exception. Here is the stack trace: External component has thrown an exception. at _CxxThrowException(Void* , _s__ThrowInfo* ) at FIX.IntConvertor.convert(basic_string<char\,std::char_traits<char>\,std::allocator<char> >* value) at QuickFix.Group.getField(IntField field) at MDPDataServer.MDPMarketDataProvider.ProcessMarketDataIncrementalRefresh and here's the line of code that's causing the exception: // message is a QuickFix.Message object constructed from the string below int numEntries = message.getInt(268); for (uint i = 0; i < numEntries; i++) { QuickFix44.MarketDataIncrementalRefresh.NoMDEntries group = new QuickFix44.MarketDataIncrementalRefresh.NoMDEntries(); message.getGroup(i + 1, group); int priceLevel = group.getField(new IntField(1023)).getValue(); // exception occurs here ... What's strange is that I process millions of market data messages every day and this only happens maybe 2 or 3 times a week -- my first thought was that this was a FAST decoding issue (when I'm building the text representation of the FIX message before QuickFix is even used), but at such a low probability of occurrence, I can't imagine this is a decoding issue. Here is the message that is throwing the exception; I've highlighted the 1023 entries, and they all look fine to me -- any thoughts? (also, to make it more readable/email friendly, I removed the stop-bits and replaced them with the | character). Thanks, Rick 8=FIX.4.2 | 9=1961 | 35=X | 34=1304872 | 49=CME | 52=20080624115930866 | 75=20080624 | 268=22 | 279=1 | 1023=2 | 269=0 | 270=45 | 271=85 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801005 | 83=13568 | 279=1 | 1023=1 | 269=0 | 270=94 | 271=293 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801101 | 83=38117 | 279=1 | 1023=1 | 269=0 | 270=112.5 | 271=293 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801109 | 83=35245 | 279=1 | 1023=2 | 269=1 | 270=9551 | 271=1743 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=803001 | 83=231922 | 279=1 | 1023=1 | 269=1 | 270=9631 | 271=1134 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=803900 | 83=278737 | 279=1 | 1023=2 | 269=1 | 270=9631.5 | 271=12656 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=803900 | 83=278738 | 279=1 | 1023=1 | 269=1 | 270=9536 | 271=1175 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=806001 | 83=204449 | 279=1 | 1023=2 | 269=1 | 270=9536.5 | 271=13774 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=806001 | 83=204450 | 279=1 | 1023=1 | 269=1 | 270=9612 | 271=332 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=806901 | 83=422681 | 279=1 | 1023=2 | 269=1 | 270=9612.5 | 271=17576 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=806901 | 83=422682 | 279=1 | 1023=2 | 269=1 | 270=9592 | 271=30035 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=809901 | 83=312614 | 279=1 | 1023=2 | 269=0 | 270=17 | 271=47 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=800915 | 83=20839 | 279=1 | 1023=1 | 269=0 | 270=43 | 271=58 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801105 | 83=10961 | 279=2 | 1023=1 | 269=1 | 270=44.5 | 271=12 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801105 | 83=10962 | 279=1 | 1023=1 | 269=1 | 270=45 | 271=12 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801105 | 83=10963 | 279=0 | 1023=2 | 269=1 | 270=45.5 | 271=216 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801105 | 83=10964 | 279=1 | 1023=1 | 269=0 | 270=60 | 271=58 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801113 | 83=9462 | 279=1 | 1023=2 | 269=0 | 270=-4 | 271=24 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801208 | 83=3856 | 279=2 | 1023=2 | 269=1 | 270=9495.5 | 271=49 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=803201 | 83=8643 | 279=0 | 1023=2 | 269=1 | 270=9496 | 271=93 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=803201 | 83=8644 | 279=1 | 1023=1 | 269=0 | 270=81 | 271=967 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=800208 | 83=76335 | 279=1 | 1023=2 | 269=0 | 270=80.5 | 271=409 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=800208 | 83=76336 | 1128=8 | 10=233 | ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ Quickfix-developers mailing list Quickfix-developers@... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
|
|
Re: FIX.IntConvertor.convert() throwing exceptionQuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html What's interesting is that I take the message text from the message that causes the exception and then basically recreate the QuickFix.Message object with this string in a separate application, and make the same calls, and I don't get the exception. So it seems pretty obvious to me this isn't a message-formatting issue -- does this shed any light onto what might be the problem? Not sure why my Exception text is so vague (" External component has thrown an exception."). Rick Lane wrote: Greetings, ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ Quickfix-developers mailing list Quickfix-developers@... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
|
|
|
|
|
Re: FIX.IntConvertor.convert() throwing exceptionQuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html Thanks again, Rick Rick Lane wrote: John Haldi discovered that IntConvertor.convert() is a static method -- I have 2 threads that run concurrently in the following manner: ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ Quickfix-developers mailing list Quickfix-developers@... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
| Free Forum Powered by Nabble | Forum Help |