Thread: [Quickfix-developers] FIX Server time VS Local time
Brought to you by:
orenmnero
From: Facchetti - K. <s.f...@kl...> - 2007-10-10 15:23:34
|
I use QuickFix 1.12.4 My FIX initiator is connected with a server situated in London.. When I receive FIX message, in the datetime field, I read London time.. Is it possible, by QuickFIx, to automatic transform the server time in my local time..? Thanks, Stefano |
From: Facchetti - K. <s.f...@kl...> - 2008-06-10 08:07:09
|
If I send many messages with the initiator (I call sendToTarget method in a loop), after some time, the server sends me this error message: "SENDINGTIME ACCURACY PROBLEM". I suppose that quickfix set the message's timestamp before putting it in a queue.. If the queue is big (like in my case), there is a delay in the message delivery. How can I do..? Thanks, Stefano -- Distinti saluti Ing. Stefano Facchetti** * * *KLINE srl */Via Solferino, 4/b 25024 Leno (BS) Tel. 030 9048384 Fax 02 700443977/** * * This e-mail, including any attachments, may contain private or confidential information. If you think you may not be the intended recipient, or if you have received this e-mail in error, please contact the sender immediately and delete all copies of this e-mail. If you are not the intended recipient, you must not reproduce any part of this e-mail or disclose its contents to any other party. This message represents the opinion of the sender and not necessarily the opinion of the company. |
From: Eranga S. <PE...@ri...> - 2008-06-10 10:25:00
|
Hi, If you are running your initiator and acceptor in two separate machine, then make sure to synchronize time. There are few other option available to resolve this issue. E.g: You can set "CheckLatency=N" property in your QuickFix configuration file. For more infor read the QuickFix documentation http://www.quickfixengine.org/quickfix/doc/html/configuration.html Specially read about CheckLatency and MaxLatency sections. Regards, Eranga. -----Original Message----- From: Facchetti - Kline [mailto:s.f...@kl...] Sent: Tue 6/10/2008 1:36 PM To: qui...@li... Subject: [Quickfix-developers] SENDINGTIME ACCURACY PROBLEM QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html If I send many messages with the initiator (I call sendToTarget method in a loop), after some time, the server sends me this error message: "SENDINGTIME ACCURACY PROBLEM". I suppose that quickfix set the message's timestamp before putting it in a queue.. If the queue is big (like in my case), there is a delay in the message delivery. How can I do..? Thanks, Stefano |
From: Facchetti - K. <s.f...@kl...> - 2008-06-10 12:14:17
|
I'm running only the initiator. My FIX client machine is syncronize with time server as well FIX server machine. The third party FIX server can't disable sending time control. I attach my quickfix log. As you can see, I send only 19th SecurityDefinitionRequest, and while replies are preocessed, I receive from the server "SENDINGTIME ACCURACY PROBLEM". Thanks, Stefano Eranga Samararathne ha scritto: > > If you are running your initiator and acceptor in two separate > machine, then make sure to synchronize time. > There are few other option available to resolve this issue. > > E.g: You can set "CheckLatency=N" property in your QuickFix > configuration file. > > For more infor read the QuickFix documentation > http://www.quickfixengine.org/quickfix/doc/html/configuration.html > > Specially read about CheckLatency and MaxLatency sections. > > Regards, > > Eranga. > > > -----Original Message----- > > > If I send many messages with the initiator (I call sendToTarget method > in a loop), after some time, the server sends me this error message: > "SENDINGTIME ACCURACY PROBLEM". > I suppose that quickfix set the message's timestamp before putting it > in a queue.. If the queue is big (like in my case), there is a delay > in the message delivery. > > How can I do..? > > Thanks, > Stefano > |
From: Rodrick B. <rod...@gm...> - 2008-06-10 12:31:19
|
You will need to optimize you're code your queues are growing too large find out what's causing the bottle neck, I experienced a similar bug on my system many months back and was able to overcome this issue. On Tue, Jun 10, 2008 at 8:14 AM, Facchetti - Kline <s.f...@kl...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > I'm running only the initiator. > My FIX client machine is syncronize with time server as well FIX server > machine. > The third party FIX server can't disable sending time control. > > I attach my quickfix log. > As you can see, I send only 19th SecurityDefinitionRequest, and while > replies are preocessed, I receive from the server "SENDINGTIME ACCURACY > PROBLEM". > > Thanks, > Stefano > > Eranga Samararathne ha scritto: > > If you are running your initiator and acceptor in two separate machine, > then make sure to synchronize time. > There are few other option available to resolve this issue. > > E.g: You can set "CheckLatency=N" property in your QuickFix configuration > file. > > For more infor read the QuickFix documentation > http://www.quickfixengine.org/quickfix/doc/html/configuration.html > > Specially read about CheckLatency and MaxLatency sections. > > Regards, > > Eranga. > > > -----Original Message----- > > > If I send many messages with the initiator (I call sendToTarget method in a > loop), after some time, the server sends me this error message: "SENDINGTIME > ACCURACY PROBLEM". > I suppose that quickfix set the message's timestamp before putting it in a > queue.. If the queue is big (like in my case), there is a delay in the > message delivery. > > How can I do..? > > Thanks, > Stefano > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > -- [ Rodrick R. Brown ] http://www.rodrickbrown.com http://www.linkedin.com/in/rodrickbrown |
From: Facchetti - K. <s.f...@kl...> - 2008-06-10 12:52:14
|
Is it possible to set FIX message timestamp before the message is sent instead of queued? I think that the problem is here: bool FIX::SocketConnection::send ( const std::string & ) | [private, virtual]| Implements FIX::Responder <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_responder.html#a1>. Definition at line 63 <http://www.quickfixengine.org/quickfix/doc/html/_socket_connection_8cpp-source.html#l00063> of file SocketConnection.cpp <http://www.quickfixengine.org/quickfix/doc/html/_socket_connection_8cpp-source.html>. 00064 { QF_STACK_PUSH <http://www.quickfixengine.org/quickfix/doc/html/_call_stack_8h.html#a0>(SocketConnection::send) 00065 00066 Locker l( m_mutex ); 00067 00068 m_sendQueue <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#r3>.push_back( msg ); 00069 processQueue <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#a7>(); 00070 signal <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#a8>(); 00071 return true; 00072 00073 QF_STACK_POP <http://www.quickfixengine.org/quickfix/doc/html/_call_stack_8h.html#a1> 00074 } bool FIX::SocketConnection::processQueue ( ) Definition at line 76 <http://www.quickfixengine.org/quickfix/doc/html/_socket_connection_8cpp-source.html#l00076> of file SocketConnection.cpp <http://www.quickfixengine.org/quickfix/doc/html/_socket_connection_8cpp-source.html>. 00077 { QF_STACK_PUSH <http://www.quickfixengine.org/quickfix/doc/html/_call_stack_8h.html#a0>(SocketConnection::processQueue) 00078 00079 Locker l( m_mutex ); 00080 00081 if( !m_sendQueue <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#r3>.size() ) return true; 00082 00083 struct timeval timeout = { 0, 0 }; 00084 fd_set writeset = m_fds <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#r9>; 00085 if( select( 1 + m_socket, 0, &writeset, 0, &timeout ) <= 0 ) 00086 return false; 00087 00088 const std::string& msg = m_sendQueue <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#r3>.front(); 00089 00090 int result = socket_send <http://www.quickfixengine.org/quickfix/doc/html/namespace_f_i_x.html#a2911> 00091 ( m_socket <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#r0>, msg.c_str() + m_sendLength <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#r4>, msg.length() - m_sendLength <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#r4> ); 00092 00093 if( result > 0 ) 00094 m_sendLength <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#r4> += result; 00095 00096 if( m_sendLength <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#r4> == msg.length() ) 00097 { 00098 m_sendLength <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#r4> = 0; 00099 m_sendQueue <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#r3>.pop_front(); 00100 } 00101 00102 return !m_sendQueue <http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_socket_connection.html#r3>.size(); 00103 00104 QF_STACK_POP <http://www.quickfixengine.org/quickfix/doc/html/_call_stack_8h.html#a1> 00105 } Rodrick Brown ha scritto: > You will need to optimize you're code your queues are growing too > large find out what's causing the bottle neck, I experienced a similar > bug on my system many months back and was able to overcome this issue. > > On Tue, Jun 10, 2008 at 8:14 AM, Facchetti - Kline > <s.f...@kl... <mailto:s.f...@kl...>> wrote: > > > I'm running only the initiator. > My FIX client machine is syncronize with time server as well FIX > server machine. > The third party FIX server can't disable sending time control. > > I attach my quickfix log. > As you can see, I send only 19th SecurityDefinitionRequest, and > while replies are preocessed, I receive from the server > "SENDINGTIME ACCURACY PROBLEM". > > Thanks, > Stefano > > Eranga Samararathne ha scritto: >> >> If you are running your initiator and acceptor in two separate >> machine, then make sure to synchronize time. >> There are few other option available to resolve this issue. >> >> E.g: You can set "CheckLatency=N" property in your QuickFix >> configuration file. >> >> For more infor read the QuickFix documentation >> http://www.quickfixengine.org/quickfix/doc/html/configuration.html >> >> Specially read about CheckLatency and MaxLatency sections. >> >> Regards, >> >> Eranga. >> >> >> -----Original Message----- >> >> >> If I send many messages with the initiator (I call sendToTarget >> method in a loop), after some time, the server sends me this >> error message: "SENDINGTIME ACCURACY PROBLEM". >> I suppose that quickfix set the message's timestamp before >> putting it in a queue.. If the queue is big (like in my case), >> there is a delay in the message delivery. >> >> How can I do..? >> >> Thanks, >> Stefano >> |