quickfix-developers Mailing List for QuickFIX (Page 79)
Brought to you by:
orenmnero
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
|
Feb
(5) |
Mar
(16) |
Apr
(15) |
May
(17) |
Jun
(33) |
Jul
(35) |
Aug
(34) |
Sep
(19) |
Oct
(40) |
Nov
(51) |
Dec
(43) |
2003 |
Jan
(45) |
Feb
(79) |
Mar
(124) |
Apr
(121) |
May
(132) |
Jun
(77) |
Jul
(110) |
Aug
(57) |
Sep
(48) |
Oct
(83) |
Nov
(60) |
Dec
(40) |
2004 |
Jan
(67) |
Feb
(72) |
Mar
(74) |
Apr
(87) |
May
(70) |
Jun
(96) |
Jul
(75) |
Aug
(147) |
Sep
(128) |
Oct
(83) |
Nov
(67) |
Dec
(42) |
2005 |
Jan
(110) |
Feb
(84) |
Mar
(68) |
Apr
(55) |
May
(51) |
Jun
(192) |
Jul
(111) |
Aug
(100) |
Sep
(79) |
Oct
(127) |
Nov
(73) |
Dec
(112) |
2006 |
Jan
(95) |
Feb
(120) |
Mar
(138) |
Apr
(127) |
May
(124) |
Jun
(97) |
Jul
(103) |
Aug
(88) |
Sep
(138) |
Oct
(91) |
Nov
(112) |
Dec
(57) |
2007 |
Jan
(55) |
Feb
(35) |
Mar
(56) |
Apr
(16) |
May
(20) |
Jun
(77) |
Jul
(43) |
Aug
(47) |
Sep
(29) |
Oct
(54) |
Nov
(39) |
Dec
(40) |
2008 |
Jan
(69) |
Feb
(79) |
Mar
(122) |
Apr
(106) |
May
(114) |
Jun
(76) |
Jul
(83) |
Aug
(71) |
Sep
(53) |
Oct
(75) |
Nov
(54) |
Dec
(43) |
2009 |
Jan
(32) |
Feb
(31) |
Mar
(64) |
Apr
(48) |
May
(38) |
Jun
(43) |
Jul
(35) |
Aug
(15) |
Sep
(52) |
Oct
(62) |
Nov
(62) |
Dec
(21) |
2010 |
Jan
(44) |
Feb
(10) |
Mar
(47) |
Apr
(22) |
May
(5) |
Jun
(54) |
Jul
(19) |
Aug
(54) |
Sep
(16) |
Oct
(15) |
Nov
(7) |
Dec
(8) |
2011 |
Jan
(18) |
Feb
(9) |
Mar
(5) |
Apr
(5) |
May
(41) |
Jun
(40) |
Jul
(29) |
Aug
(17) |
Sep
(12) |
Oct
(23) |
Nov
(22) |
Dec
(11) |
2012 |
Jan
(8) |
Feb
(24) |
Mar
(5) |
Apr
(5) |
May
(6) |
Jun
(5) |
Jul
(5) |
Aug
(5) |
Sep
(2) |
Oct
(9) |
Nov
(2) |
Dec
(18) |
2013 |
Jan
(25) |
Feb
(16) |
Mar
(8) |
Apr
(2) |
May
(16) |
Jun
(17) |
Jul
(2) |
Aug
(13) |
Sep
(3) |
Oct
(4) |
Nov
(1) |
Dec
|
2014 |
Jan
(2) |
Feb
|
Mar
(22) |
Apr
(9) |
May
(3) |
Jun
(1) |
Jul
(5) |
Aug
(11) |
Sep
(18) |
Oct
(4) |
Nov
(4) |
Dec
(3) |
2015 |
Jan
(2) |
Feb
|
Mar
|
Apr
(3) |
May
(4) |
Jun
(37) |
Jul
|
Aug
(4) |
Sep
(6) |
Oct
(1) |
Nov
(4) |
Dec
(2) |
2016 |
Jan
(9) |
Feb
(3) |
Mar
(7) |
Apr
(1) |
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
(7) |
Oct
(3) |
Nov
(16) |
Dec
|
2017 |
Jan
(1) |
Feb
(15) |
Mar
(2) |
Apr
(12) |
May
(4) |
Jun
(7) |
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
(23) |
Dec
(8) |
2018 |
Jan
(2) |
Feb
(4) |
Mar
(2) |
Apr
(8) |
May
(3) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(5) |
Nov
(3) |
Dec
|
2020 |
Jan
|
Feb
(4) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
(12) |
Aug
(5) |
Sep
(3) |
Oct
(1) |
Nov
|
Dec
(1) |
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Rick L. <ric...@gm...> - 2008-06-24 15:14:04
|
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, > > 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 | > > > |
From: Rick L. <ric...@gm...> - 2008-06-24 12:30:09
|
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 | |
From: Andrew R. \(TT\) <and...@tr...> - 2008-06-23 19:51:48
|
Never mind. I found what I needed in the Custom Classes article by Brian Erst. Thx. From: Andrew Renalds (TT) Sent: Monday, June 23, 2008 12:30 PM To: 'qui...@li...' Subject: Custom Messages and .Net Invoke I have developed a FIX GUI app which is an initiator. Thus, every time I receive an update, I pass it to the GUI as: public delegate void MessageListener(QuickFix.Message message); public MessageListener messageListeners; public void registerMessageListener(MessageListener ml) { messageListeners += ml; } public virtual void fromApp(QuickFix.Message message, QuickFix.SessionID sessionID) { if (_control != null && _control.InvokeRequired) { _control.Invoke(new MessageListener(messageListeners), new Object[] { message }); } } This has always worked great. Recently, the server to which I connect added a custom message that I needed to process. So I derived a new custom message. Specifically, I simply copied another 4.2 message from the C# QuickFIX source and modified it. I also created a custom message factory and added this new message to my data dictionary. Whenever I receive an update for a standard FIX message, everything still works fine. Whenever I receive an update for this new custom message, I get an invalid cast exception that points to my "_control.Invoke" line. System.InvalidCastException was unhandled Message="At least one element in the source array could not be cast down to the destination array type." Source="System.Windows.Forms" StackTrace: at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous) at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args) at QuickFix.TTQuickFix.fromApp(Message message, SessionID sessionID) in C:\Documents and Settings\me\My Documents\Visual Studio 2005\Projects\MyApp\MyApp\MyApp.cs:line 168 at Application.fromApp(Application* , Message* message, SessionID* sessionID) Why is this an invalid cast? What did I forget? Any help would be appreciated. |
From: Andrew R. \(TT\) <and...@tr...> - 2008-06-23 17:29:53
|
I have developed a FIX GUI app which is an initiator. Thus, every time I receive an update, I pass it to the GUI as: public delegate void MessageListener(QuickFix.Message message); public MessageListener messageListeners; public void registerMessageListener(MessageListener ml) { messageListeners += ml; } public virtual void fromApp(QuickFix.Message message, QuickFix.SessionID sessionID) { if (_control != null && _control.InvokeRequired) { _control.Invoke(new MessageListener(messageListeners), new Object[] { message }); } } This has always worked great. Recently, the server to which I connect added a custom message that I needed to process. So I derived a new custom message. Specifically, I simply copied another 4.2 message from the C# QuickFIX source and modified it. I also created a custom message factory and added this new message to my data dictionary. Whenever I receive an update for a standard FIX message, everything still works fine. Whenever I receive an update for this new custom message, I get an invalid cast exception that points to my "_control.Invoke" line. System.InvalidCastException was unhandled Message="At least one element in the source array could not be cast down to the destination array type." Source="System.Windows.Forms" StackTrace: at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous) at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args) at QuickFix.TTQuickFix.fromApp(Message message, SessionID sessionID) in C:\Documents and Settings\me\My Documents\Visual Studio 2005\Projects\MyApp\MyApp\MyApp.cs:line 168 at Application.fromApp(Application* , Message* message, SessionID* sessionID) Why is this an invalid cast? What did I forget? Any help would be appreciated. |
From: mwins <mar...@wi...> - 2008-06-23 15:41:02
|
QuickFix engine for C++. I would like to reject any messages where (97)PossResend=Y and the (11)CliOrderId is not unique. Does the engine support this? I am using the File store option to store the messages. If the engine does not support this, is there an API to obtain the messages from the store? E.g. How could I load in the store to check whether I have received the CliOrdId before? Thanks in advance. -- View this message in context: http://www.nabble.com/PossResend-and-rejecting-duplicates-tp18071972p18071972.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: Kbo K. <kbo...@gm...> - 2008-06-22 14:21:59
|
Hi all, I've come across an issue that looks like a bug to me - i.e. not in accordance with the FIX protocol. My system (QuickFix initiator) logs in, only to find out that the sequence number is too high (508 instead of 507). That's cool, so it queues the current message (#508) and sends a resend request (0 to 507). The counterparty responds, sending a sequence reset from 507 to 508 (basically saying there's nothing to send, and that 508 is the next sequence number, I assume). Now here's the problem - my system is satisfied, sets the next expected number to 508, and processes the queued message (#508, remember?). This, however, advances the sequence number... On the next heartbeat, my system gets a heartbeat response, with a sequence number of (did you guess?) 508... which is reasonable for the counterparty, but too low for my system, and so it disconnects. This can go on forever. What should I do? I've read the FIX specs, and it explicitly say that the NewSeqNum field in the SequenceReset message is the next number sent by the counterparty, so I believe the bug is with QuickFix, talking into account the seqnum of the queued message... Help, please... Thanks, Kbo |
From: Neeraj R. <rn...@ya...> - 2008-06-22 10:30:07
|
We are using FIX 4.2 My counterparty is sending execution reports with tags 337 and 375, but no tag 382. Quickfix is rejecting the mesg with 58="field 337 not supported for this msg type" I have a testing engine written in quickfix. I tried to simulate the error by sending similar fields, apparently, quickfix adds tag 382 when creating a group. Q1. Is there any way I can process the counter party mesg and not have it rejected. We know they will only send 1 repeating group ? Q2. Is there any way we can simulate this bad mesg in test environment with quickfix ? thanks Neeraj |
From: <Nil...@co...> - 2008-06-20 07:58:37
|
I guess you need to use your own encryption algo to do the same. QF doesn't provide any. Simple thing that you can do is, just create MD5 hash of the pwd on client side and store MD5 hash on the server side, compare the MD5 hash stored on server with the one received from the client. Thanks -Nilesh >-----Original Message----- >From: qui...@li... [mailto:quickfix- >dev...@li...] On Behalf Of Vincent Predoehl >Sent: Friday, June 20, 2008 2:35 AM >To: qui...@li... >Subject: [Quickfix-developers] Encrypting the Password field > >QuickFIX Documentation: >http://www.quickfixengine.org/quickfix/doc/html/index.html >QuickFIX Support: http://www.quickfixengine.org/services.html This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Any unauthorised review, use, disclosure, dissemination, forwarding, printing or copying of this email or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful. |
From: Vincent P. <vpr...@ph...> - 2008-06-19 21:05:11
|
How do you encrypt the password field? I tried calling setField with field 98=2 ( EncrypMethod), but you can still see the clear text password in the QF message. -- VP void toAdmin( FIX::Message& m, const FIX::SessionID& id) { cout << "SessionID: " << id << endl; m.setField(98, "2"); m.setField(553,"TEST"); m.setField(554,"x0x0x0"); } |
From: Vincent P. <vpr...@ph...> - 2008-06-19 20:05:28
|
On Jun 19, 2008, at 8:31 AM, or...@qu... wrote: > Have you turned on logging? The Logon message might be being rejected > for other reasons. I got this to work in the server: void QFApplication::fromAdmin( const FIX::Message& m, const FIX::SessionID& id) t { Username u; m.getField(u); Password pwd; m.getField(pwd); cout << "fromAdmin: " << id << endl; cout << "\tUsername: " << u.getString() << ", Password: " << pwd.getString() } and this in the client: void QFApplication::fromAdmin( const FIX::Message& m, const FIX::SessionID& id) t { Username u; m.getField(u); Password pwd; m.getField(pwd); cout << "fromAdmin: " << id << endl; cout << "\tUsername: " << u.getString() << ", Password: " << pwd.getString() } I thought I tried this, but whatever … it works now. If someone has the time explain how the Logon variant of MessageCracker::onMessage works, I would be interested to know, but I have the logons working, so The ScreenLogFactory is set up and I also tried to enable server side postgreSQL logging in the config file, which is not working for me. [DEFAULT] ConnectionType=acceptor SocketAcceptPort=8003 SocketReuseAddress=Y StartTime=00:00:00 EndTime=00:00:00 PostgreSQLStoreDatabase=log PostgreSQLStoreUser=vpredoehl and file logging on the client side: [DEFAULT] ConnectionType=initiator HeartBtInt=30 ReconnectInterval=1 FileStorePath=store FileLogPath=log StartTime=00:00:00 EndTime=00:00:00 UseDataDictionary=N SocketConnectHost=localhost There is apparently another hoop to jump through to get it to log, but I don't know what it is and I would like to know that too. > >> -------- Original Message -------- >> Subject: Re: [Quickfix-developers] Logon passwords >> From: Vincent Predoehl <vpr...@ph...> >> Date: Wed, June 18, 2008 7:36 pm >> To: qui...@li... >> >> >> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ >> html/index.html >> QuickFIX Support: http://www.quickfixengine.org/services.html<hr>I >> didn't get a response today, and I do need to get this figured out, >> so I will clarify exactly what I need to do: >> >> I'm writing an ecn engine that will accept logins from multiple user >> clients, so I need to handle both the sending and receiving of the >> Logon message. I'm still a little confused because I read on the >> forum that I could use the fromAdmin handler to verify the password. >> However, when I wrote code to do that, the fromAdmin handler never >> fired when the server app received the Logon message. >> >> Unfortunately, searching for "Logon message" and other variants turn >> up over 1,000 matches to scour through, so it's difficult to find the >> correct answer if this thread has already been touched upon. :) -- VP |
From: <or...@qu...> - 2008-06-19 13:32:05
|
Have you turned on logging? The Logon message might be being rejected for other reasons. > -------- Original Message -------- > Subject: Re: [Quickfix-developers] Logon passwords > From: Vincent Predoehl <vpr...@ph...> > Date: Wed, June 18, 2008 7:36 pm > To: qui...@li... > > > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html<hr>I didn't get a response today, and I do need to get this figured out, > so I will clarify exactly what I need to do: > > I'm writing an ecn engine that will accept logins from multiple user > clients, so I need to handle both the sending and receiving of the > Logon message. I'm still a little confused because I read on the > forum that I could use the fromAdmin handler to verify the password. > However, when I wrote code to do that, the fromAdmin handler never > fired when the server app received the Logon message. > > Unfortunately, searching for "Logon message" and other variants turn > up over 1,000 matches to scour through, so it's difficult to find the > correct answer if this thread has already been touched upon. :) > > On Jun 17, 2008, at 4:03 PM, or...@qu... wrote: > > > Just to be clear, because I may have gotten a different impression > > from > > your first email. Are you trying to send outgoing logons with a > > username and password, or are you trying to validate passwords on > > incoming logon messages? > > > > --oren > > > >> -------- Original Message -------- > >> Subject: Re: [Quickfix-developers] Logon passwords > >> From: Vincent Predoehl <vpr...@ph...> > >> Date: Tue, June 17, 2008 2:39 pm > >> To: qui...@li... > >> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ > >> html/index.html > >> QuickFIX Support: http://www.quickfixengine.org/ > >> services.html<hr>On Jun 17, 2008, at 11:32 AM, > >> or...@qu... wrote: > >>> You should be checking the Logon message, not NewOrderSingle for > >>> passwords. > >> The Logon message has Username and Password fields, so I can create a > >> Logon message with those fields, but what then? Do I just pass the > >> message to FIX::Session:sendToTarget like all other messages? Seems > >> like that would work. > >> Also, are the SenderCompID and TargetCompID different entities from > >> the username field in Logon? Looks like I can get at the target/ > >> sender IDs in fromAdmin, but those appear to be different than the > >> username to me. > >>> > >>> --oren > >>> > >>>> I'm going to move my password checking out of the fromAdmin > >>>> method to > >>>> the overloaded onMessage methods for each message to be > >>>> authenticated, like this: This will move password checking down > >>>> from > >>>> the session level to the message level. > >>>> void QFApplication::onMessage(const FIX44::NewOrderSingle& m, const > >>>> SessionID & id) > >>>> { > >>>> Password pwd; m.getField(pwd); > >>>> if(pwd.getString() != string(dbpwd)) throw > >>>> FIX::RejectLogon(); > >>>> } > >>>> Then on the sender side, I have this: > >>>> FIX44::NewOrderSingle o(...); > >>>> o.setField(FIX::Password("x0x0x0"); > >>>> FIX::Session::sendToTarget(o); > >>>> This compiles, but when it runs, I get this stuff on the acceptor > >>>> side: > >>>> <20080617-16:20:57, FIX.4.4:MP->CLIENT, incoming> > >>>> (8=FIX. > >>>> 4.49=15035=D34=158249=CLIENT52=20080617-16:20:38.99156=MP1=314411=1 > >>>> 58 > >>>> 138 > >>>> =4740=144=4070.3099223758654=255=MBI60=20080617-16:20:3864=F1554=x0 > >>>> x0 > >>>> x01 > >>>> 0=243) > >>>> <20080617-16:20:57, FIX.4.4:MP->CLIENT, event> > >>>> (Message 1582 Rejected: Tag not defined for this message type: > >>>> 554) > >>>> On Jun 17, 2008, at 10:18 AM, or...@qu... wrote: > >>> > >>> > >> -- > >> VP<hr>--------------------------------------------------------------- > >> ---------- > >> 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<hr>_______________________________________________ > >> Quickfix-developers mailing list > >> Qui...@li... > >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > > -- VP<hr>------------------------------------------------------------------------- > 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<hr>_______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Vincent P. <vpr...@ph...> - 2008-06-19 00:37:06
|
I didn't get a response today, and I do need to get this figured out, so I will clarify exactly what I need to do: I'm writing an ecn engine that will accept logins from multiple user clients, so I need to handle both the sending and receiving of the Logon message. I'm still a little confused because I read on the forum that I could use the fromAdmin handler to verify the password. However, when I wrote code to do that, the fromAdmin handler never fired when the server app received the Logon message. Unfortunately, searching for "Logon message" and other variants turn up over 1,000 matches to scour through, so it's difficult to find the correct answer if this thread has already been touched upon. :) On Jun 17, 2008, at 4:03 PM, or...@qu... wrote: > Just to be clear, because I may have gotten a different impression > from > your first email. Are you trying to send outgoing logons with a > username and password, or are you trying to validate passwords on > incoming logon messages? > > --oren > >> -------- Original Message -------- >> Subject: Re: [Quickfix-developers] Logon passwords >> From: Vincent Predoehl <vpr...@ph...> >> Date: Tue, June 17, 2008 2:39 pm >> To: qui...@li... >> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ >> html/index.html >> QuickFIX Support: http://www.quickfixengine.org/ >> services.html<hr>On Jun 17, 2008, at 11:32 AM, >> or...@qu... wrote: >>> You should be checking the Logon message, not NewOrderSingle for >>> passwords. >> The Logon message has Username and Password fields, so I can create a >> Logon message with those fields, but what then? Do I just pass the >> message to FIX::Session:sendToTarget like all other messages? Seems >> like that would work. >> Also, are the SenderCompID and TargetCompID different entities from >> the username field in Logon? Looks like I can get at the target/ >> sender IDs in fromAdmin, but those appear to be different than the >> username to me. >>> >>> --oren >>> >>>> I'm going to move my password checking out of the fromAdmin >>>> method to >>>> the overloaded onMessage methods for each message to be >>>> authenticated, like this: This will move password checking down >>>> from >>>> the session level to the message level. >>>> void QFApplication::onMessage(const FIX44::NewOrderSingle& m, const >>>> SessionID & id) >>>> { >>>> Password pwd; m.getField(pwd); >>>> if(pwd.getString() != string(dbpwd)) throw >>>> FIX::RejectLogon(); >>>> } >>>> Then on the sender side, I have this: >>>> FIX44::NewOrderSingle o(...); >>>> o.setField(FIX::Password("x0x0x0"); >>>> FIX::Session::sendToTarget(o); >>>> This compiles, but when it runs, I get this stuff on the acceptor >>>> side: >>>> <20080617-16:20:57, FIX.4.4:MP->CLIENT, incoming> >>>> (8=FIX. >>>> 4.49=15035=D34=158249=CLIENT52=20080617-16:20:38.99156=MP1=314411=1 >>>> 58 >>>> 138 >>>> =4740=144=4070.3099223758654=255=MBI60=20080617-16:20:3864=F1554=x0 >>>> x0 >>>> x01 >>>> 0=243) >>>> <20080617-16:20:57, FIX.4.4:MP->CLIENT, event> >>>> (Message 1582 Rejected: Tag not defined for this message type: >>>> 554) >>>> On Jun 17, 2008, at 10:18 AM, or...@qu... wrote: >>> >>> >> -- >> VP<hr>--------------------------------------------------------------- >> ---------- >> 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<hr>_______________________________________________ >> Quickfix-developers mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers > -- VP |
From: Mangalore, C. <cha...@cr...> - 2008-06-18 06:56:45
|
Hi Oren, Is there any way I can find out the version from the .so? From the size and timestamp it seems like we are using the old version of the library. I am compiling with the 1.12.4, Will keep you updated about the same. Thanks -Channa -----Original Message----- From: or...@qu... [mailto:or...@qu...] Sent: 17 June 2008 23:21 To: Mangalore, Channabasava Cc: qui...@li... Subject: RE: [Quickfix-developers] Core after converting to multi threadedapplication Version of QuickFIX? This looks like something that has been fixed in a previous release, I would be very interested to hear if this is happening with 1.12.4 --oren > -------- Original Message -------- > Subject: Re: [Quickfix-developers] Core after converting to multi > threadedapplication > From: "Mangalore, Channabasava" > <cha...@cr...> > Date: Sun, June 15, 2008 11:47 pm > To: "Mangalore, Channabasava" > <cha...@cr...>,quickfix-developers@lists.s > ourceforge.net QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html<hr>Some > more info I am using FIX42 messaging And it is a C++ application > running on SunOS 5.8 Generic_117000-05 sun4u sparc SUNW,Sun-Fire-480R > Mostly it is happening when the system is loaded. > Thanks > Channa > > _____________________________________________ > > From: Mangalore, Channabasava > > Sent: 16 June 2008 12:25 > > To: qui...@li... > > Subject: Core after converting to multi threaded application > > Importance: High > > > > Dear All, > > > > I was trying to decouple the fromApp message receiving and the local > > data processing. > > I am copying the message received from the fromApp and pushing into > > the queue. In the our test environment it worked wonderfully and > > passed all the required test cases without any problem. > > > > When we rolled out to production it started coring :-( below is the > > stack trace of the core > > > > (dbx) where > > current thread: t@15 > > =>[1] t_delete(0x5d11e8, 0xfe43c008, 0xfe4427cc, 0xfe44284c, > > 0xfe442848, 0x0), at 0xfe3c27f0 > > [2] _malloc_unlocked(0x44, 0x1d20c58, 0xfe43c008, 0x48, 0x5d11e8, > > 0x0), at 0xfe3c1e80 > > [3] malloc(0x44, 0x0, 0xfe43c008, 0xfe3c1ce4, 0x222e8, 0x920f4), > > at > > 0xfe3c1cd8 > > [4] malloc(0xfe3c1cb8, 0xfe3c1cb8, 0xfe5e3d20, 0x44, 0xc14, > > 0xc00), at 0xfe551c68 > > [5] operator new(0x44, 0xfe3c1cb8, 0x13b88, 0xfe551c68, > > 0xfee1a08c, 0x44), at 0xfee06528 > > [6] FIX::message_order::message_order(0x11, 0x523f38, 0x1400, 0x3, > > 0x17ac, 0xfe904df4), at 0xfe88a1a0 > > [7] FIX::Message::setGroup(0xf6fffad4, 0x61713c, 0x617138, > > 0xf6fffc5c, 0xf6fff974, 0x0), at 0xfe855d30 > > [8] FIX::Message::setString(0xf6fffad4, 0xf6fffc5c, 0x1, 0x5a3090, > > 0x6872b020, 0xf6fff94c), at 0xfe855a60 > > [9] FIX::Message::Message(0xf6fffad4, 0xf6fffc5c, 0x5a3090, > > 0xf6fffb88, 0xf6fffb50, 0xf6fffb30), at 0xfe853274 > > [10] FIX::Session::next(0x5a2f10, 0xf6fffc5c, 0x1, 0xf0e3d8, > > 0x76294, 0xfe909b74), at 0xfe87db3c > > [11] FIX::ThreadedSocketConnection::processStream(0x52a8e8, > > 0x1dfe550, 0x0, 0x2df240, 0x0, 0xfe5e3d20), at 0xfe88ebe4 > > [12] FIX::ThreadedSocketConnection::readQueue(0x52a8e8, > > 0xfe90b5a4, 0x4851049f, 0x0, 0x0, 0x0), at 0xfe88ea1c > > [13] FIX::ThreadedSocketConnection::queueThread(0x52a8e8, > > 0xfe935d38, 0x1, 0xfe378d04, 0x0, 0x2), at 0xfe88f0c4 > > > > core '../log/core' of 14663: > > data model = _ILP32 > > /4: flags = PR_PCINVAL > > sigmask = 0xffffbefc,0x00001fff cursig = SIGBUS > > /5: flags = PR_STOPPED > > why = PR_SUSPENDED > > /6: flags = PR_STOPPED > > why = PR_SUSPENDED > > /7: flags = PR_STOPPED > > why = PR_SUSPENDED > > sigmask = 0xffbffeff,0x00001fff > > /8: flags = PR_STOPPED > > why = PR_SUSPENDED > > /9: flags = PR_STOPPED > > why = PR_SUSPENDED > > /10: flags = PR_STOPPED > > why = PR_SUSPENDED > > /11: flags = PR_STOPPED > > why = PR_SUSPENDED > > /12: flags = PR_STOPPED > > why = PR_SUSPENDED > > /13: flags = PR_STOPPED > > why = PR_SUSPENDED > > /1: flags = PR_STOPPED > > why = PR_SUSPENDED > > /2: flags = PR_STOPPED|PR_ASLWP > > why = PR_SUSPENDED > > sigmask = 0xffbffeff,0x00001fff > > /3: flags = PR_STOPPED > > why = PR_SUSPENDED > > > > By any chance has anyone this kind of crash? What could be the > > possible reason for it? > > > > P.S. I am constructing a new message object and pushing in the queue. > > Am I missing something while constructing an object? > > > > You help in this matter will be highly appreciated. > > > > > > Thanks > > -Channa > > > > > > P Please consider the environment before printing this e-mail. Thank > > you. > > > > > ====================================================================== > ======== Please access the attached hyperlink for an important > electronic communications disclaimer: > http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html > ====================================================================== > ========<hr>---------------------------------------------------------- > --------------- 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<hr>_____________________ > __________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ============================================================================== |
From: Vincent P. <vpr...@ph...> - 2008-06-17 21:19:59
|
On Jun 17, 2008, at 4:03 PM, or...@qu... wrote: > Just to be clear, because I may have gotten a different impression > from > your first email. Are you trying to send outgoing logons with a > username and password, or are you trying to validate passwords on > incoming logon messages? I need to do both. > > --oren > >> -------- Original Message -------- >> Subject: Re: [Quickfix-developers] Logon passwords >> From: Vincent Predoehl <vpr...@ph...> >> Date: Tue, June 17, 2008 2:39 pm >> To: qui...@li... >> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ >> html/index.html >> QuickFIX Support: http://www.quickfixengine.org/ >> services.html<hr>On Jun 17, 2008, at 11:32 AM, >> or...@qu... wrote: >>> You should be checking the Logon message, not NewOrderSingle for >>> passwords. >> The Logon message has Username and Password fields, so I can create a >> Logon message with those fields, but what then? Do I just pass the >> message to FIX::Session:sendToTarget like all other messages? Seems >> like that would work. >> Also, are the SenderCompID and TargetCompID different entities from >> the username field in Logon? Looks like I can get at the target/ >> sender IDs in fromAdmin, but those appear to be different than the >> username to me. >>> >>> --oren >>> >>>> I'm going to move my password checking out of the fromAdmin >>>> method to >>>> the overloaded onMessage methods for each message to be >>>> authenticated, like this: This will move password checking down >>>> from >>>> the session level to the message level. >>>> void QFApplication::onMessage(const FIX44::NewOrderSingle& m, const >>>> SessionID & id) >>>> { >>>> Password pwd; m.getField(pwd); >>>> if(pwd.getString() != string(dbpwd)) throw >>>> FIX::RejectLogon(); >>>> } >>>> Then on the sender side, I have this: >>>> FIX44::NewOrderSingle o(...); >>>> o.setField(FIX::Password("x0x0x0"); >>>> FIX::Session::sendToTarget(o); >>>> This compiles, but when it runs, I get this stuff on the acceptor >>>> side: >>>> <20080617-16:20:57, FIX.4.4:MP->CLIENT, incoming> >>>> (8=FIX. >>>> 4.49=15035=D34=158249=CLIENT52=20080617-16:20:38.99156=MP1=314411=1 >>>> 58 >>>> 138 >>>> =4740=144=4070.3099223758654=255=MBI60=20080617-16:20:3864=F1554=x0 >>>> x0 >>>> x01 >>>> 0=243) >>>> <20080617-16:20:57, FIX.4.4:MP->CLIENT, event> >>>> (Message 1582 Rejected: Tag not defined for this message type: >>>> 554) >>>> On Jun 17, 2008, at 10:18 AM, or...@qu... wrote: >>> >>> >> -- >> VP<hr>--------------------------------------------------------------- >> ---------- >> 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<hr>_______________________________________________ >> Quickfix-developers mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers > -- VP |
From: <or...@qu...> - 2008-06-17 21:04:07
|
Just to be clear, because I may have gotten a different impression from your first email. Are you trying to send outgoing logons with a username and password, or are you trying to validate passwords on incoming logon messages? --oren > -------- Original Message -------- > Subject: Re: [Quickfix-developers] Logon passwords > From: Vincent Predoehl <vpr...@ph...> > Date: Tue, June 17, 2008 2:39 pm > To: qui...@li... > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html<hr>On Jun 17, 2008, at 11:32 AM, or...@qu... wrote: > > You should be checking the Logon message, not NewOrderSingle for > > passwords. > The Logon message has Username and Password fields, so I can create a > Logon message with those fields, but what then? Do I just pass the > message to FIX::Session:sendToTarget like all other messages? Seems > like that would work. > Also, are the SenderCompID and TargetCompID different entities from > the username field in Logon? Looks like I can get at the target/ > sender IDs in fromAdmin, but those appear to be different than the > username to me. > > > > --oren > > > >> I'm going to move my password checking out of the fromAdmin method to > >> the overloaded onMessage methods for each message to be > >> authenticated, like this: This will move password checking down from > >> the session level to the message level. > >> void QFApplication::onMessage(const FIX44::NewOrderSingle& m, const > >> SessionID & id) > >> { > >> Password pwd; m.getField(pwd); > >> if(pwd.getString() != string(dbpwd)) throw FIX::RejectLogon(); > >> } > >> Then on the sender side, I have this: > >> FIX44::NewOrderSingle o(...); > >> o.setField(FIX::Password("x0x0x0"); > >> FIX::Session::sendToTarget(o); > >> This compiles, but when it runs, I get this stuff on the acceptor > >> side: > >> <20080617-16:20:57, FIX.4.4:MP->CLIENT, incoming> > >> (8=FIX. > >> 4.49=15035=D34=158249=CLIENT52=20080617-16:20:38.99156=MP1=314411=158 > >> 138 > >> =4740=144=4070.3099223758654=255=MBI60=20080617-16:20:3864=F1554=x0x0 > >> x01 > >> 0=243) > >> <20080617-16:20:57, FIX.4.4:MP->CLIENT, event> > >> (Message 1582 Rejected: Tag not defined for this message type:554) > >> On Jun 17, 2008, at 10:18 AM, or...@qu... wrote: > > > > > -- VP<hr>------------------------------------------------------------------------- > 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<hr>_______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Vincent P. <vpr...@ph...> - 2008-06-17 19:39:51
|
On Jun 17, 2008, at 11:32 AM, or...@qu... wrote: > You should be checking the Logon message, not NewOrderSingle for > passwords. The Logon message has Username and Password fields, so I can create a Logon message with those fields, but what then? Do I just pass the message to FIX::Session:sendToTarget like all other messages? Seems like that would work. Also, are the SenderCompID and TargetCompID different entities from the username field in Logon? Looks like I can get at the target/ sender IDs in fromAdmin, but those appear to be different than the username to me. > > --oren > >> I'm going to move my password checking out of the fromAdmin method to >> the overloaded onMessage methods for each message to be >> authenticated, like this: This will move password checking down from >> the session level to the message level. >> void QFApplication::onMessage(const FIX44::NewOrderSingle& m, const >> SessionID & id) >> { >> Password pwd; m.getField(pwd); >> if(pwd.getString() != string(dbpwd)) throw FIX::RejectLogon(); >> } >> Then on the sender side, I have this: >> FIX44::NewOrderSingle o(...); >> o.setField(FIX::Password("x0x0x0"); >> FIX::Session::sendToTarget(o); >> This compiles, but when it runs, I get this stuff on the acceptor >> side: >> <20080617-16:20:57, FIX.4.4:MP->CLIENT, incoming> >> (8=FIX. >> 4.49=15035=D34=158249=CLIENT52=20080617-16:20:38.99156=MP1=314411=158 >> 138 >> =4740=144=4070.3099223758654=255=MBI60=20080617-16:20:3864=F1554=x0x0 >> x01 >> 0=243) >> <20080617-16:20:57, FIX.4.4:MP->CLIENT, event> >> (Message 1582 Rejected: Tag not defined for this message type:554) >> On Jun 17, 2008, at 10:18 AM, or...@qu... wrote: > > -- VP |
From: <or...@qu...> - 2008-06-17 16:32:57
|
You should be checking the Logon message, not NewOrderSingle for passwords. --oren > I'm going to move my password checking out of the fromAdmin method to > the overloaded onMessage methods for each message to be > authenticated, like this: This will move password checking down from > the session level to the message level. > void QFApplication::onMessage(const FIX44::NewOrderSingle& m, const > SessionID & id) > { > Password pwd; m.getField(pwd); > if(pwd.getString() != string(dbpwd)) throw FIX::RejectLogon(); > } > Then on the sender side, I have this: > FIX44::NewOrderSingle o(...); > o.setField(FIX::Password("x0x0x0"); > FIX::Session::sendToTarget(o); > This compiles, but when it runs, I get this stuff on the acceptor side: > <20080617-16:20:57, FIX.4.4:MP->CLIENT, incoming> > (8=FIX. > 4.49=15035=D34=158249=CLIENT52=20080617-16:20:38.99156=MP1=314411=158138 > =4740=144=4070.3099223758654=255=MBI60=20080617-16:20:3864=F1554=x0x0x01 > 0=243) > <20080617-16:20:57, FIX.4.4:MP->CLIENT, event> > (Message 1582 Rejected: Tag not defined for this message type:554) > On Jun 17, 2008, at 10:18 AM, or...@qu... wrote: |
From: Vincent P. <vpr...@ph...> - 2008-06-17 16:25:38
|
I'm going to move my password checking out of the fromAdmin method to the overloaded onMessage methods for each message to be authenticated, like this: This will move password checking down from the session level to the message level. void QFApplication::onMessage(const FIX44::NewOrderSingle& m, const SessionID & id) { Password pwd; m.getField(pwd); if(pwd.getString() != string(dbpwd)) throw FIX::RejectLogon(); } Then on the sender side, I have this: FIX44::NewOrderSingle o(...); o.setField(FIX::Password("x0x0x0"); FIX::Session::sendToTarget(o); This compiles, but when it runs, I get this stuff on the acceptor side: <20080617-16:20:57, FIX.4.4:MP->CLIENT, incoming> (8=FIX. 4.49=15035=D34=158249=CLIENT52=20080617-16:20:38.99156=MP1=314411=158138 =4740=144=4070.3099223758654=255=MBI60=20080617-16:20:3864=F1554=x0x0x01 0=243) <20080617-16:20:57, FIX.4.4:MP->CLIENT, event> (Message 1582 Rejected: Tag not defined for this message type:554) On Jun 17, 2008, at 10:18 AM, or...@qu... wrote: > > You can use the getField method which does not do a compile time > check. > Alternatively you can use the message cracker which will send the > messages to their own callback and does not use a dynamic_cast. > > --oren > >> -------- Original Message -------- >> Subject: Re: [Quickfix-developers] Logon passwords >> From: Vincent Predoehl <vpr...@ph...> >> Date: Mon, June 16, 2008 11:15 pm >> To: qui...@li... >> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ >> html/index.html >> QuickFIX Support: http://www.quickfixengine.org/ >> services.html<hr>On Jun 16, 2008, at 10:56 PM, Vincent Predoehl >> wrote: >>> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ >>> html/index.html >>> QuickFIX Support: http://www.quickfixengine.org/services.html >>> >>> On Jun 16, 2008, at 10:19 PM, Rodrick Brown wrote: >>> >>>> >>>> You dont. However you might want to look at tag 554 for dealing >>>> with passwords >>>> >>>> >>> >>> >>> Can I assume that field is encrypted or something? >>> >> I ran into a new problem, the Message object doesn't contain a get >> method. I read on this forum I should use the fromAdmin method to >> validate passwords. I'm not really interested in using dynamic_cast >> for each possible message I want to validate. So how do I get the >> password from a Message field? >> Here's my code snippet: >> void QFApplication::fromAdmin( const FIX::Message& m, const >> FIX::SessionID& id) throw( FIX::FieldNotFound, >> FIX::IncorrectDataFormat, FIX::IncorrectTagValue, FIX::RejectLogon ) >> { >> Password pwd; m.get(pwd); // compile error - no get method >> DBPassword pwd(id.getString()); // postgre DB integration >> cn.perform(pwd); // get password from DB >> if(pwd.getString() != pwd) throw FIX::RejectLogon; >> } >> -- >> VP<hr>--------------------------------------------------------------- >> ---------- >> 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<hr>_______________________________________________ >> Quickfix-developers mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers > -- VP |
From: <or...@qu...> - 2008-06-17 15:21:15
|
Version of QuickFIX? This looks like something that has been fixed in a previous release, I would be very interested to hear if this is happening with 1.12.4 --oren > -------- Original Message -------- > Subject: Re: [Quickfix-developers] Core after converting to multi > threadedapplication > From: "Mangalore, Channabasava" > <cha...@cr...> > Date: Sun, June 15, 2008 11:47 pm > To: "Mangalore, Channabasava" > <cha...@cr...>,qui...@li... > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html<hr>Some more info > I am using FIX42 messaging > And it is a C++ application running on SunOS 5.8 Generic_117000-05 sun4u > sparc SUNW,Sun-Fire-480R > Mostly it is happening when the system is loaded. > Thanks > Channa > > _____________________________________________ > > From: Mangalore, Channabasava > > Sent: 16 June 2008 12:25 > > To: qui...@li... > > Subject: Core after converting to multi threaded application > > Importance: High > > > > Dear All, > > > > I was trying to decouple the fromApp message receiving and the local > > data processing. > > I am copying the message received from the fromApp and pushing into > > the queue. In the our test environment it worked wonderfully and > > passed all the required test cases without any problem. > > > > When we rolled out to production it started coring :-( below is the > > stack trace of the core > > > > (dbx) where > > current thread: t@15 > > =>[1] t_delete(0x5d11e8, 0xfe43c008, 0xfe4427cc, 0xfe44284c, > > 0xfe442848, 0x0), at 0xfe3c27f0 > > [2] _malloc_unlocked(0x44, 0x1d20c58, 0xfe43c008, 0x48, 0x5d11e8, > > 0x0), at 0xfe3c1e80 > > [3] malloc(0x44, 0x0, 0xfe43c008, 0xfe3c1ce4, 0x222e8, 0x920f4), at > > 0xfe3c1cd8 > > [4] malloc(0xfe3c1cb8, 0xfe3c1cb8, 0xfe5e3d20, 0x44, 0xc14, 0xc00), > > at 0xfe551c68 > > [5] operator new(0x44, 0xfe3c1cb8, 0x13b88, 0xfe551c68, 0xfee1a08c, > > 0x44), at 0xfee06528 > > [6] FIX::message_order::message_order(0x11, 0x523f38, 0x1400, 0x3, > > 0x17ac, 0xfe904df4), at 0xfe88a1a0 > > [7] FIX::Message::setGroup(0xf6fffad4, 0x61713c, 0x617138, > > 0xf6fffc5c, 0xf6fff974, 0x0), at 0xfe855d30 > > [8] FIX::Message::setString(0xf6fffad4, 0xf6fffc5c, 0x1, 0x5a3090, > > 0x6872b020, 0xf6fff94c), at 0xfe855a60 > > [9] FIX::Message::Message(0xf6fffad4, 0xf6fffc5c, 0x5a3090, > > 0xf6fffb88, 0xf6fffb50, 0xf6fffb30), at 0xfe853274 > > [10] FIX::Session::next(0x5a2f10, 0xf6fffc5c, 0x1, 0xf0e3d8, > > 0x76294, 0xfe909b74), at 0xfe87db3c > > [11] FIX::ThreadedSocketConnection::processStream(0x52a8e8, > > 0x1dfe550, 0x0, 0x2df240, 0x0, 0xfe5e3d20), at 0xfe88ebe4 > > [12] FIX::ThreadedSocketConnection::readQueue(0x52a8e8, 0xfe90b5a4, > > 0x4851049f, 0x0, 0x0, 0x0), at 0xfe88ea1c > > [13] FIX::ThreadedSocketConnection::queueThread(0x52a8e8, > > 0xfe935d38, 0x1, 0xfe378d04, 0x0, 0x2), at 0xfe88f0c4 > > > > core '../log/core' of 14663: > > data model = _ILP32 > > /4: flags = PR_PCINVAL > > sigmask = 0xffffbefc,0x00001fff cursig = SIGBUS > > /5: flags = PR_STOPPED > > why = PR_SUSPENDED > > /6: flags = PR_STOPPED > > why = PR_SUSPENDED > > /7: flags = PR_STOPPED > > why = PR_SUSPENDED > > sigmask = 0xffbffeff,0x00001fff > > /8: flags = PR_STOPPED > > why = PR_SUSPENDED > > /9: flags = PR_STOPPED > > why = PR_SUSPENDED > > /10: flags = PR_STOPPED > > why = PR_SUSPENDED > > /11: flags = PR_STOPPED > > why = PR_SUSPENDED > > /12: flags = PR_STOPPED > > why = PR_SUSPENDED > > /13: flags = PR_STOPPED > > why = PR_SUSPENDED > > /1: flags = PR_STOPPED > > why = PR_SUSPENDED > > /2: flags = PR_STOPPED|PR_ASLWP > > why = PR_SUSPENDED > > sigmask = 0xffbffeff,0x00001fff > > /3: flags = PR_STOPPED > > why = PR_SUSPENDED > > > > By any chance has anyone this kind of crash? What could be the > > possible reason for it? > > > > P.S. I am constructing a new message object and pushing in the queue. > > Am I missing something while constructing an object? > > > > You help in this matter will be highly appreciated. > > > > > > Thanks > > -Channa > > > > > > P Please consider the environment before printing this e-mail. Thank > > you. > > > > > ============================================================================== > Please access the attached hyperlink for an important electronic communications disclaimer: > http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html > ==============================================================================<hr>------------------------------------------------------------------------- > 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<hr>_______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: <or...@qu...> - 2008-06-17 15:19:16
|
You can use the getField method which does not do a compile time check. Alternatively you can use the message cracker which will send the messages to their own callback and does not use a dynamic_cast. --oren > -------- Original Message -------- > Subject: Re: [Quickfix-developers] Logon passwords > From: Vincent Predoehl <vpr...@ph...> > Date: Mon, June 16, 2008 11:15 pm > To: qui...@li... > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html<hr>On Jun 16, 2008, at 10:56 PM, Vincent Predoehl wrote: > > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ > > html/index.html > > QuickFIX Support: http://www.quickfixengine.org/services.html > > > > On Jun 16, 2008, at 10:19 PM, Rodrick Brown wrote: > > > >> > >> You dont. However you might want to look at tag 554 for dealing > >> with passwords > >> > >> > > > > > > Can I assume that field is encrypted or something? > > > I ran into a new problem, the Message object doesn't contain a get > method. I read on this forum I should use the fromAdmin method to > validate passwords. I'm not really interested in using dynamic_cast > for each possible message I want to validate. So how do I get the > password from a Message field? > Here's my code snippet: > void QFApplication::fromAdmin( const FIX::Message& m, const > FIX::SessionID& id) throw( FIX::FieldNotFound, > FIX::IncorrectDataFormat, FIX::IncorrectTagValue, FIX::RejectLogon ) > { > Password pwd; m.get(pwd); // compile error - no get method > DBPassword pwd(id.getString()); // postgre DB integration > cn.perform(pwd); // get password from DB > if(pwd.getString() != pwd) throw FIX::RejectLogon; > } > -- VP<hr>------------------------------------------------------------------------- > 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<hr>_______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Vincent P. <vpr...@ph...> - 2008-06-17 04:15:57
|
On Jun 16, 2008, at 10:56 PM, Vincent Predoehl wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ > html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > On Jun 16, 2008, at 10:19 PM, Rodrick Brown wrote: > >> >> You dont. However you might want to look at tag 554 for dealing >> with passwords >> >> > > > Can I assume that field is encrypted or something? > I ran into a new problem, the Message object doesn't contain a get method. I read on this forum I should use the fromAdmin method to validate passwords. I'm not really interested in using dynamic_cast for each possible message I want to validate. So how do I get the password from a Message field? Here's my code snippet: void QFApplication::fromAdmin( const FIX::Message& m, const FIX::SessionID& id) throw( FIX::FieldNotFound, FIX::IncorrectDataFormat, FIX::IncorrectTagValue, FIX::RejectLogon ) { Password pwd; m.get(pwd); // compile error - no get method DBPassword pwd(id.getString()); // postgre DB integration cn.perform(pwd); // get password from DB if(pwd.getString() != pwd) throw FIX::RejectLogon; } -- VP |
From: Vincent P. <vpr...@ph...> - 2008-06-17 03:56:25
|
On Jun 16, 2008, at 10:19 PM, Rodrick Brown wrote: > On Mon, Jun 16, 2008 at 10:34 PM, Vincent Predoehl > <vpr...@ph...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ > html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > How are you supposed to send the passwords in a logon message? > > -- VP > > You dont. However you might want to look at tag 554 for dealing > with passwords > > Can I assume that field is encrypted or something? -- VP |
From: Vincent P. <vpr...@ph...> - 2008-06-17 02:34:25
|
How are you supposed to send the passwords in a logon message? -- VP |
From: Mangalore, C. <cha...@cr...> - 2008-06-16 04:48:21
|
Some more info I am using FIX42 messaging And it is a C++ application running on SunOS 5.8 Generic_117000-05 sun4u sparc SUNW,Sun-Fire-480R Mostly it is happening when the system is loaded. Thanks Channa > _____________________________________________ > From: Mangalore, Channabasava > Sent: 16 June 2008 12:25 > To: qui...@li... > Subject: Core after converting to multi threaded application > Importance: High > > Dear All, > > I was trying to decouple the fromApp message receiving and the local > data processing. > I am copying the message received from the fromApp and pushing into > the queue. In the our test environment it worked wonderfully and > passed all the required test cases without any problem. > > When we rolled out to production it started coring :-( below is the > stack trace of the core > > (dbx) where > current thread: t@15 > =>[1] t_delete(0x5d11e8, 0xfe43c008, 0xfe4427cc, 0xfe44284c, > 0xfe442848, 0x0), at 0xfe3c27f0 > [2] _malloc_unlocked(0x44, 0x1d20c58, 0xfe43c008, 0x48, 0x5d11e8, > 0x0), at 0xfe3c1e80 > [3] malloc(0x44, 0x0, 0xfe43c008, 0xfe3c1ce4, 0x222e8, 0x920f4), at > 0xfe3c1cd8 > [4] malloc(0xfe3c1cb8, 0xfe3c1cb8, 0xfe5e3d20, 0x44, 0xc14, 0xc00), > at 0xfe551c68 > [5] operator new(0x44, 0xfe3c1cb8, 0x13b88, 0xfe551c68, 0xfee1a08c, > 0x44), at 0xfee06528 > [6] FIX::message_order::message_order(0x11, 0x523f38, 0x1400, 0x3, > 0x17ac, 0xfe904df4), at 0xfe88a1a0 > [7] FIX::Message::setGroup(0xf6fffad4, 0x61713c, 0x617138, > 0xf6fffc5c, 0xf6fff974, 0x0), at 0xfe855d30 > [8] FIX::Message::setString(0xf6fffad4, 0xf6fffc5c, 0x1, 0x5a3090, > 0x6872b020, 0xf6fff94c), at 0xfe855a60 > [9] FIX::Message::Message(0xf6fffad4, 0xf6fffc5c, 0x5a3090, > 0xf6fffb88, 0xf6fffb50, 0xf6fffb30), at 0xfe853274 > [10] FIX::Session::next(0x5a2f10, 0xf6fffc5c, 0x1, 0xf0e3d8, > 0x76294, 0xfe909b74), at 0xfe87db3c > [11] FIX::ThreadedSocketConnection::processStream(0x52a8e8, > 0x1dfe550, 0x0, 0x2df240, 0x0, 0xfe5e3d20), at 0xfe88ebe4 > [12] FIX::ThreadedSocketConnection::readQueue(0x52a8e8, 0xfe90b5a4, > 0x4851049f, 0x0, 0x0, 0x0), at 0xfe88ea1c > [13] FIX::ThreadedSocketConnection::queueThread(0x52a8e8, > 0xfe935d38, 0x1, 0xfe378d04, 0x0, 0x2), at 0xfe88f0c4 > > core '../log/core' of 14663: > data model = _ILP32 > /4: flags = PR_PCINVAL > sigmask = 0xffffbefc,0x00001fff cursig = SIGBUS > /5: flags = PR_STOPPED > why = PR_SUSPENDED > /6: flags = PR_STOPPED > why = PR_SUSPENDED > /7: flags = PR_STOPPED > why = PR_SUSPENDED > sigmask = 0xffbffeff,0x00001fff > /8: flags = PR_STOPPED > why = PR_SUSPENDED > /9: flags = PR_STOPPED > why = PR_SUSPENDED > /10: flags = PR_STOPPED > why = PR_SUSPENDED > /11: flags = PR_STOPPED > why = PR_SUSPENDED > /12: flags = PR_STOPPED > why = PR_SUSPENDED > /13: flags = PR_STOPPED > why = PR_SUSPENDED > /1: flags = PR_STOPPED > why = PR_SUSPENDED > /2: flags = PR_STOPPED|PR_ASLWP > why = PR_SUSPENDED > sigmask = 0xffbffeff,0x00001fff > /3: flags = PR_STOPPED > why = PR_SUSPENDED > > By any chance has anyone this kind of crash? What could be the > possible reason for it? > > P.S. I am constructing a new message object and pushing in the queue. > Am I missing something while constructing an object? > > You help in this matter will be highly appreciated. > > > Thanks > -Channa > > > P Please consider the environment before printing this e-mail. Thank > you. > > ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ============================================================================== |
From: Mangalore, C. <cha...@cr...> - 2008-06-16 04:25:54
|
Dear All, I was trying to decouple the fromApp message receiving and the local data processing. I am copying the message received from the fromApp and pushing into the queue. In the our test environment it worked wonderfully and passed all the required test cases without any problem. When we rolled out to production it started coring :-( below is the stack trace of the core (dbx) where current thread: t@15 =>[1] t_delete(0x5d11e8, 0xfe43c008, 0xfe4427cc, 0xfe44284c, 0xfe442848, 0x0), at 0xfe3c27f0 [2] _malloc_unlocked(0x44, 0x1d20c58, 0xfe43c008, 0x48, 0x5d11e8, 0x0), at 0xfe3c1e80 [3] malloc(0x44, 0x0, 0xfe43c008, 0xfe3c1ce4, 0x222e8, 0x920f4), at 0xfe3c1cd8 [4] malloc(0xfe3c1cb8, 0xfe3c1cb8, 0xfe5e3d20, 0x44, 0xc14, 0xc00), at 0xfe551c68 [5] operator new(0x44, 0xfe3c1cb8, 0x13b88, 0xfe551c68, 0xfee1a08c, 0x44), at 0xfee06528 [6] FIX::message_order::message_order(0x11, 0x523f38, 0x1400, 0x3, 0x17ac, 0xfe904df4), at 0xfe88a1a0 [7] FIX::Message::setGroup(0xf6fffad4, 0x61713c, 0x617138, 0xf6fffc5c, 0xf6fff974, 0x0), at 0xfe855d30 [8] FIX::Message::setString(0xf6fffad4, 0xf6fffc5c, 0x1, 0x5a3090, 0x6872b020, 0xf6fff94c), at 0xfe855a60 [9] FIX::Message::Message(0xf6fffad4, 0xf6fffc5c, 0x5a3090, 0xf6fffb88, 0xf6fffb50, 0xf6fffb30), at 0xfe853274 [10] FIX::Session::next(0x5a2f10, 0xf6fffc5c, 0x1, 0xf0e3d8, 0x76294, 0xfe909b74), at 0xfe87db3c [11] FIX::ThreadedSocketConnection::processStream(0x52a8e8, 0x1dfe550, 0x0, 0x2df240, 0x0, 0xfe5e3d20), at 0xfe88ebe4 [12] FIX::ThreadedSocketConnection::readQueue(0x52a8e8, 0xfe90b5a4, 0x4851049f, 0x0, 0x0, 0x0), at 0xfe88ea1c [13] FIX::ThreadedSocketConnection::queueThread(0x52a8e8, 0xfe935d38, 0x1, 0xfe378d04, 0x0, 0x2), at 0xfe88f0c4 core '../log/core' of 14663: data model = _ILP32 /4: flags = PR_PCINVAL sigmask = 0xffffbefc,0x00001fff cursig = SIGBUS /5: flags = PR_STOPPED why = PR_SUSPENDED /6: flags = PR_STOPPED why = PR_SUSPENDED /7: flags = PR_STOPPED why = PR_SUSPENDED sigmask = 0xffbffeff,0x00001fff /8: flags = PR_STOPPED why = PR_SUSPENDED /9: flags = PR_STOPPED why = PR_SUSPENDED /10: flags = PR_STOPPED why = PR_SUSPENDED /11: flags = PR_STOPPED why = PR_SUSPENDED /12: flags = PR_STOPPED why = PR_SUSPENDED /13: flags = PR_STOPPED why = PR_SUSPENDED /1: flags = PR_STOPPED why = PR_SUSPENDED /2: flags = PR_STOPPED|PR_ASLWP why = PR_SUSPENDED sigmask = 0xffbffeff,0x00001fff /3: flags = PR_STOPPED why = PR_SUSPENDED By any chance has anyone this kind of crash? What could be the possible reason for it? P.S. I am constructing a new message object and pushing in the queue. Am I missing something while constructing an object? You help in this matter will be highly appreciated. Thanks -Channa P Please consider the environment before printing this e-mail. Thank you. ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ============================================================================== |