quickfix-developers Mailing List for QuickFIX (Page 208)
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: Caleb E. <cal...@gm...> - 2005-03-15 21:09:30
|
On Tue, 15 Mar 2005 21:18:49 -0000, Mo <mo...@ab...> wrote: > Hi evrybody > How can i parse all the mesSages i get by doing the resendRequest. > When i get the messages, The onMessage function is not called. So i can not > get the Object it self. Messages which are being processed as a result of a ResendRequest should be no different than any other messages. -- Caleb Epstein caleb dot epstein at gmail dot com |
From: Mo <mo...@ab...> - 2005-03-15 20:25:06
|
<P>Hi evrybody<BR>How can i parse all the mesSages i get by doing the resendRequest.<BR>When i get the messages, The onMessage function is not called. So i can not get the Object it self.<BR><BR>Please Help :(<BR><BR>Thx</P><BR /> <BR /> ________________________________________________<BR /> Dit email-programma is gemaakt door: <a href=3D'http://www.abercane.nl' target=3D'_blank'>abercane</a><BR /> |
From: Alvin W. <AW...@FF...> - 2005-03-15 20:02:04
|
I did with quickfix (FIX 42). No problem. :) <bma...@ya...> Sent by: qui...@li... 03/15/2005 07:07 AM Please respond to bmalp98-grp To: qui...@li... cc: bcc: Subject: [Quickfix-developers] Link to InteractiveBrokers? QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX FAQ: http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ QuickFIX Support: http://www.quickfixengine.org/services.html Hi, don't know if it is appropriate to ask here, but I would like to inquire if someone has managed to use quickfix to link for trading with InteractiveBrokers. Thanks, bmalp ___________________________________________________________ Gesendet von Yahoo! Mail - Jetzt mit 250MB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ********************************************************************** This e-mail message is intended solely for the use of the addressee. The message may contain information that is privileged and confidential. Disclosure to anyone other than the intended recipient is prohibited. If you are not the intended recipient, please do not disseminate, distribute or copy this communication, by e-mail or otherwise. Instead, please notify us immediately by return e-mail (including the original message with your reply) and then delete and discard all copies of the message. We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment to this message. We accept no liability for any loss or damage caused by software viruses. ********************************************************************** |
From: <bma...@ya...> - 2005-03-15 12:07:50
|
Hi, don't know if it is appropriate to ask here, but I would like to inquire if someone has managed to use quickfix to link for trading with InteractiveBrokers. Thanks, bmalp ___________________________________________________________ Gesendet von Yahoo! Mail - Jetzt mit 250MB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de |
From: Oren M. <or...@qu...> - 2005-03-14 21:29:53
|
Yeah, but you only need to call logout. You don't want to call disconnect because that will force a connection by shutting down the socket. Calling logout alone will allow QuickFIX to go through the proper logout sequence before shutting down. The logon call will then reawaken the session when you want to bring it back up. We have talked about adding dynamic session configuration. I think it will become one of the primary focuses for the next release. --oren On Mar 14, 2005, at 10:11 AM, Caleb Epstein wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX FAQ: > http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ > QuickFIX Support: http://www.quickfixengine.org/services.html > > We have a requirement to be able to stop and start individual Sessions > without having to bring down our entire QuickFIX engine. It is not > immediately obvious how to do this from browsing the code. As near as > I can figure calling Session::logout () and Session::disconnect () > should have the desired effect; the Initiator will not try > reconnecting, since logout sets m_enabled = false. Is this correct? > > for ( ; i != disconnected.end(); ++i ) > { > Session* pSession = Session::lookupSession( *i ); > if ( pSession->isEnabled() && pSession->isSessionTime() ) > setConnected( *i, doConnect( *i, m_settings.get( *i ) ) ); > } > > Also, any thoughts on modifying the Initiator class to allow sessions > to be *reconfigured* while the engine is running? Essentially, I'd > like to be able to pass a new SessionSettings to the Intiiator at > runtime and then any Sessions which are started/restarted after this > point will use these updated settings. This would primarily be for > changing things like the host and port on the connection intra-day if > required (e.g. some sort of failover scenario). > > To implement this I think I'd just add a new Initiator::reconfigure > method which would re-initialize the m_settings member and then call > onConfigure. > > -- > Caleb Epstein > caleb dot epstein at gmail dot com > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real > users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
From: Caleb E. <cal...@gm...> - 2005-03-14 16:14:54
|
We have a requirement to be able to stop and start individual Sessions without having to bring down our entire QuickFIX engine. It is not immediately obvious how to do this from browsing the code. As near as I can figure calling Session::logout () and Session::disconnect () should have the desired effect; the Initiator will not try reconnecting, since logout sets m_enabled = false. Is this correct? for ( ; i != disconnected.end(); ++i ) { Session* pSession = Session::lookupSession( *i ); if ( pSession->isEnabled() && pSession->isSessionTime() ) setConnected( *i, doConnect( *i, m_settings.get( *i ) ) ); } Also, any thoughts on modifying the Initiator class to allow sessions to be *reconfigured* while the engine is running? Essentially, I'd like to be able to pass a new SessionSettings to the Intiiator at runtime and then any Sessions which are started/restarted after this point will use these updated settings. This would primarily be for changing things like the host and port on the connection intra-day if required (e.g. some sort of failover scenario). To implement this I think I'd just add a new Initiator::reconfigure method which would re-initialize the m_settings member and then call onConfigure. -- Caleb Epstein caleb dot epstein at gmail dot com |
From: <kri...@rb...> - 2005-03-11 11:46:09
|
Barry - I read your emails from about a month ago regarding intermittent disconnect= s and I believe we are experiencing a similar problem. Our app currently runs with QuickFIX 1.7.1 (socket initiator with a single = session), patched to compile with Sun CC 5.3 with Roguewave and runs on SPA= RC Solaris 2.8 (SunOS 5.8) w/two 1Ghz UltraSparc3 CPUs. Below is one packet capture summary of this disconnect problem, 159.55.203.= 30 is the box running our QuickFIX app. Packet number 12 is a FIN packet wh= ich is indicates QuickFIX closed the socket at this point. The app continue= d to run after the disconnect and eventually reconnected. The QuickFIX event log (see far below) simply reports 'Disconnecting' with = no explanation reason. All incoming messages appear normal (i.e. no missing= heart beats) until they abruptly stop, after the execution report sent in = packet 8; only four outgoing messages (all cancels) were sent in the three = seconds prior to the disconnect. Is this similar to the problem you experienced? If so, how have you dealt w= ith it? Regards, - Kris No. Time Source Destination Protocol In= fo 1 0.000000 159.55.203.30 155.195.58.69 TCP 33= 113 > 58038 [ACK] Seq=3D0 Ack=3D0 Win=3D24820 Len=3D0 2 0.050587 155.195.58.69 159.55.203.30 FIX Ex= ecution Report [ACK, PUSH] Seq=3D0 Ack=3D0 Len=3D264 3 0.052171 155.195.58.69 159.55.203.30 FIX Ex= ecution Report [ACK, PUSH] Seq=3D264 Ack=3D0 Len=3D264 4 0.053779 155.195.58.69 159.55.203.30 FIX Ex= ecution Report [ACK, PUSH] Seq=3D528 Ack=3D0 Len=3D264 5 0.055386 155.195.58.69 159.55.203.30 FIX Ex= ecution Report [ACK, PUSH] Seq=3D792 Ack=3D0 Len=3D264 6 0.057082 155.195.58.69 159.55.203.30 FIX Ex= ecution Report [ACK, PUSH] Seq=3D1056 Ack=3D0 Len=3D264 7 0.058694 155.195.58.69 159.55.203.30 FIX Ex= ecution Report [ACK, PUSH] Seq=3D1320 Ack=3D0 Len=3D264 8 0.060296 155.195.58.69 159.55.203.30 FIX Ex= ecution Report [ACK, PUSH] Seq=3D1584 Ack=3D0 Len=3D262 9 0.060933 159.55.203.30 155.195.58.69 TCP 33= 113 > 58038 [ACK] Seq=3D0 Ack=3D528 Win=3D24820 Len=3D0 10 0.060949 159.55.203.30 155.195.58.69 TCP 33= 113 > 58038 [ACK] Seq=3D0 Ack=3D1056 Win=3D24820 Len=3D0 11 0.060971 159.55.203.30 155.195.58.69 TCP 33= 113 > 58038 [ACK] Seq=3D0 Ack=3D1584 Win=3D24820 Len=3D0 =3D=3D> 12 0.061022 159.55.203.30 155.195.58.69 TCP = 33113 > 58038 [FIN, ACK] Seq=3D0 Ack=3D1846 Win=3D24820 Len=3D0 13 0.074235 155.195.58.69 159.55.203.30 TCP 58= 038 > 33113 [ACK] Seq=3D1846 Ack=3D1 Win=3D24820 Len=3D0 14 0.080098 155.195.58.69 159.55.203.30 FIX Ex= ecution Report 15 0.080115 159.55.203.30 155.195.58.69 TCP 33= 113 > 58038 [RST] Seq=3D1 Ack=3D2483465659 Win=3D24820 Len=3D0 16 0.082228 155.195.58.69 159.55.203.30 FIX Ex= ecution Report 17 0.082279 159.55.203.30 155.195.58.69 TCP 33= 113 > 58038 [RST] Seq=3D1 Ack=3D2483465659 Win=3D0 Len=3D0 18 0.082985 155.195.58.69 159.55.203.30 FIX Ex= ecution Report 19 0.083007 159.55.203.30 155.195.58.69 TCP 33= 113 > 58038 [RST] Seq=3D1 Ack=3D2483465659 Win=3D0 Len=3D0 20 4.101816 159.55.203.30 155.195.58.69 TCP 33= 116 > 58038 [SYN] Seq=3D0 Ack=3D0 Win=3D24820 Len=3D0 MSS=3D1460 21 4.117612 155.195.58.69 159.55.203.30 TCP 58= 038 > 33116 [RST, ACK] Seq=3D0 Ack=3D0 Win=3D0 Len=3D0 22 34.410854 159.55.203.30 155.195.58.69 TCP 33= 117 > 58038 [SYN] Seq=3D0 Ack=3D0 Win=3D24820 Len=3D0 MSS=3D1460 23 34.426502 155.195.58.69 159.55.203.30 TCP 58= 038 > 33117 [SYN, ACK] Seq=3D0 Ack=3D1 Win=3D24820 Len=3D0 MSS=3D1460 24 34.426646 159.55.203.30 155.195.58.69 TCP 33= 117 > 58038 [ACK] Seq=3D1 Ack=3D1 Win=3D24820 Len=3D0 25 34.428850 159.55.203.30 155.195.58.69 FIX Lo= gon 26 34.441855 155.195.58.69 159.55.203.30 TCP 58= 038 > 33117 [ACK] Seq=3D1 Ack=3D98 Win=3D24820 Len=3D0 27 37.257316 155.195.58.69 159.55.203.30 FIX Lo= gon Below are entries from the QuickFIX event log for the same time period that= the capture was done. 20050309-22:02:37 : Received logon response 20050309-23:44:30 : Disconnecting 20050309-23:44:34 : Connecting to 155.195.58.69 on port 58038 20050309-23:44:34 : Connection failed 20050309-23:45:04 : Connecting to 155.195.58.69 on port 58038 20050309-23:45:04 : Connection succeeded 20050309-23:45:04 : Initiated logon request 20050309-23:45:07 : Received logon response 20050309-23:45:07 : MsgSeqNum too high RECEIVED: 1877 EXPECTED: 1863 20050309-23:45:07 : Sent ResendRequest FROM: 1863 TO: 0 20050309-23:45:07 : Processing QUEUED message: 1877 20050309-23:45:07 : MsgSeqNum too low RECEIVED: 1877 EXPECTED: 1878 PosDup:= Y <font face=3D"Times New Roman" size=3D"3"> <p>------------------------------------------------------------------------= ------</p> <p> This email is intended only for the use of the individual(s) to whom it= is addressed and may be privileged and confidential. Unauthorised use or d= isclosure is prohibited. If you receive this e-mail in error, please advise= immediately and delete the original message. This message may have been al= tered without your or our knowledge and the sender does not accept any liab= ility for any errors or omissions in the message.</p> <p>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D</p> </font> |
From: Caleb E. <cal...@gm...> - 2005-03-09 15:40:17
|
On Wed, 9 Mar 2005 09:09:32 -0500, Caleb Epstein <cal...@gm...> wrote: > Using CVS code as-of 2005-02-25. If a client connects to a QF > acceptor which is using the ThreadedSocketAcceptor and there is a > mismatch between the FIX BeginStrings for that session, the acceptor > application crashes. Using the single-threaded SocketAcceptor, no > crash happens; the acceptor closes the connection gracefully (though > nothing is logged). Here's a patch that seems to fix the problem here: --- quickfix-CVS-20050225-pristine/src/C++/ThreadedSocketConnection.cpp 2005-02-25 16:22:03.000000000 -0500 +++ quickfix-CVS-20050225/src/C++/ThreadedSocketConnection.cpp 2005-03-09 10:35:24.000000000 -0500 @@ -102,7 +102,8 @@ } catch ( SocketRecvFailed& e ) { - m_pSession->getLog()->onEvent( e.what() ); + if (m_pSession) + m_pSession->getLog()->onEvent( e.what() ); delete [] buffer; m_queue.push( std::make_pair((size_t)0, (char*)0) ); return false; On a related note, whats the status of providing a Log member in the Application class for stuff like this? -- Caleb Epstein caleb dot epstein at gmail dot com |
From: Caleb E. <cal...@gm...> - 2005-03-09 14:09:35
|
Using CVS code as-of 2005-02-25. If a client connects to a QF acceptor which is using the ThreadedSocketAcceptor and there is a mismatch between the FIX BeginStrings for that session, the acceptor application crashes. Using the single-threaded SocketAcceptor, no crash happens; the acceptor closes the connection gracefully (though nothing is logged). Thread 1 is the thread that crashed the app: (gdb) thread 1 [Switching to thread 1 (process 15182)]#0 0x400c2b78 in FIX::ThreadedSocketConnection::read (this=0x808c1f0) at Session.h:130 130 Log* getLog() { return &m_state; } (gdb) thread apply all where Thread 4 (process 15023): #0 0x40000c32 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x4046cd36 in __nanosleep_nocancel () from /lib/tls/libc.so.6 #2 0x4010f59c in FIX::process_sleep (s=0) at Utility.cpp:374 #3 0x0806f95f in wait () at executor.cpp:89 #4 0x080700ec in main (argc=3, argv=0xbfff8c24) at executor.cpp:202 Thread 3 (process 15024): #0 0x40000c32 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x404a0438 in accept () from /lib/tls/libc.so.6 #2 0x4010f0cf in FIX::socket_accept (s=8) at Utility.cpp:135 #3 0x400b74a6 in FIX::ThreadedSocketAcceptor::onStart (this=0xbfff8a30) at ThreadedSocketAcceptor.cpp:85 #4 0x400a2851 in FIX::Acceptor::startThread (p=0xfffffe00) at Acceptor.cpp:228 #5 0x40607dac in start_thread () from /lib/tls/libpthread.so.0 #6 0x4049fa8a in clone () from /lib/tls/libc.so.6 Thread 2 (process 15183): #0 0x40000c32 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x4060a3aa in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 #2 0x404ac9cd in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/libc.so.6 #3 0x400c316b in FIX::ThreadedSocketConnection::readQueue (this=0x808c1f0) at Event.h:78 #4 0x400c39ff in FIX::ThreadedSocketConnection::queueThread (p=0xfffffffc) at ThreadedSocketConnection.cpp:219 #5 0x40607dac in start_thread () from /lib/tls/libpthread.so.0 #6 0x4049fa8a in clone () from /lib/tls/libc.so.6 Thread 1 (process 15182): #0 0x400c2b78 in FIX::ThreadedSocketConnection::read (this=0x808c1f0) at Session.h:130 #1 0x400b79b8 in FIX::ThreadedSocketAcceptor::socketThread (p=0x0) at ThreadedSocketAcceptor.cpp:168 #2 0x40607dac in start_thread () from /lib/tls/libpthread.so.0 #3 0x4049fa8a in clone () from /lib/tls/libc.so.6 #0 0x40000c32 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 -- Caleb Epstein caleb dot epstein at gmail dot com |
From: Caleb E. <cal...@gm...> - 2005-03-08 19:44:39
|
On Tue, 8 Mar 2005 12:57:38 -0600, David Kuik <dav...@pr...> wrote: > I'm wondering how the engine manages sessions and message sequencing in a > load balanced environment. Does each server in the farm to manage a > separate session or do they somehow share a session? > > I'm trying to understand how this will work in a fault-tolerant 7x24 > environment that supports 1000's of users. Can someone offer some comments? You could load balance sessions across multiple machines using a database-backed message store (e.g. MysqlStoreFactory). All of the session state is persisted to the database. You could run a number of Acceptors in parallel on different machines, each configured to accept all of your MySQL-backed sessions (e.g. same config file). However I don't think there is currently a facility in QF for "locking" a session across multiple engines. In other words, if client A connects to server 1, that session should be "locked" in some way so any attempt to use it on servers 2 through n would result in an error in the same way that connecting to that session a second time on server 1 would. A similar approach would be to use the FileStoreFactory and share all the session state on an NFS mounted filesystem. -- Caleb Epstein caleb dot epstein at gmail dot com |
From: David K. <dav...@pr...> - 2005-03-08 18:55:11
|
Forgive me if I am asking an obvious newbie question. =20 I'm wondering how the engine manages sessions and message sequencing in a load balanced environment. Does each server in the farm to manage a separate session or do they somehow share a session? =20 I'm trying to understand how this will work in a fault-tolerant 7x24 environment that supports 1000's of users. Can someone offer some comments? =20 Thanks, David =20 |
From: Oren M. <or...@qu...> - 2005-03-08 16:54:10
|
Are the clients local to your network? You might consider storing your = settings in a database. You don't have to use configuration files, you = just need to have a configuration stream which you could generate a = variety of ways. --oren ----- Original Message -----=20 From: Patrick Flannery=20 To: Qui...@li...=20 Sent: Monday, March 07, 2005 2:16 PM Subject: [Quickfix-developers] Deployment Scripts ? Hi, Does anyone have any experience deploying a large number = of quickfix clients? The problem I am having is managing the = configuration files. There has to be a unique pair for each client in = the server and client configuration files. I thought some sort of code = generation would be useful but didn't have any specific ideas. =20 Patrick Flannery =20 =20 |
From: Patrick F. <pat...@ch...> - 2005-03-07 20:16:26
|
Hi, Does anyone have any experience deploying a large number of quickfix clients? The problem I am having is managing the configuration files. There has to be a unique pair for each client in the server and client configuration files. I thought some sort of code generation would be useful but didn't have any specific ideas. Patrick Flannery |
From: Robert Z. <rob...@ya...> - 2005-03-06 08:43:47
|
I want to use MySQL to store all the log information. I changed the examples with LogFactory logFactory = new MySQLLogFactory(settings); instead of the ScreenLogFactory(True, True, True) in the examples. But I got the following error: D:\quickfixSrc\bin>executor_vbnet cfg\executor.cfg System.NullReferenceException: Object reference not set to an instance of an obj ect. at QuickFix.CPPLog.onEvent(String s) at Log.onEvent(Log* , basic_string<char,std::char_traits<char>,std::allocator <char> >* string) at FIX.SocketAcceptor.__ctor(SocketAcceptor* , Application* , MessageStoreFac tory* , SessionSettings* , LogFactory* ) at QuickFix.SocketAcceptor..ctor(Application application, MessageStoreFactory factory, SessionSettings settings, LogFactory logFactory, MessageFactory messag eFactory) at executor_vbnet.Executor.Main(String[] CmdArgs) in D:\quickfixSrc\exam ples\executor\vbnet\Executor.vb:line 21. My system is winXP. I can use MessageStoreFactory messageStoreFactory = new MySQLStoreFactory(settings); without any problem. It stored the session/message information to my MySQL database. So I think my configuration should be fine. Any help? Thanks Robert --------------------------------- Celebrate Yahoo!'s 10th Birthday! Yahoo! Netrospective: 100 Moments of the Web |
From: Joerg T. <Joe...@ma...> - 2005-03-04 23:28:23
|
> In the original source code, sa_mask, and sa_flags are > uninitialized. If you read the man page on signaction, > this is a bad thing. In which man page did you read this? Solaris? > I added two lines > > sigemptyset( &sa.sa_mask); > sa.sa_flags = 0; > > to fix the situation > > > namespace FIX > { > void socket_init() > { QF_STACK_PUSH(socket_init) > > #ifdef _MSC_VER > WORD version = MAKEWORD( 2, 2 ); > WSADATA data; > WSAStartup( version, &data ); > #else > struct sigaction sa; > sa.sa_handler = SIG_IGN; > sigemptyset( &sa.sa_mask); > sa.sa_flags = 0; > sigaction( SIGPIPE, &sa, 0 ); > #endif > > QF_STACK_POP > } Clark, I cannot see whether in the case of SIG_IGN these fields will be used by the OS, but it is always a good idea to initialize variables. Oren did fix this in the CVS recently. Thanks, Jörg -- Joerg Thoennes http://macd.com Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen |
From: Joerg T. <Joe...@ma...> - 2005-03-04 17:11:12
|
Hi Alvin, > Hi, can I have 2 LogFactory working at the same time. For example, one > is MySQLLogFactory and the other is ScreenLogFactory. I found that will > be quite useful. Since you can define your own log factory, you could just define one which in turn logs both to the MySQLLogFactory and the ScreenLogFactory. In Java: public class DualLogFactory implements LogFactory { private LogFactory lf1; private LogFactory lf2; public DualLogFactory( LogFactory lf1, LogFactory lf2 ) { this.lf1=lf1; this.lf2=lf2; } public Log create( SessionID sessionID ) { return new DualLog( lf1.create( sessionID ), lf2.create( sessionID ) ); } } public class DualLog implements Log { Log l1; Log l2; public DualLog( Log l1, Log l2 ) { this.l1 = l1; this.l2 = l2; } public void onIncoming( String text ) { l1.onIncoming( text ); l2.onIncoming( text ); } ... } Hope that helps. Cheers, Jörg -- Joerg Thoennes http://macd.com Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen |
From: Alvin W. <AW...@FF...> - 2005-03-04 16:49:53
|
Hi, can I have 2 LogFactory working at the same time. For example, one is MySQLLogFactory and the other is ScreenLogFactory. I found that will be quite useful. thanks Alvin ********************************************************************** This e-mail message is intended solely for the use of the addressee. The message may contain information that is privileged and confidential. Disclosure to anyone other than the intended recipient is prohibited. If you are not the intended recipient, please do not disseminate, distribute or copy this communication, by e-mail or otherwise. Instead, please notify us immediately by return e-mail (including the original message with your reply) and then delete and discard all copies of the message. We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment to this message. We accept no liability for any loss or damage caused by software viruses. ********************************************************************** |
From: Clark S. <cla...@ya...> - 2005-03-03 23:51:27
|
In the original source code, sa_mask, and sa_flags are uninitialized. If you read the man page on signaction, this is a bad thing. I added two lines sigemptyset( &sa.sa_mask); sa.sa_flags = 0; to fix the situation namespace FIX { void socket_init() { QF_STACK_PUSH(socket_init) #ifdef _MSC_VER WORD version = MAKEWORD( 2, 2 ); WSADATA data; WSAStartup( version, &data ); #else struct sigaction sa; sa.sa_handler = SIG_IGN; sigemptyset( &sa.sa_mask); sa.sa_flags = 0; sigaction( SIGPIPE, &sa, 0 ); #endif QF_STACK_POP } __________________________________ Celebrate Yahoo!'s 10th Birthday! Yahoo! Netrospective: 100 Moments of the Web http://birthday.yahoo.com/netrospective/ |
From: Alexey Z. <ale...@in...> - 2005-03-03 21:48:50
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"> <title></title> </head> <body bgcolor="#ffffff" text="#000066"> Thank you, Oren.<br> <br> I think you should mention this in the documentation.<br> <br> <pre class="moz-signature" cols="60">Regards, Alexey Zubko </pre> <br> Oren Miller wrote: <blockquote cite="mid...@qu..." type="cite">Ah no. Having the same StartTime and EndTime indicates a 24 hour session. One that will begin at 00:00:00 and end at 00:00:00 the following day, for instance. If you want an infinite session, then you'll have to rig isSessionTime and isSameSession to always return true. There isn't a configuration setting to do this currently. <br> <br> --oren <br> <br> On Mar 3, 2005, at 3:27 PM, Alexey Zubko wrote: <br> <br> <blockquote type="cite"> Hello Oren, <br> <br> Closing my client application in the evening I expected to receive the last sequence number in the morning. <br> My client connected to CME which is reset seqnum once a week you know. <br> <br> If I set start day, start week and the right hours in my configuration file it works OK. <br> The only thing is that session time is not updated in the file. <br> <br> I thought if StartTime and EndTime are the same and if there are no StartDay and EndDay parameters in the configuration file when QuickFix is not going to disconnect sessions. Am I wrong? <br> <br> <br> <br> Regards, <br> Alexey Zubko <br> <br> <br> Oren Miller wrote: <br> Sure, the sequence numbers will be reset if you are no longer in the session. Those sequence numbers aren't relevant anymore because they pertain to a session that no longer exists. What would you expect to happen? <br> <br> --oren <br> <br> On Mar 3, 2005, at 2:55 PM, Alexey Zubko wrote: <br> <br> <br> QuickFIX Documentation: <a class="moz-txt-link-freetext" href="http://www.quickfixengine.org/quickfix/doc/html/index.html">http://www.quickfixengine.org/quickfix/doc/html/index.html</a> QuickFIX FAQ: <a class="moz-txt-link-freetext" href="http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ">http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ</a> QuickFIX Support: <a class="moz-txt-link-freetext" href="http://www.quickfixengine.org/services.html">http://www.quickfixengine.org/services.html</a> Hi All, <br> <br> I've got the following problem. <br> <br> My client application started a new session in the morning with a reset seqnum. <br> That was absolutely unexpected because seqnum in the file wasn't 1. <br> <br> I found how to reproduce that: <br> <br> 1. I have only start and end times in your configuration file <br> StartTime=00:00:00 <br> EndTime=00:00:00 <br> <br> 2. Change in the *.session file the day (minus one - session from the previous day) <br> <br> I found out that in the Session class constructor there is a call of reset() if the creation time (yesterday) is not the current time (today) :)). <br> <br> if( !checkSessionTime( UtcTimeStamp() ) ) <br> reset(); <br> ............... <br> <br> <br> -- <br> <br> Regards, <br> Alexey Zubko <br> <br> <br> ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. <a class="moz-txt-link-freetext" href="http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click">http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click</a> _______________________________________________ Quickfix-developers mailing list <a class="moz-txt-link-abbreviated" href="mailto:Qui...@li...">Qui...@li...</a> <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers">https://lists.sourceforge.net/lists/listinfo/quickfix-developers</a> <br> <br> <br> <br> </blockquote> <br> <br> </blockquote> </body> </html> |
From: Oren M. <or...@qu...> - 2005-03-03 21:40:41
|
Ah no. Having the same StartTime and EndTime indicates a 24 hour=20 session. One that will begin at 00:00:00 and end at 00:00:00 the=20 following day, for instance. If you want an infinite session, then=20 you'll have to rig isSessionTime and isSameSession to always return=20 true. There isn't a configuration setting to do this currently. --oren On Mar 3, 2005, at 3:27 PM, Alexey Zubko wrote: > Hello Oren, > > Closing my client application in the evening I expected to receive=20 > the last sequence number in the morning. > My client connected to CME which is reset seqnum once a week you = know. > > If I set start day, start week and the right hours in my=20 > configuration file it works OK. > The only thing is that session time is not updated in the file. > > I thought if StartTime and EndTime are the same and if there are no=20= > StartDay and EndDay parameters in the configuration file when QuickFix=20= > is not going to disconnect sessions. Am I wrong? > > > > Regards, > Alexey Zubko > > > Oren Miller wrote: > Sure, the sequence numbers will be reset if you are no longer in the=20= > session.=A0 Those sequence numbers aren't relevant anymore because = they=20 > pertain to a session that no longer exists.=A0 What would you expect = to=20 > happen? > > --oren > > On Mar 3, 2005, at 2:55 PM, Alexey Zubko wrote: > > > QuickFIX Documentation:=20 > http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX=20 > FAQ: http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ=20 > QuickFIX Support: http://www.quickfixengine.org/services.html=A0=A0 Hi=20= > All, > > =A0I've got the following problem. > > =A0My client application started a new session in the morning with a=20= > reset seqnum. > =A0That was absolutely unexpected because seqnum in the file wasn't = 1. > > =A0I found how to reproduce that: > > =A01. I have only start and end times in your configuration file > =A0StartTime=3D00:00:00 > =A0EndTime=3D00:00:00 > > =A02. Change in the *.session file the day (minus one - session from=20= > the previous day) > > =A0I found out that in the Session class constructor there is a call = of=20 > reset() if the creation time (yesterday) is not the current time=20 > (today) :)). > > =A0=A0 if( !checkSessionTime( UtcTimeStamp() ) ) > =A0=A0=A0=A0 reset(); > =A0............... > > > --=A0 > > Regards, > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Alexey Zubko > > > =A0------------------------------------------------------- SF email = is=20 > sponsored by - The IT Product Guide Read honest & candid reviews on=20 > hundreds of IT Products from real users. Discover which products truly=20= > live up to the hype. Start reading now.=20 > http://ads.osdn.com/?ad_id=3D6595&alloc_id=3D14396&op=3Dclick=20 > _______________________________________________ Quickfix-developers=20 > mailing list Qui...@li...=20 > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > |
From: Alexey Z. <ale...@in...> - 2005-03-03 21:28:00
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"> </head> <body bgcolor="#ffffff" text="#000066"> Hello Oren,<br> <br> Closing my client application in the evening I expected to receive the last sequence number in the morning.<br> My client connected to CME which is reset seqnum once a week you know.<br> <br> If I set start day, start week and the right hours in my configuration file it works OK.<br> The only thing is that session time is not updated in the file.<br> <br> I thought if StartTime and EndTime are the same and if there are no StartDay and EndDay parameters in the configuration file when QuickFix is not going to disconnect sessions. Am I wrong?<br> <br> <br> <pre class="moz-signature" cols="60">Regards, Alexey Zubko </pre> <br> Oren Miller wrote: <blockquote cite="mid...@qu..." type="cite">Sure, the sequence numbers will be reset if you are no longer in the session. Those sequence numbers aren't relevant anymore because they pertain to a session that no longer exists. What would you expect to happen? <br> <br> --oren <br> <br> On Mar 3, 2005, at 2:55 PM, Alexey Zubko wrote: <br> <br> <blockquote type="cite">QuickFIX Documentation: <a class="moz-txt-link-freetext" href="http://www.quickfixengine.org/quickfix/doc/html/index.html">http://www.quickfixengine.org/quickfix/doc/html/index.html</a> QuickFIX FAQ: <a class="moz-txt-link-freetext" href="http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ">http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ</a> QuickFIX Support: <a class="moz-txt-link-freetext" href="http://www.quickfixengine.org/services.html">http://www.quickfixengine.org/services.html</a> Hi All, <br> <br> I've got the following problem. <br> <br> My client application started a new session in the morning with a reset seqnum. <br> That was absolutely unexpected because seqnum in the file wasn't 1. <br> <br> I found how to reproduce that: <br> <br> 1. I have only start and end times in your configuration file <br> StartTime=00:00:00 <br> EndTime=00:00:00 <br> <br> 2. Change in the *.session file the day (minus one - session from the previous day) <br> <br> I found out that in the Session class constructor there is a call of reset() if the creation time (yesterday) is not the current time (today) :)). <br> <br> if( !checkSessionTime( UtcTimeStamp() ) ) <br> reset(); <br> ............... <br> <br> <br> -- <br> <br> Regards, <br> Alexey Zubko <br> <br> <br> ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. <a class="moz-txt-link-freetext" href="http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click">http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click</a> _______________________________________________ Quickfix-developers mailing list <a class="moz-txt-link-abbreviated" href="mailto:Qui...@li...">Qui...@li...</a> <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers">https://lists.sourceforge.net/lists/listinfo/quickfix-developers</a> <br> </blockquote> <br> </blockquote> </body> </html> |
From: Oren M. <or...@qu...> - 2005-03-03 21:19:00
|
Sure, the sequence numbers will be reset if you are no longer in the=20 session. Those sequence numbers aren't relevant anymore because they=20 pertain to a session that no longer exists. What would you expect to=20 happen? --oren On Mar 3, 2005, at 2:55 PM, Alexey Zubko wrote: > QuickFIX Documentation:=20 > http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX=20 > FAQ: http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ=20 > QuickFIX Support: http://www.quickfixengine.org/services.html Hi=20 > All, > > I've got the following problem. > > My client application started a new session in the morning with a=20 > reset seqnum. > That was absolutely unexpected because seqnum in the file wasn't 1. > > I found how to reproduce that: > > 1. I have only start and end times in your configuration file > StartTime=3D00:00:00 > EndTime=3D00:00:00 > > 2. Change in the *.session file the day (minus one - session from the=20= > previous day) > > I found out that in the Session class constructor there is a call of=20= > reset() if the creation time (yesterday) is not the current time=20 > (today) :)). > > =A0 if( !checkSessionTime( UtcTimeStamp() ) ) > =A0=A0=A0 reset(); > ............... > > > --=20 > > Regards, > Alexey Zubko > > > ------------------------------------------------------- SF email is=20= > sponsored by - The IT Product Guide Read honest & candid reviews on=20 > hundreds of IT Products from real users. Discover which products truly=20= > live up to the hype. Start reading now.=20 > http://ads.osdn.com/?ad_id=3D6595&alloc_id=3D14396&op=3Dclick=20 > _______________________________________________ Quickfix-developers=20 > mailing list Qui...@li...=20 > https://lists.sourceforge.net/lists/listinfo/quickfix-developers= |
From: Alexey Z. <ale...@in...> - 2005-03-03 20:55:34
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"> </head> <body bgcolor="#ffffff" text="#000066"> Hi All,<br> <br> I've got the following problem.<br> <br> My client application started a new session in the morning with a reset seqnum.<br> That was absolutely unexpected because seqnum in the file wasn't 1.<br> <br> I found how to reproduce that: <br> <br> 1. I have only start and end times in your configuration file<br> StartTime=00:00:00<br> EndTime=00:00:00<br> <br> 2. Change in the *.session file the day (minus one - session from the previous day)<br> <br> I found out that in the Session class constructor there is a call of reset() if the creation time (yesterday) is not the current time (today) :)).<br> <br> if( !checkSessionTime( UtcTimeStamp() ) )<br> reset();<br> ...............<br> <br> <pre class="moz-signature" cols="60">-- Regards, Alexey Zubko </pre> </body> </html> |
From: Oren M. <or...@qu...> - 2005-03-03 17:20:05
|
We are working on this problem in CVS version right now. What you=20 should be able to do is before you send the logout, set the sender and=20= target sequence numbers on the session to 1. This will make sure that=20= your message is sent out with a sequence number of 1, and that you will=20= be expecting a response with the sequence number set to 1. --oren > The problem is when I manually initiate a logon message with the=20 > ResetSeqNumFlag set to Y and the MsgSeqNum set to 1 (while already=20 > logged on). I get a matching logon message from the acceptor. This=20 > trips the invalid logon message exception and I am logged out. What it=20= > should do is reset the message sequence numbers and discard all old=20 > messages from the queue. I haven't tested the flip side of this=20 > problem, when the acceptor initiates this process. But I am sure it=20 > will trip the same exception and log out. > > Any suggestions? > > --Shane > > > -----Original Message----- > From: Oren Miller [mailto:or...@qu...] > Sent: 03 March 2005 14:15 > To: Shane Ryan > Cc: qui...@li... > Subject: Re: [Quickfix-developers] Generating two Test requests in a=20= > row > > Are you saying you need to send out two test requests whenever = QuickFIX > initiates one, or you need to respond twice when you receive a test > request from iLink, or both? > > --oren > > On Mar 1, 2005, at 11:34 AM, Shane Ryan wrote: > >> Has anyone gone through the CME iLink 2.0 certification process >> before, and if so have they figured out how to make quickfix generate >> two TestRequest messages in a row? >> >> =A0 >> >> I know iLinks behaviour is not inline with the FIX 4.2 specs but I >> don't think I'll be able to get them to change it. >> >> =A0 >> >> If anyone knows a quick patch, I can do to make it work as per the >> iLink specs it would be appreciated. >> >> =A0 >> >> =A0 >> >> Thanks, >> >> =A0 >> >> Shane > > |
From: Shane R. <Sr...@ty...> - 2005-03-03 15:14:02
|
Thanks for the reply. No neither of those cases. After I logon, if I don't receive a response to a heart beat I am = supposed to wait a reasonable amount of time and then send a TestRequest = message (as per the fix 4.2 specs). But what isn't inline with the specs = is that I am supposed to wait some more time and second a second = TestRequest. Then finally if I don't receive a reply to the second = TestRequest I am supposed to log out. But If I do I process the single = reply and proceed normally. I've solved the problem though. I edited SessionState.h and changed: bool needTestRequest() const { UtcTimeStamp now; =09 //START = CHANGE:******************************************************************= ****** if(( (now - lastReceivedTime()) >=3D 1.2*heartBtInt() ) && = (testRequest() =3D=3D 0)) return true; else if(( (now - lastReceivedTime()) >=3D 2.2*heartBtInt()) && = (testRequest() =3D=3D 1)) return true; return false; //END = CHANGE:******************************************************************= ******** /*START OLD = CODE:********************************************************************= **** return ( now - lastReceivedTime() ) >=3D ( ( 1.2 * ( ( double ) testRequest() + 1 ) ) * ( double ) = heartBtInt() ); END OLD = CODE:********************************************************************= ********/ } I realize this isn't a problem with QuickFix as it is in line with the = FIX 4.2 specs and the CME isn't. But I have found a case where QuickFix isn't FIX 4.2 complient. = According to the FIX 4.2 specs: Version 4.2 with Errata 20010501 When using the ResetSeqNumFlag to maintain 24 hour connectivity and = establish a new set of sequence numbers, the process should be as = follows. Both sides should agree on a reset time and the party that will = be the initiator of the process. Note that the initiator of the = ResetSeqNum process may be different than the initiator of the Logon = process. One side will initiate the process by sending a TestRequest and = wait for a Heartbeat in response to ensure of no sequence number gaps. = Once the Heartbeat has been received, the initiator should send a Logon = with ResetSeqNumFlag set to Y and with MsgSeqNum of 1. The acceptor = should respond with a Logon with ResetSeqNumFlag set to Y and with = MsgSeqNum of 1. At this point new messages from either side should = continue with MsgSeqNum of 2. It should be noted that once the initiator = sends the Logon with the ResetSeqNumFlag set, the acceptor must obey = this request and the message with the last sequence number transmitted = "yesterday" may no longer be available. The connection should be = shutdown and manual intervention taken, if this process is initiated but = not followed properly. The problem is when I manually initiate a logon message with the = ResetSeqNumFlag set to Y and the MsgSeqNum set to 1 (while already = logged on). I get a matching logon message from the acceptor. This trips = the invalid logon message exception and I am logged out. What it should = do is reset the message sequence numbers and discard all old messages = from the queue. I haven't tested the flip side of this problem, when the = acceptor initiates this process. But I am sure it will trip the same = exception and log out. Any suggestions? --Shane -----Original Message----- From: Oren Miller [mailto:or...@qu...]=20 Sent: 03 March 2005 14:15 To: Shane Ryan Cc: qui...@li... Subject: Re: [Quickfix-developers] Generating two Test requests in a row Are you saying you need to send out two test requests whenever QuickFIX=20 initiates one, or you need to respond twice when you receive a test=20 request from iLink, or both? --oren On Mar 1, 2005, at 11:34 AM, Shane Ryan wrote: > Has anyone gone through the CME iLink 2.0 certification process=20 > before, and if so have they figured out how to make quickfix generate=20 > two TestRequest messages in a row? > > =A0 > > I know iLinks behaviour is not inline with the FIX 4.2 specs but I=20 > don't think I'll be able to get them to change it. > > =A0 > > If anyone knows a quick patch, I can do to make it work as per the=20 > iLink specs it would be appreciated. > > =A0 > > =A0 > > Thanks, > > =A0 > > Shane |