quickfix-developers Mailing List for QuickFIX (Page 196)
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
|
| 2026 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: VP M. IT A. E. T. <ass...@gm...> - 2005-06-28 18:49:52
|
All of this with QF-J implementation.
Later I will try C++ version and update the list.
Thanks for all your help.
--
RK
On 6/28/05, VP Marketing IT Asset Enterprise Technologies
<ass...@gm...> wrote:
> I switched to an executor in the LAN and it worked fine. You are correct
> the trouble earlier was with the settings file...
>=20
> The file is there. But there is only one session and that is with an exte=
rnal
> party and it could be failing for a number of reasons.
>=20
> The error (console) output did not indicate that. It misdirects to an
> initiator not
> being there.
>=20
> We can talk about how to structure a generic Error control and communicat=
ion
> exception hierarchy.
>=20
> Consider the following three classes:
>=20
> class QuickfixJErrorList
> {
> final String error_string[] =3D
> {
> "ILLEGAL ARGUMENT/INTERNAL ERROR",
> "CONFIG FILE NOT READABLE",
> "CONFIG NOT ACCORDING TO SPECIFICATION", // somethign simpler may be
> "SESSION COULD NOT BE INITIALIZED",
>=20
> };
> final int base_error=3D1300;
> final int error_no[] =3D {1300,1301,1302, 1303} ; // this coudl be
> base_error, base_error+1, etc
>=20
> static public String getErrorMessage(int code) {
> return error_string[(code>base_error&&(code<(base_error+error_no.length))=
)?code:0);
> }
> static public String getErrorMessage(String code){
> try {
> return getErrorMessage(Integer.parseInt(code.trim()));
> } catch(Exception e) { }
> return getErrorMessage(0);
> }
> }
> class QuickfixException extends Exception
> {
> QuickfixException (String msgCode)
> {
> super(QuickfixJErrorList.getErrorMessage(msg);
> }
> }
>=20
> And we can implement the JErrorList in XML and load the DOM
> or put it on HSQLDB or some such thing and manage it from anywhere.
> instead of being static class...
>=20
> I am hacking as I am writing this email.. the idea may be clearer...
> I can do this..if you send me a specification what you want.
> --
> rk
>
|
|
From: VP M. IT A. E. T. <ass...@gm...> - 2005-06-28 18:41:51
|
Here is what I see happening
F (my company) sends a 35=3DA to C the client
Client sends 35=3DA
QF does not like tag 52...do not know why yet...
and it tries to reject that message before login occurs
so an exception is thrown and then we know the rest...
I guess the same thing happened yesterday with Quickfix.
This is with QuickfixJ.
Oren, now I am going to do the cvs up command see if the updates help
me nudge along.
( I am guessing the CVS up is shorthand for CVS update...I am severely
handicapped with C++, CVS and windows)
I hope am not being taken for high maintenance user
--
RK
<20050628-18:28:04, FIX.4.2:FTEST->CTEST, outgoing>
(8=3DFIX.4.29=3D7135=3DA34=3D149=3DFTEST52=3D20050628-18:28:04.33156=3DCTES=
T98=3D0108=3D3010=3D197)
<20050628-18:28:04, FIX.4.2:FTEST->CTEST, event> (Initiated logon request)
<20050628-18:28:04, FIX.4.2:FTEST->CTEST, outgoing>
(8=3DFIX.4.29=3D7135=3DA34=3D149=3DFTEST52=3D20050628-18:28:04.33156=3DCTES=
T98=3D0108=3D3010=3D197)
<20050628-18:28:04, FIX.4.2:FTEST->CTEST, incoming>
(8=3DFIX.4.29=3D8735=3DA49=3DCTEST56=3DFTEST34=3D0000198=3D052=3D20050628-1=
8:27:49108=3D60141=3DN383=3D5600010=3D203)
<20050628-18:28:04, FIX.4.2:FTEST->CTEST, event> (error while receiving mes=
sage
quickfix.SessionException: Tried to send a reject while not logged on:
Tag specified out of required order (field 52)
at quickfix.Session.generateReject(Session.java:753)
at quickfix.Session.next(Session.java:508)
at quickfix.netty.AbstractSocketInitiator.processMessage(AbstractSo=
cketInitiator.java:210)
at quickfix.SocketInitiator.onMessage(SocketInitiator.java:94)
at quickfix.netty.AbstractSocketInitiator$SessionConnection$NettySe=
ssionListener.messageReceived(AbstractSocketInitiator.java:380)
at net.gleamynode.netty2.Session.fireMessageReceived(Session.java:7=
33)
at net.gleamynode.netty2.LowLatencyEventDispatcher.flush(LowLatency=
EventDispatcher.java:67)
at net.gleamynode.netty2.ReadController.processEvent(ReadController=
.java:360)
at net.gleamynode.netty2.IoProcessor.process(IoProcessor.java:334)
at net.gleamynode.netty2.IoProcessor.access$500(IoProcessor.java:73=
)
at net.gleamynode.netty2.IoProcessor$Worker.run(IoProcessor.java:36=
4)
)
<20050628-18:28:04, FIX.4.2:FTEST->CTEST, event> (Dropped Connection)
FIX.4.2:FTEST->CTEST is LOGGED OUT <20050628-18:28:04,
FIX.4.2:FTEST->CTEST, outgoing>
(8=3DFIX.4.29=3D7135=3DA34=3D249=3DFTEST52=3D20050628-18:28:04.63356=3DCTES=
T98=3D0108=3D3010=3D203)
<20050628-18:28:04, FIX.4.2:FTEST->CTEST, event> (Initiated logon request)
On 6/28/05, VP Marketing IT Asset Enterprise Technologies
<ass...@gm...> wrote:
> I switched to an executor in the LAN and it worked fine. You are correct
> the trouble earlier was with the settings file...
>=20
> The file is there. But there is only one session and that is with an exte=
rnal
> party and it could be failing for a number of reasons.
>=20
> The error (console) output did not indicate that. It misdirects to an
> initiator not
> being there.
>=20
> We can talk about how to structure a generic Error control and communicat=
ion
> exception hierarchy.
>=20
> Consider the following three classes:
>=20
> class QuickfixJErrorList
> {
> final String error_string[] =3D
> {
> "ILLEGAL ARGUMENT/INTERNAL ERROR",
> "CONFIG FILE NOT READABLE",
> "CONFIG NOT ACCORDING TO SPECIFICATION", // somethign simpler may be
> "SESSION COULD NOT BE INITIALIZED",
>=20
> };
> final int base_error=3D1300;
> final int error_no[] =3D {1300,1301,1302, 1303} ; // this coudl be
> base_error, base_error+1, etc
>=20
> static public String getErrorMessage(int code) {
> return error_string[(code>base_error&&(code<(base_error+error_no.length))=
)?code:0);
> }
> static public String getErrorMessage(String code){
> try {
> return getErrorMessage(Integer.parseInt(code.trim()));
> } catch(Exception e) { }
> return getErrorMessage(0);
> }
> }
> class QuickfixException extends Exception
> {
> QuickfixException (String msgCode)
> {
> super(QuickfixJErrorList.getErrorMessage(msg);
> }
> }
>=20
> And we can implement the JErrorList in XML and load the DOM
> or put it on HSQLDB or some such thing and manage it from anywhere.
> instead of being static class...
>=20
> I am hacking as I am writing this email.. the idea may be clearer...
> I can do this..if you send me a specification what you want.
> --
> rk
>
|
|
From: VP M. IT A. E. T. <ass...@gm...> - 2005-06-28 17:35:13
|
I switched to an executor in the LAN and it worked fine. You are correct
the trouble earlier was with the settings file...
The file is there. But there is only one session and that is with an extern=
al
party and it could be failing for a number of reasons.
The error (console) output did not indicate that. It misdirects to an
initiator not
being there.
We can talk about how to structure a generic Error control and communicatio=
n=20
exception hierarchy.
Consider the following three classes:
class QuickfixJErrorList
{
final String error_string[] =3D
{
"ILLEGAL ARGUMENT/INTERNAL ERROR",
"CONFIG FILE NOT READABLE",
"CONFIG NOT ACCORDING TO SPECIFICATION", // somethign simpler may be
"SESSION COULD NOT BE INITIALIZED",
};
final int base_error=3D1300;
final int error_no[] =3D {1300,1301,1302, 1303} ; // this coudl be
base_error, base_error+1, etc
static public String getErrorMessage(int code) {
return error_string[(code>base_error&&(code<(base_error+error_no.length)))?=
code:0);
}
static public String getErrorMessage(String code){
try {
return getErrorMessage(Integer.parseInt(code.trim()));
} catch(Exception e) { }
return getErrorMessage(0); =20
}
}
class QuickfixException extends Exception
{
QuickfixException (String msgCode)
{
super(QuickfixJErrorList.getErrorMessage(msg);
}
}
And we can implement the JErrorList in XML and load the DOM=20
or put it on HSQLDB or some such thing and manage it from anywhere.
instead of being static class...
I am hacking as I am writing this email.. the idea may be clearer...
I can do this..if you send me a specification what you want.
--
rk
|
|
From: Oren M. <or...@qu...> - 2005-06-28 16:59:34
|
That's how the C++/JNI wrapper work. Running under jni you would have gotten an error message like this: quickfix.ConfigError: Configuration failed: /directory/ MyMissingFile.xml: Could not parse data dictionary file There it just short circuits and breaks out of any other initialization. --oren On Jun 28, 2005, at 11:45 AM, Steve Bate 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 > > Was there an earlier exception that may have caused the session > to not be configured? For example, not finding the dictionary could > have this effect. I write a simple application using your config > file and I got the exception you reported before I changed the > DataDictionary setting to a data dictionary on my local computer. > After that change, the application started with no problem. I'm > not saying the data dictionary setting is the problem on your system. > It could be something else. > > The code is written so that an exception during initializing a > particular session will not cause the socket initiator class to > stop processing other session definitions. If users prefer to have > the socket initiator die if any specific can't be initiated, I'd > be happy to make that change. Let me know. > > Steve > > >> -----Original Message----- >> From: VP Marketing IT Asset Enterprise Technologies >> [mailto:ass...@gm...] >> Sent: Tuesday, June 28, 2005 10:41 AM >> To: Steve Bate >> Cc: qui...@li... >> Subject: I have a question about QF-J >> >> quickfix.ConfigError: no initiators in settings >> at >> quickfix.netty.AbstractSocketInitiator.initialize >> (AbstractSocketInitiator. >> java:178) >> at >> quickfix.netty.AbstractSocketInitiator.start >> (AbstractSocketInitiator.java: >> 117) >> at FixGwy.<init>(Unknown Source) >> at FixGwy.main(Unknown Source) >> >> I am getting this error. >> Here is what I have done: >> I got the j CVS distribution and did the build using build.xml. >> All the >> tests >> ran fine. >> Then I integrated with my application which had been built on >> quickfix >> distribution. >> I removed the lines which loaded the quickfix_jni library. >> I did not do any other change. >> I included the /build/classes/product directory and a couple of jars >> from j/lib directory. I am getting the above exception. >> >> Here is the contents of my settings file: >> >> [DEFAULT] >> ConnectionType=initiator >> HeartBtInt=30 >> FileStorePath=store >> StartTime=00:00:00 >> EndTime=00:00:00 >> UseDataDictionary=Y >> SocketConnectHost=199.53.16.226 >> SocketConnectPort=5545 >> ReconnectInterval=1 >> >> [SESSION] >> BeginString=FIX.4.2 >> SenderCompID=FMCPTEST >> TargetCompID=CSFBTEST >> DataDictionary=/home/rkannan/FIX/dist/quickfix/spec/FIX42.xml >> >> Right after I hit the send button I am going to look at cfg for >> Banzai >> and try to mimic that. >> BTW, >> >> I have a SharedBlockedQueue which uses one other class SharedCounter >> which implements thread safe get and put with and without time to >> wait. >> All my sockets IO is feeding this Queue and all my Object reads are >> blocked >> or unblocked as needed. If you would like to look at the >> implementation please let me know. I am looking forward to >> implementing some stuff for quickfixj >> right after I get this project out of my plate. >> >> Bye >> >> > > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > |
|
From: Barry M. <bar...@ya...> - 2005-06-28 16:52:34
|
Since the QuickFIX Engine is capable of multithreaded operation, I would expect dual CPUs to provide increased performance. Even without multithreaded operation, it seems that one should be able to run 2 instances of the engine, one on each CPU, to get better performance. Does any one have any views/experience with regard to this question? Thanks, Barry Barry Marks Logicware, Inc. Northbrook, IL email: barryimarks, yahoo.com |
|
From: Sean K. <Sea...@Pi...> - 2005-06-28 16:48:54
|
I was putting this code in, but there is neither readFromSocket() nor
readMessages() in the SocketConnection object/base in 1.9.4. Is this
the version in CVS? I would prefer to patch the released source,
if possible. The function taken directly from 1.9.4 is as follows:
bool SocketConnection::read( SocketAcceptor& a, SocketServer& s )
{ QF_STACK_PUSH(SocketConnection::read)
std::string msg;
try
{
if ( !readMessage( msg ) ) return false;
if ( !m_pSession )
{
m_pSession =3D Session::lookupSession( msg, true );
if ( m_pSession )
m_pSession =3D Session::registerSession( =
m_pSession->getSessionID() );
if ( m_pSession )
m_pSession =3D a.getSession( msg, *this );
}
if ( m_pSession )
m_pSession->next( msg );
else
s.getMonitor().drop( m_socket );
return true;
}
catch ( RecvFailed& )
{
s.getMonitor().drop( m_socket );
}
catch ( InvalidMessage& )
{
if ( !m_pSession->isLoggedOn() )
s.getMonitor().drop( m_socket );
}
return true;
QF_STACK_POP
}
Will modifying the code to be the following (with the extra
isSessionRegistered check) be a sufficient fix? Or is it
necessary to pull the call to readMessage and Session::next
into the if (!m_pSession) block?=20
bool SocketConnection::read( SocketAcceptor& a, SocketServer& s )
{ QF_STACK_PUSH(SocketConnection::read)
std::string msg;
try
{
if ( !readMessage( msg ) ) return false;
if ( !m_pSession )
{
m_pSession =3D Session::lookupSession( msg, true );
if ( m_pSession &&
Session::isSessionRegistered(m_pSession->getSessionID()) )
m_pSession =3D 0;
if ( m_pSession )
m_pSession =3D a.getSession( msg, *this );
if ( m_pSession )
m_pSession =3D Session::registerSession( =
m_pSession->getSessionID() );
}
if ( m_pSession )
m_pSession->next( msg );
else
s.getMonitor().drop( m_socket );
return true;
}
catch ( RecvFailed& )
{
s.getMonitor().drop( m_socket );
}
catch ( InvalidMessage& )
{
if ( !m_pSession->isLoggedOn() )
s.getMonitor().drop( m_socket );
}
return true;
QF_STACK_POP
}
--Sean
> -----Original Message-----
> From: Oren Miller [mailto:or...@qu...]
> Sent: Tuesday, June 28, 2005 9:27 AM
> To: Sean Kirkpatrick; qui...@li...
> Subject: Re: [Quickfix-developers] SocketConnection session=20
> registration
> BUG
>=20
>=20
> Sean,
>=20
> When applying your patch, other acceptance tests break. In=20
> fact it results=20
> in a crash during a typical multiple logon scenario. (If you=20
> run your=20
> acceptance tests, it should reveal the same thing to you). =20
> I've included=20
> another implementation of SocketConnection::read which passes all the=20
> acceptance tests and should also fix the bug you've reported.=20
> Please report=20
> back if that is the case:
>=20
> bool SocketConnection::read( SocketAcceptor& a, SocketServer& s )
> { QF_STACK_PUSH(SocketConnection::read)
>=20
> std::string msg;
> try
> {
> readFromSocket();
>=20
> if ( !m_pSession )
> {
> if ( !readMessage( msg ) ) return false;
> m_pSession =3D Session::lookupSession( msg, true );
> if( m_pSession &&=20
> Session::isSessionRegistered(m_pSession->getSessionID()) )
> m_pSession =3D 0;
> if( m_pSession )
> m_pSession =3D a.getSession( msg, *this );
> if( m_pSession )
> m_pSession->next( msg );
> if( !m_pSession )
> {
> s.getMonitor().drop( m_socket );
> return false;
> }
>=20
> Session::registerSession( m_pSession->getSessionID() );
> }
>=20
> readMessages( s.getMonitor() );
> return true;
> }
> catch ( SocketRecvFailed& e )
> {
> if( m_pSession )
> m_pSession->getLog()->onEvent( e.what() );
> s.getMonitor().drop( m_socket );
> }
> catch ( InvalidMessage& )
> {
> s.getMonitor().drop( m_socket );
> }
> return false;
>=20
> QF_STACK_POP
> }
> ----- Original Message -----=20
> From: "Sean Kirkpatrick" <Sea...@Pi...>
> To: <qui...@li...>
> Sent: Monday, June 27, 2005 10:34 AM
> Subject: [Quickfix-developers] SocketConnection session=20
> registration BUG
>=20
>=20
> QuickFIX Documentation:=20
> http://www.quickfixengine.org/quickfix/doc/html/index.html
> QuickFIX FAQ:=20
http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ
QuickFIX Support: http://www.quickfixengine.org/services.html
I believe that there is a very simple fix that will correct this issue. =
The
order of the following code in SocketConnection::read (the LOGDEBUG =
lines=20
are
for the logging I added):
if ( m_pSession ) {
LOGDEBUG(funcname,"registering session=20
[%s]",m_pSession->getSessionID().toString().c_str());
m_pSession =3D Session::registerSession( m_pSession->getSessionID() =
);
}
if ( m_pSession ) {
LOGDEBUG(funcname,"getting SocketAcceptor session =
[%s]",msg.c_str());
m_pSession =3D a.getSession( msg, *this );
}
needs to be reversed to be:
if ( m_pSession ) {
LOGDEBUG(funcname,"getting SocketAcceptor session =
[%s]",msg.c_str());
m_pSession =3D a.getSession( msg, *this );
}
if ( m_pSession ) {
LOGDEBUG(funcname,"registering session=20
[%s]",m_pSession->getSessionID().toString().c_str());
m_pSession =3D Session::registerSession( m_pSession->getSessionID() =
);
}
|
|
From: Steve B. <st...@te...> - 2005-06-28 16:47:56
|
Was there an earlier exception that may have caused the session to not be configured? For example, not finding the dictionary could have this effect. I write a simple application using your config file and I got the exception you reported before I changed the DataDictionary setting to a data dictionary on my local computer. After that change, the application started with no problem. I'm not saying the data dictionary setting is the problem on your system. It could be something else. The code is written so that an exception during initializing a particular session will not cause the socket initiator class to stop processing other session definitions. If users prefer to have the socket initiator die if any specific can't be initiated, I'd be happy to make that change. Let me know. Steve > -----Original Message----- > From: VP Marketing IT Asset Enterprise Technologies > [mailto:ass...@gm...] > Sent: Tuesday, June 28, 2005 10:41 AM > To: Steve Bate > Cc: qui...@li... > Subject: I have a question about QF-J > > quickfix.ConfigError: no initiators in settings > at > quickfix.netty.AbstractSocketInitiator.initialize(AbstractSocketInitiator. > java:178) > at > quickfix.netty.AbstractSocketInitiator.start(AbstractSocketInitiator.java: > 117) > at FixGwy.<init>(Unknown Source) > at FixGwy.main(Unknown Source) > > I am getting this error. > Here is what I have done: > I got the j CVS distribution and did the build using build.xml. All the > tests > ran fine. > Then I integrated with my application which had been built on quickfix > distribution. > I removed the lines which loaded the quickfix_jni library. > I did not do any other change. > I included the /build/classes/product directory and a couple of jars > from j/lib directory. I am getting the above exception. > > Here is the contents of my settings file: > > [DEFAULT] > ConnectionType=initiator > HeartBtInt=30 > FileStorePath=store > StartTime=00:00:00 > EndTime=00:00:00 > UseDataDictionary=Y > SocketConnectHost=199.53.16.226 > SocketConnectPort=5545 > ReconnectInterval=1 > > [SESSION] > BeginString=FIX.4.2 > SenderCompID=FMCPTEST > TargetCompID=CSFBTEST > DataDictionary=/home/rkannan/FIX/dist/quickfix/spec/FIX42.xml > > Right after I hit the send button I am going to look at cfg for Banzai > and try to mimic that. > BTW, > > I have a SharedBlockedQueue which uses one other class SharedCounter > which implements thread safe get and put with and without time to wait. > All my sockets IO is feeding this Queue and all my Object reads are > blocked > or unblocked as needed. If you would like to look at the > implementation please let me know. I am looking forward to > implementing some stuff for quickfixj > right after I get this project out of my plate. > > Bye > |
|
From: VP M. IT A. E. T. <ass...@gm...> - 2005-06-28 15:41:55
|
quickfix.ConfigError: no initiators in settings
at quickfix.netty.AbstractSocketInitiator.initialize(AbstractSocket=
Initiator.java:178)
at quickfix.netty.AbstractSocketInitiator.start(AbstractSocketIniti=
ator.java:117)
at FixGwy.<init>(Unknown Source)
at FixGwy.main(Unknown Source)
I am getting this error.
Here is what I have done:
I got the j CVS distribution and did the build using build.xml. All the tes=
ts
ran fine.
Then I integrated with my application which had been built on quickfix
distribution.
I removed the lines which loaded the quickfix_jni library.
I did not do any other change.=20
I included the /build/classes/product directory and a couple of jars
from j/lib directory. I am getting the above exception.
Here is the contents of my settings file:
[DEFAULT]
ConnectionType=3Dinitiator
HeartBtInt=3D30
FileStorePath=3Dstore
StartTime=3D00:00:00
EndTime=3D00:00:00
UseDataDictionary=3DY
SocketConnectHost=3D199.53.16.226
SocketConnectPort=3D5545
ReconnectInterval=3D1
[SESSION]
BeginString=3DFIX.4.2
SenderCompID=3DFMCPTEST
TargetCompID=3DCSFBTEST
DataDictionary=3D/home/rkannan/FIX/dist/quickfix/spec/FIX42.xml
Right after I hit the send button I am going to look at cfg for Banzai
and try to mimic that.
BTW,
I have a SharedBlockedQueue which uses one other class SharedCounter
which implements thread safe get and put with and without time to wait.
All my sockets IO is feeding this Queue and all my Object reads are blocked
or unblocked as needed. If you would like to look at the
implementation please let me know. I am looking forward to
implementing some stuff for quickfixj
right after I get this project out of my plate.
Bye
On 6/8/05, VP Marketing IT Asset Enterprise Technologies
<ass...@gm...> wrote:
> This is very good news. I will attempt to migrate over this week
> and let you know.
>=20
> On 6/7/05, Steve Bate <st...@te...> wrote:
> > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html=
/index.html
> > QuickFIX FAQ: http://www.quickfixengine.org/wikifix/index.php?QuickFixF=
AQ
> > QuickFIX Support: http://www.quickfixengine.org/services.html
> >
> > Hello RK,
> >
> > The QuickFIX/J code is in the QuickFIX CVS repository. The module
> > name is 'quickfixj'. The code is available under the same license
> > as the C++ QF (open source, but not PD). Briefly, the current
> > status is that we are passing almost all the acceptance tests
> > (see QF bug tracker for details). Running the OpenFIX
> > certification tests is somewhat time consuming but almost all
> > the FIX 4.2 tests are passing at this point. We'll be running
> > the certification tests against other FIX versions as well.
> >
> > We are currently preparing for a beta release (no date set at
> > this time). With the release, we intend to have the documentation
> > to support broader developer contribution.
> >
> > The initial release will implement almost exactly the same API
> > as the Java bindings for the C++ QF. The intent is to make the
> > transition to the pure Java QF as painless as possible for existing
> > Java applications.
> >
> > Our plans for future versions include improved performance,
> > possible migration to Java 5, JMX instrumentation, application
> > server integration, and so on.
> >
> > QuickFIX/J is currently being used for real trading on some small
> > applications.
> >
> > Steve
> >
> > > -----Original Message-----
> > > From: VP Marketing IT Asset Enterprise Technologies
> > > [mailto:ass...@gm...]
> > > Sent: Tuesday, June 07, 2005 11:34 AM
> > > To: Steve Bate
> > > Subject: Re: [Quickfix-developers] OrigSendingTime on messages with
> > > PossDup=3DY
> > >
> > > Hi Steve
> > >
> > > Do you have an estimated completion or release date for the pure java
> > > implementation.
> > >
> > > We also faced serious problems with QF within JBOSS. So we are trying
> > > to develop pure java quickfix. If you are planning to release it in P=
D
> > > then
> > > we do not have to do that.
> > >
> > > Please let us know. Thank you Steve. This is leadership initiative.
> > > --
> > > RK
> > >
> > > On 6/6/05, Steve Bate <st...@te...> 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
> > > >
> > > > Hello,
> > > >
> > > > I'm working on OpenFIX certification for the pure Java QuickFIX
> > > > implementation. One test that's giving me problems involves a
> > > > message with PossDup=3DY and no OrigSendingTime. I notice that the
> > > > session implementation only validates the PossDup-related fields
> > > > when when the target sequence number is lower than expected
> > > > (doPossDup() is only called from doTargetTooLow()). The OpenFIX
> > > > test (FIX 4.2) is sending a message with PossDup=3DY and
> > > > a proper sequence number so the PossDup verification code is not
> > > > being called.
> > > >
> > > > It seems a bit strange that PossDup=3DY in this scenario (normal
> > > > sequence numbers)? Is this a problem with QuickFIX or the
> > > > OpenFIX test? Comments?
> > > >
> > > > Steve
> > > >
> > > >
> > > >
> > > >
> > > > -------------------------------------------------------
> > > > This SF.Net email is sponsored by: NEC IT Guy Games. How far can y=
ou
> > > shotput
> > > > a projector? How fast can you ride your desk chair down the office =
luge
> > > track?
> > > > If you want to score the big prize, get to know the little guy.
> > > > Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=
=3D20
> > > > _______________________________________________
> > > > Quickfix-developers mailing list
> > > > Qui...@li...
> > > > https://lists.sourceforge.net/lists/listinfo/quickfix-developers
> > > >
> >
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by: NEC IT Guy Games. How far can you s=
hotput
> > a projector? How fast can you ride your desk chair down the office luge=
track?
> > If you want to score the big prize, get to know the little guy.
> > Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=3D20
> > _______________________________________________
> > Quickfix-developers mailing list
> > Qui...@li...
> > https://lists.sourceforge.net/lists/listinfo/quickfix-developers
> >
>
|
|
From: Sean K. <Sea...@Pi...> - 2005-06-28 13:52:50
|
Oren,
I will do as you have suggested. I appreciate you taking the time
to look into this. I will make the change below and test it out.
I'd like to offer my services to get some engine-level logging into
the next release of quickfix. It's a great product and this would
help cover any remaining unknowns about messaging prior to establishing
a logon. I'd be more than happy to follow any coding practices you
have so that the logging will integrate seamlessly. Please let me know
if you are interested in this.
Thanks again.
Sean
> -----Original Message-----
> From: Oren Miller [mailto:or...@qu...]
> Sent: Tuesday, June 28, 2005 9:27 AM
> To: Sean Kirkpatrick; qui...@li...
> Subject: Re: [Quickfix-developers] SocketConnection session=20
> registration
> BUG
>=20
>=20
> Sean,
>=20
> When applying your patch, other acceptance tests break. In=20
> fact it results=20
> in a crash during a typical multiple logon scenario. (If you=20
> run your=20
> acceptance tests, it should reveal the same thing to you). =20
> I've included=20
> another implementation of SocketConnection::read which passes all the=20
> acceptance tests and should also fix the bug you've reported.=20
> Please report=20
> back if that is the case:
>=20
> bool SocketConnection::read( SocketAcceptor& a, SocketServer& s )
> { QF_STACK_PUSH(SocketConnection::read)
>=20
> std::string msg;
> try
> {
> readFromSocket();
>=20
> if ( !m_pSession )
> {
> if ( !readMessage( msg ) ) return false;
> m_pSession =3D Session::lookupSession( msg, true );
> if( m_pSession &&=20
> Session::isSessionRegistered(m_pSession->getSessionID()) )
> m_pSession =3D 0;
> if( m_pSession )
> m_pSession =3D a.getSession( msg, *this );
> if( m_pSession )
> m_pSession->next( msg );
> if( !m_pSession )
> {
> s.getMonitor().drop( m_socket );
> return false;
> }
>=20
> Session::registerSession( m_pSession->getSessionID() );
> }
>=20
> readMessages( s.getMonitor() );
> return true;
> }
> catch ( SocketRecvFailed& e )
> {
> if( m_pSession )
> m_pSession->getLog()->onEvent( e.what() );
> s.getMonitor().drop( m_socket );
> }
> catch ( InvalidMessage& )
> {
> s.getMonitor().drop( m_socket );
> }
> return false;
>=20
> QF_STACK_POP
> }
> ----- Original Message -----=20
> From: "Sean Kirkpatrick" <Sea...@Pi...>
> To: <qui...@li...>
> Sent: Monday, June 27, 2005 10:34 AM
> Subject: [Quickfix-developers] SocketConnection session=20
> registration BUG
>=20
>=20
> QuickFIX Documentation:=20
> http://www.quickfixengine.org/quickfix/doc/html/index.html
> QuickFIX FAQ:=20
http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ
QuickFIX Support: http://www.quickfixengine.org/services.html
I believe that there is a very simple fix that will correct this issue. =
The
order of the following code in SocketConnection::read (the LOGDEBUG =
lines=20
are
for the logging I added):
if ( m_pSession ) {
LOGDEBUG(funcname,"registering session=20
[%s]",m_pSession->getSessionID().toString().c_str());
m_pSession =3D Session::registerSession( m_pSession->getSessionID() =
);
}
if ( m_pSession ) {
LOGDEBUG(funcname,"getting SocketAcceptor session =
[%s]",msg.c_str());
m_pSession =3D a.getSession( msg, *this );
}
needs to be reversed to be:
if ( m_pSession ) {
LOGDEBUG(funcname,"getting SocketAcceptor session =
[%s]",msg.c_str());
m_pSession =3D a.getSession( msg, *this );
}
if ( m_pSession ) {
LOGDEBUG(funcname,"registering session=20
[%s]",m_pSession->getSessionID().toString().c_str());
m_pSession =3D Session::registerSession( m_pSession->getSessionID() =
);
}
|
|
From: Oren M. <or...@qu...> - 2005-06-28 13:27:38
|
Sean,
When applying your patch, other acceptance tests break. In fact it results
in a crash during a typical multiple logon scenario. (If you run your
acceptance tests, it should reveal the same thing to you). I've included
another implementation of SocketConnection::read which passes all the
acceptance tests and should also fix the bug you've reported. Please report
back if that is the case:
bool SocketConnection::read( SocketAcceptor& a, SocketServer& s )
{ QF_STACK_PUSH(SocketConnection::read)
std::string msg;
try
{
readFromSocket();
if ( !m_pSession )
{
if ( !readMessage( msg ) ) return false;
m_pSession = Session::lookupSession( msg, true );
if( m_pSession &&
Session::isSessionRegistered(m_pSession->getSessionID()) )
m_pSession = 0;
if( m_pSession )
m_pSession = a.getSession( msg, *this );
if( m_pSession )
m_pSession->next( msg );
if( !m_pSession )
{
s.getMonitor().drop( m_socket );
return false;
}
Session::registerSession( m_pSession->getSessionID() );
}
readMessages( s.getMonitor() );
return true;
}
catch ( SocketRecvFailed& e )
{
if( m_pSession )
m_pSession->getLog()->onEvent( e.what() );
s.getMonitor().drop( m_socket );
}
catch ( InvalidMessage& )
{
s.getMonitor().drop( m_socket );
}
return false;
QF_STACK_POP
}
----- Original Message -----
From: "Sean Kirkpatrick" <Sea...@Pi...>
To: <qui...@li...>
Sent: Monday, June 27, 2005 10:34 AM
Subject: [Quickfix-developers] SocketConnection session registration BUG
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
I believe that there is a very simple fix that will correct this issue. The
order of the following code in SocketConnection::read (the LOGDEBUG lines
are
for the logging I added):
if ( m_pSession ) {
LOGDEBUG(funcname,"registering session
[%s]",m_pSession->getSessionID().toString().c_str());
m_pSession = Session::registerSession( m_pSession->getSessionID() );
}
if ( m_pSession ) {
LOGDEBUG(funcname,"getting SocketAcceptor session [%s]",msg.c_str());
m_pSession = a.getSession( msg, *this );
}
needs to be reversed to be:
if ( m_pSession ) {
LOGDEBUG(funcname,"getting SocketAcceptor session [%s]",msg.c_str());
m_pSession = a.getSession( msg, *this );
}
if ( m_pSession ) {
LOGDEBUG(funcname,"registering session
[%s]",m_pSession->getSessionID().toString().c_str());
m_pSession = Session::registerSession( m_pSession->getSessionID() );
}
|
|
From: Oren M. <or...@qu...> - 2005-06-27 23:46:32
|
You should run the bootstrap script instead of manually running =20 autoconf. --oren On Jun 27, 2005, at 6:29 PM, VP Marketing IT Asset Enterprise =20 Technologies wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/=20 > html/index.html > QuickFIX FAQ: http://www.quickfixengine.org/wikifix/index.php?=20 > QuickFixFAQ > QuickFIX Support: http://www.quickfixengine.org/services.html > > I pulled down the QF src from CVS using the help instructions. > > I am trying to build the src at this point on linux. > > I run autoconf and I get the following errors > configure.in:4: error: possibly undefined macro: AM_INIT_AUTOMAKE > If this token and others are legitimate, please use =20 > m4_pattern_allow. > See the Autoconf documentation. > configure.in:5: error: possibly undefined macro: AM_CONFIG_HEADER > configure.in:6: error: possibly undefined macro: AM_DISABLE_STATIC > configure.in:12: error: possibly undefined macro: AC_DISABLE_STATIC > configure.in:13: error: possibly undefined macro: AC_LIBTOOL_WIN32_DLL > configure.in:14: error: possibly undefined macro: AM_PROG_LIBTOOL > configure.in:15: error: possibly undefined macro: AM_PROG_LEX > configure.in:83: error: possibly undefined macro: AM_CONDITIONAL > configure.in:139: error: possibly undefined macro: AM_PATH_XML2 > I tried configure (little khaky at this point) > /configure: line 1277: syntax error near unexpected token `quickfix,'. > /configure: line 1277: `AM_INIT_AUTOMAKE(quickfix, 1.10.0)'. > > Are these normal .. > One line response would do.. > -- > RK > > On 6/27/05, VP Marketing IT Asset Enterprise Technologies > <ass...@gm...> wrote: > >> Hi >> >> I am running a Java quickfix application on linux. >> >> Due to sequence number mismatch the counterparty >> rejects the logon (35=3DA) msg. >> >> <20050627-16:25:41, FIX.4.2:FEST->CTEST, incoming> >> (8=3DFIX.=20 >> 4.2^A9=3D121^A35=3D3^A49=3DCTEST^A56=3DFTEST^A34=3D00026^A43=3DN^A52=3D= 20050627-16:=20 >> 25:27^A97=3DN^A45=3D009^A58=3DIncoming >> MsgSeqNum is 9 whi\ >> le expected 11^A10=3D251^A) >> <20050627-16:25:41, FIX.4.2:FTEST->CTEST, event> >> (Logon state is not valid for message) >> <20050627-16:25:41, FIX.4.2:FTEST->CTEST, event> >> (Dropped Connection) >> FIX.4.2:FTEST->CTEST is LOGGED OUT <20050627-16:25:41, >> FIX.4.2:FTEST->CTEST, event> >> (Initiated logon request) >> FIX.4.2:FTEST->CTEST is LOGGED OUT <20050627-16:25:42, >> FIX.4.2:FTEST->CTEST, event> >> (Connecting to 199.53.16.226 on port 5545) >> <20050627-16:25:42, FIX.4.2:FTEST->CTEST, event> >> (Connection succeeded) >> <20050627-16:25:42, FIX.4.2:FTEST->CTEST, outgoing> >> (8=3DFIX.=20 >> 4.2^A9=3D72^A35=3DA^A34=3D11^A49=3DFTEST^A52=3D20050627-16:25:42.065^A5= 6=3DCTEST^=20 >> A98=3D0^A108=3D30^A10=3D247^A) >> <20050627-16:25:42, FIX.4.2:FTEST->CTEST, event> >> (Initiated logon request) >> <20050627-16:25:42, FIX.4.2:FTEST->CTEST, incoming> >> (8=3DFIX.=20 >> 4.2^A9=3D87^A35=3DA^A49=3DCTEST^A56=3DFTEST^A34=3D00027^A98=3D0^A52=3D2= 0050627-16:2=20 >> 5:28^A108=3D60^A141=3DN^A383=3D56000^A10=3D203^A) >> Aborted >> >> It cannot be the static link item from FAQ. >> >> Scanned for duplicate tags cannot find any... >> >> Any hint? thank you >> -- >> Raman >> >> > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dclick > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > |
|
From: VP M. IT A. E. T. <ass...@gm...> - 2005-06-27 23:29:11
|
I pulled down the QF src from CVS using the help instructions.
I am trying to build the src at this point on linux.
I run autoconf and I get the following errors
configure.in:4: error: possibly undefined macro: AM_INIT_AUTOMAKE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.in:5: error: possibly undefined macro: AM_CONFIG_HEADER
configure.in:6: error: possibly undefined macro: AM_DISABLE_STATIC
configure.in:12: error: possibly undefined macro: AC_DISABLE_STATIC
configure.in:13: error: possibly undefined macro: AC_LIBTOOL_WIN32_DLL
configure.in:14: error: possibly undefined macro: AM_PROG_LIBTOOL
configure.in:15: error: possibly undefined macro: AM_PROG_LEX
configure.in:83: error: possibly undefined macro: AM_CONDITIONAL
configure.in:139: error: possibly undefined macro: AM_PATH_XML2
I tried configure (little khaky at this point)
./configure: line 1277: syntax error near unexpected token `quickfix,'
./configure: line 1277: `AM_INIT_AUTOMAKE(quickfix, 1.10.0)'
Are these normal ..
One line response would do..
--
RK
On 6/27/05, VP Marketing IT Asset Enterprise Technologies
<ass...@gm...> wrote:
> Hi
>=20
> I am running a Java quickfix application on linux.
>=20
> Due to sequence number mismatch the counterparty
> rejects the logon (35=3DA) msg.
>=20
> <20050627-16:25:41, FIX.4.2:FEST->CTEST, incoming>
> (8=3DFIX.4.2^A9=3D121^A35=3D3^A49=3DCTEST^A56=3DFTEST^A34=3D00026^A43=3D=
N^A52=3D20050627-16:25:27^A97=3DN^A45=3D009^A58=3DIncoming
> MsgSeqNum is 9 whi\
> le expected 11^A10=3D251^A)
> <20050627-16:25:41, FIX.4.2:FTEST->CTEST, event>
> (Logon state is not valid for message)
> <20050627-16:25:41, FIX.4.2:FTEST->CTEST, event>
> (Dropped Connection)
> FIX.4.2:FTEST->CTEST is LOGGED OUT <20050627-16:25:41,
> FIX.4.2:FTEST->CTEST, event>
> (Initiated logon request)
> FIX.4.2:FTEST->CTEST is LOGGED OUT <20050627-16:25:42,
> FIX.4.2:FTEST->CTEST, event>
> (Connecting to 199.53.16.226 on port 5545)
> <20050627-16:25:42, FIX.4.2:FTEST->CTEST, event>
> (Connection succeeded)
> <20050627-16:25:42, FIX.4.2:FTEST->CTEST, outgoing>
> (8=3DFIX.4.2^A9=3D72^A35=3DA^A34=3D11^A49=3DFTEST^A52=3D20050627-16:25:4=
2.065^A56=3DCTEST^A98=3D0^A108=3D30^A10=3D247^A)
> <20050627-16:25:42, FIX.4.2:FTEST->CTEST, event>
> (Initiated logon request)
> <20050627-16:25:42, FIX.4.2:FTEST->CTEST, incoming>
> (8=3DFIX.4.2^A9=3D87^A35=3DA^A49=3DCTEST^A56=3DFTEST^A34=3D00027^A98=3D0=
^A52=3D20050627-16:25:28^A108=3D60^A141=3DN^A383=3D56000^A10=3D203^A)
> Aborted
>=20
> It cannot be the static link item from FAQ.
>=20
> Scanned for duplicate tags cannot find any...
>=20
> Any hint? thank you
> --
> Raman
>
|
|
From: Oren M. <or...@qu...> - 2005-06-27 22:27:15
|
Yeah, looks like this bug was introduced when adding built in support for sequence resets. Thanks, this would certainly have gone out with the release if you hadn't been paying attention. --oren ----- Original Message ----- From: "Alexey Zubko" <ale...@in...> To: <qui...@li...> Sent: Monday, June 27, 2005 1:34 PM Subject: [Quickfix-developers] double fromAdmin call on logon > 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, > > I found out that there are two fromAdmin calls on logon message because > there are two verify() calls in Session::nextLogon (I use the latest CVS > version). > > -- > > Regards, > Alexey Zubko > > Infinium Capital Corporation > (416) 360-7000 ext. 305 > > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
|
From: Sean K. <Sea...@Pi...> - 2005-06-27 22:24:12
|
Thanks! > -----Original Message----- > From: Oren Miller [mailto:or...@qu...] > Sent: Monday, June 27, 2005 6:16 PM > To: Sean Kirkpatrick; qui...@li... > Subject: Re: [Quickfix-developers] SocketConnection session=20 > registration > BUG >=20 >=20 > Sean, I'll try to design a test that duplicates this scenario. >=20 > --oren >=20 > ----- Original Message -----=20 > From: "Sean Kirkpatrick" <Sea...@Pi...> > To: <qui...@li...> > Sent: Monday, June 27, 2005 10:34 AM > Subject: [Quickfix-developers] SocketConnection session=20 > registration BUG >=20 >=20 > QuickFIX Documentation:=20 > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX FAQ:=20 > http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ > QuickFIX Support: http://www.quickfixengine.org/services.html >=20 > I have added proprietary logging to the quickfix library to help debug > an issue we have been having with a client not being able to log in. > We could see the logon message coming across via tethereal, but were > unable to determine the reason why the socket was being dropped. >=20 > The following logs expose where the logic error in quickfix occurs: >=20 > 09:00:20.452 {QF::SocketMonitor::block} Socket [393] has data > 09:00:20.452 {QF::ServerWrapper::onEvent} data found on socket [393] > 09:00:20.452 {QF::SocketAcceptor::onData} getting=20 > SocketConnection [393] > 09:00:20.452 {QF::SocketAcceptor::onData} found SocketConnection [393] > 09:00:20.452 {QF::SocketConnection::read} reading message > 09:00:20.452 {QF::Parser::readFromStream} socket_fionread=20 > returned [72]=20 > bytes > 09:00:20.452 {QF::Parser::readFromStream} recv [72] bytes on=20 > socket [393] > 09:00:20.452 {QF::Parser::readFixMessage} found BeginString tag 8 > 09:00:20.452 {QF::Parser::readFixMessage} found CheckSum tag 10 > 09:00:20.452 {QF::Parser::readFixMessage} found final SOH char > 09:00:20.452 {QF::Parser::readFixMessage} message=20 > [8=3DFIX.4.0^A9=3D50^A35=3D0^A49=3DSEND^A56=3DRECV > ^A34=3D1^A52=3D20050627-13:00:20^A10=3D056^A] > 09:00:20.452 {QF::SocketConnection::read} looking for session=20 > based on=20 > [8=3DFIX.4.0^A9=3D50^A35=3D0 > ^A49=3DSEND^A56=3DRECV^A34=3D1^A52=3D20050627-13:00:20^A10=3D056^A] > 09:00:20.452 {QF::Session::lookupSession} Looking for session:=20 > [FIX.4.0:RECV->SEND] > 09:00:20.452 {QF::Session::lookupSession} FOUND IT! > 09:00:20.452 {QF::SocketConnection::read} registering session=20 > [FIX.4.0:RECV->SEND] > 09:00:20.453 {QF::Session::lookupSession} Looking for session:=20 > [FIX.4.0:RECV->SEND] > 09:00:20.453 {QF::Session::lookupSession} FOUND IT! > 09:00:20.453 {QF::Session::registerSession} found session=20 > [FIX.4.0:RECV->SEND] > 09:00:20.453 {QF::Session::registerSession} registering session > ---- > 09:00:20.453 {QF::SocketConnection::read} getting=20 > SocketAcceptor session=20 > [8=3DFIX.4.0^A9=3D50^A35 > = =3D0^A49=3DSEND^A56=3DRECV^A34=3D1^A52=3D20050627-13:00:20^A10=3D056^A] > 09:00:20.453 {QF::Acceptor::getSession} msgType [0] not valid > 09:00:20.453 {QF::SocketConnection::read} Dropping socket connection > 09:00:20.453 {QF::SocketConnection::read} reading message > 09:00:20.453 {QF::Parser::readFromStream} socket_fionread failed > 09:00:20.453 {QF::SocketMonitor::block} queue has sockets to drop > 09:00:20.453 {QF::SocketAcceptor::onDisconnect} Disconnecting=20 > socket: [393] > 09:00:20.453 {QF::SocketConnection::~SocketConnection} destroying=20 > SocketConnection >=20 > The problem occurs between the "----" separated log lines. =20 > The library > registers the session, but then attempts to validate that the=20 > recvd message > is a logon. If it is not, the function return NULL as the m_pSession > variable. The next section of the SocketConnection read=20 > checks for a valid > m_pSession. If the session is NULL, the socket is dropped. When the > SocketConnection is destroyed, it's m_pSession is still NULL,=20 > and the object > is never unregistered. Subsequent attempts to connect to=20 > this session log > the following: >=20 > 09:04:26.744 {QF::SocketMonitor::block} Socket [393] has data > 09:04:26.744 {QF::ServerWrapper::onEvent} data found on socket [393] > 09:04:26.744 {QF::SocketAcceptor::onData} getting=20 > SocketConnection [393] > 09:04:26.744 {QF::SocketAcceptor::onData} found SocketConnection [393] > 09:04:26.744 {QF::SocketConnection::read} reading message > 09:04:26.744 {QF::Parser::readFromStream} socket_fionread=20 > returned [84]=20 > bytes > 09:04:26.744 {QF::Parser::readFromStream} recv [84] bytes on=20 > socket [393] > 09:04:26.745 {QF::Parser::readFixMessage} found BeginString tag 8 > 09:04:26.745 {QF::Parser::readFixMessage} found CheckSum tag 10 > 09:04:26.745 {QF::Parser::readFixMessage} found final SOH char > 09:04:26.745 {QF::Parser::readFixMessage} message=20 > [8=3DFIX.4.0^A9=3D62^A35=3DA^A49=3DSEND^A56=3DRECV > ^A34=3D3^A52=3D20050627-13:04:26^A98=3D0^A108=3D20^A10=3D112^A] > 09:04:26.745 {QF::SocketConnection::read} looking for session=20 > based on=20 > [8=3DFIX.4.0^A9=3D62^A35=3DA > = ^A49=3DSEND^A56=3DRECV^A34=3D3^A52=3D20050627-13:04:26^A98=3D0^A108=3D20^= A > 10=3D112^A] > 09:04:26.745 {QF::Session::lookupSession} Looking for session:=20 > [FIX.4.0:RECV->SEND] > 09:04:26.745 {QF::Session::lookupSession} FOUND IT! > 09:04:26.745 {QF::SocketConnection::read} registering session=20 > [FIX.4.0:RECV->SEND] > 09:04:26.745 {QF::Session::lookupSession} Looking for session:=20 > [FIX.4.0:RECV->SEND] > 09:04:26.745 {QF::Session::lookupSession} FOUND IT! > 09:04:26.745 {QF::Session::registerSession} found session=20 > [FIX.4.0:RECV->SEND] > ---- > 09:04:26.745 {QF::SocketConnection::read} Dropping socket connection > 09:04:26.745 {QF::SocketConnection::read} reading message > 09:04:26.745 {QF::Parser::readFromStream} socket_fionread failed > 09:04:26.745 {QF::SocketMonitor::block} queue has sockets to drop > 09:04:26.745 {QF::SocketAcceptor::onDisconnect} Disconnecting=20 > socket: [393] > 09:04:26.745 {QF::SocketConnection::~SocketConnection} destroying=20 > SocketConnection >=20 > In between the "----" separated log lines, the session is detected as=20 > already > registered and the m_pSession member is again set to NULL and=20 > the socket is > dropped. >=20 > I believe that there is a very simple fix that will correct=20 > this issue. The > order of the following code in SocketConnection::read (the=20 > LOGDEBUG lines=20 > are > for the logging I added): >=20 > if ( m_pSession ) { > LOGDEBUG(funcname,"registering session=20 > [%s]",m_pSession->getSessionID().toString().c_str()); > m_pSession =3D Session::registerSession(=20 > m_pSession->getSessionID() ); > } >=20 > if ( m_pSession ) { > LOGDEBUG(funcname,"getting SocketAcceptor session=20 > [%s]",msg.c_str()); > m_pSession =3D a.getSession( msg, *this ); > } >=20 > needs to be reversed to be: >=20 > if ( m_pSession ) { > LOGDEBUG(funcname,"getting SocketAcceptor session=20 > [%s]",msg.c_str()); > m_pSession =3D a.getSession( msg, *this ); > } >=20 > if ( m_pSession ) { > LOGDEBUG(funcname,"registering session=20 > [%s]",m_pSession->getSessionID().toString().c_str()); > m_pSession =3D Session::registerSession(=20 > m_pSession->getSessionID() ); > } >=20 > If this is the case, any invalid initial messages will invalidate the > m_pSession member prior to attempting to register the=20 > session. Only valid > connections will be registered, and the disconnect logic works fine so > long as the registration is done properly. A week of=20 > development was lost > due to the lack of engine-level logging in the quickfix library, and I > know that this is an issue that has been raised several times=20 > in the past. >=20 > Please provide feedback. >=20 > --Sean >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dick > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers >=20 >=20 |
|
From: Oren M. <or...@qu...> - 2005-06-27 22:16:15
|
Sean, I'll try to design a test that duplicates this scenario. --oren ----- Original Message ----- From: "Sean Kirkpatrick" <Sea...@Pi...> To: <qui...@li...> Sent: Monday, June 27, 2005 10:34 AM Subject: [Quickfix-developers] SocketConnection session registration BUG 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 I have added proprietary logging to the quickfix library to help debug an issue we have been having with a client not being able to log in. We could see the logon message coming across via tethereal, but were unable to determine the reason why the socket was being dropped. The following logs expose where the logic error in quickfix occurs: 09:00:20.452 {QF::SocketMonitor::block} Socket [393] has data 09:00:20.452 {QF::ServerWrapper::onEvent} data found on socket [393] 09:00:20.452 {QF::SocketAcceptor::onData} getting SocketConnection [393] 09:00:20.452 {QF::SocketAcceptor::onData} found SocketConnection [393] 09:00:20.452 {QF::SocketConnection::read} reading message 09:00:20.452 {QF::Parser::readFromStream} socket_fionread returned [72] bytes 09:00:20.452 {QF::Parser::readFromStream} recv [72] bytes on socket [393] 09:00:20.452 {QF::Parser::readFixMessage} found BeginString tag 8 09:00:20.452 {QF::Parser::readFixMessage} found CheckSum tag 10 09:00:20.452 {QF::Parser::readFixMessage} found final SOH char 09:00:20.452 {QF::Parser::readFixMessage} message [8=FIX.4.0^A9=50^A35=0^A49=SEND^A56=RECV ^A34=1^A52=20050627-13:00:20^A10=056^A] 09:00:20.452 {QF::SocketConnection::read} looking for session based on [8=FIX.4.0^A9=50^A35=0 ^A49=SEND^A56=RECV^A34=1^A52=20050627-13:00:20^A10=056^A] 09:00:20.452 {QF::Session::lookupSession} Looking for session: [FIX.4.0:RECV->SEND] 09:00:20.452 {QF::Session::lookupSession} FOUND IT! 09:00:20.452 {QF::SocketConnection::read} registering session [FIX.4.0:RECV->SEND] 09:00:20.453 {QF::Session::lookupSession} Looking for session: [FIX.4.0:RECV->SEND] 09:00:20.453 {QF::Session::lookupSession} FOUND IT! 09:00:20.453 {QF::Session::registerSession} found session [FIX.4.0:RECV->SEND] 09:00:20.453 {QF::Session::registerSession} registering session ---- 09:00:20.453 {QF::SocketConnection::read} getting SocketAcceptor session [8=FIX.4.0^A9=50^A35 =0^A49=SEND^A56=RECV^A34=1^A52=20050627-13:00:20^A10=056^A] 09:00:20.453 {QF::Acceptor::getSession} msgType [0] not valid 09:00:20.453 {QF::SocketConnection::read} Dropping socket connection 09:00:20.453 {QF::SocketConnection::read} reading message 09:00:20.453 {QF::Parser::readFromStream} socket_fionread failed 09:00:20.453 {QF::SocketMonitor::block} queue has sockets to drop 09:00:20.453 {QF::SocketAcceptor::onDisconnect} Disconnecting socket: [393] 09:00:20.453 {QF::SocketConnection::~SocketConnection} destroying SocketConnection The problem occurs between the "----" separated log lines. The library registers the session, but then attempts to validate that the recvd message is a logon. If it is not, the function return NULL as the m_pSession variable. The next section of the SocketConnection read checks for a valid m_pSession. If the session is NULL, the socket is dropped. When the SocketConnection is destroyed, it's m_pSession is still NULL, and the object is never unregistered. Subsequent attempts to connect to this session log the following: 09:04:26.744 {QF::SocketMonitor::block} Socket [393] has data 09:04:26.744 {QF::ServerWrapper::onEvent} data found on socket [393] 09:04:26.744 {QF::SocketAcceptor::onData} getting SocketConnection [393] 09:04:26.744 {QF::SocketAcceptor::onData} found SocketConnection [393] 09:04:26.744 {QF::SocketConnection::read} reading message 09:04:26.744 {QF::Parser::readFromStream} socket_fionread returned [84] bytes 09:04:26.744 {QF::Parser::readFromStream} recv [84] bytes on socket [393] 09:04:26.745 {QF::Parser::readFixMessage} found BeginString tag 8 09:04:26.745 {QF::Parser::readFixMessage} found CheckSum tag 10 09:04:26.745 {QF::Parser::readFixMessage} found final SOH char 09:04:26.745 {QF::Parser::readFixMessage} message [8=FIX.4.0^A9=62^A35=A^A49=SEND^A56=RECV ^A34=3^A52=20050627-13:04:26^A98=0^A108=20^A10=112^A] 09:04:26.745 {QF::SocketConnection::read} looking for session based on [8=FIX.4.0^A9=62^A35=A ^A49=SEND^A56=RECV^A34=3^A52=20050627-13:04:26^A98=0^A108=20^A10=112^A] 09:04:26.745 {QF::Session::lookupSession} Looking for session: [FIX.4.0:RECV->SEND] 09:04:26.745 {QF::Session::lookupSession} FOUND IT! 09:04:26.745 {QF::SocketConnection::read} registering session [FIX.4.0:RECV->SEND] 09:04:26.745 {QF::Session::lookupSession} Looking for session: [FIX.4.0:RECV->SEND] 09:04:26.745 {QF::Session::lookupSession} FOUND IT! 09:04:26.745 {QF::Session::registerSession} found session [FIX.4.0:RECV->SEND] ---- 09:04:26.745 {QF::SocketConnection::read} Dropping socket connection 09:04:26.745 {QF::SocketConnection::read} reading message 09:04:26.745 {QF::Parser::readFromStream} socket_fionread failed 09:04:26.745 {QF::SocketMonitor::block} queue has sockets to drop 09:04:26.745 {QF::SocketAcceptor::onDisconnect} Disconnecting socket: [393] 09:04:26.745 {QF::SocketConnection::~SocketConnection} destroying SocketConnection In between the "----" separated log lines, the session is detected as already registered and the m_pSession member is again set to NULL and the socket is dropped. I believe that there is a very simple fix that will correct this issue. The order of the following code in SocketConnection::read (the LOGDEBUG lines are for the logging I added): if ( m_pSession ) { LOGDEBUG(funcname,"registering session [%s]",m_pSession->getSessionID().toString().c_str()); m_pSession = Session::registerSession( m_pSession->getSessionID() ); } if ( m_pSession ) { LOGDEBUG(funcname,"getting SocketAcceptor session [%s]",msg.c_str()); m_pSession = a.getSession( msg, *this ); } needs to be reversed to be: if ( m_pSession ) { LOGDEBUG(funcname,"getting SocketAcceptor session [%s]",msg.c_str()); m_pSession = a.getSession( msg, *this ); } if ( m_pSession ) { LOGDEBUG(funcname,"registering session [%s]",m_pSession->getSessionID().toString().c_str()); m_pSession = Session::registerSession( m_pSession->getSessionID() ); } If this is the case, any invalid initial messages will invalidate the m_pSession member prior to attempting to register the session. Only valid connections will be registered, and the disconnect logic works fine so long as the registration is done properly. A week of development was lost due to the lack of engine-level logging in the quickfix library, and I know that this is an issue that has been raised several times in the past. Please provide feedback. --Sean ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=ick _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
|
From: Oren M. <or...@qu...> - 2005-06-27 22:09:40
|
It may be possible that there is something about the message that is =20 causing some funny behavior. I did run a quick test to see if the =20 leading 0's in the MsgSeqNum would cause a problem, but so far I =20 haven't seen it. I only tested with the CVS version so far, so I'll =20 need to drop back to 1.9.4 to do a real test. --oren On Jun 27, 2005, at 5:05 PM, VP Marketing IT Asset Enterprise =20 Technologies wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/=20 > html/index.html > QuickFIX FAQ: http://www.quickfixengine.org/wikifix/index.php?=20 > QuickFixFAQ > QuickFIX Support: http://www.quickfixengine.org/services.html > > Hi > I run the app. against QF Server (executor) and the app based on QF =20= > recovers > and runs fine. > The working scenario: > LTS-->(8=3DFIX.4.2|9=3D63|35=3DA|34=3D27|49=3DFMCP|52=3D20050627-21:37:3= 6.584|=20 > 56=3DLTS|98=3D0|108=3D30|10=3D091|) > > However running the same app with a counterparty but with the same > spec. file (fix42.xml) > the application exits right after receiving the following message. > CSFB-> 8=3DFIX.4.2|9=3D87|35=3DA|49=3DCTEST|56=3DFTEST|34=3D00012|98=3D0= |=20 > 52=3D20050627-21:31:28|108=3D60|141=3DN|383=3D56000|10=3D190| > with the error message > This application has requested the Runtime to terminate it in an =20 > unusual way. > Please contact the application's support team for more information. > > The only difference I see are > 34 (seqnum) is 00012 with the counterparty, and 1 in working version. > The tags 141=3DN and 383=3D56000 are extra in the case of = counterparty. > > Has any one experienced this error before? > QF version is 1.9.4 > App is java running jdk.1.4.2.XX > OS/HW platform is Windooooooz and linux. I experince the same behavior > regardless. > > Thanks for any suggestion. > > Raman > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dclick > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > |
|
From: VP M. IT A. E. T. <ass...@gm...> - 2005-06-27 22:05:09
|
Hi I run the app. against QF Server (executor) and the app based on QF recover= s and runs fine. The working scenario: LTS-->(8=3DFIX.4.2|9=3D63|35=3DA|34=3D27|49=3DFMCP|52=3D20050627-21:37:36.5= 84|56=3DLTS|98=3D0|108=3D30|10=3D091|) However running the same app with a counterparty but with the same spec. file (fix42.xml) the application exits right after receiving the following message. CSFB-> 8=3DFIX.4.2|9=3D87|35=3DA|49=3DCTEST|56=3DFTEST|34=3D00012|98=3D0|52= =3D20050627-21:31:28|108=3D60|141=3DN|383=3D56000|10=3D190| with the error message This application has requested the Runtime to terminate it in an unusual wa= y. Please contact the application's support team for more information. The only difference I see are 34 (seqnum) is 00012 with the counterparty, and 1 in working version. The tags 141=3DN and 383=3D56000 are extra in the case of counterparty. Has any one experienced this error before? QF version is 1.9.4 App is java running jdk.1.4.2.XX OS/HW platform is Windooooooz and linux. I experince the same behavior regardless. Thanks for any suggestion. Raman |
|
From: Brian E. <azz...@ya...> - 2005-06-27 19:15:59
|
Oren -
I believe the following change to Session.cpp will fix the timeout
problem when receiving out-of-sequence messages while awaiting a
sequence reset/gap-fill:
Move the following lines in Session::verify(...)
UtcTimeStamp now;
m_state.lastReceivedTime( now );
from their current position up to a spot just before the preceding
if/else clause:
-->>Place the code here<<--
if ( checkTooHigh && isTargetTooHigh( msgSeqNum ) )
This will increment the "lastReceivedTime" in the SessionState object
even when the sequence number is wrong. This appears to solve a whole
bunch of interrelated timeouts that could occur in this scenario (test
request, heartbeat, logon response, etc.) in one quick hit. Sequence
too low is largely unaffected by this change, as it will cause a
disconnect when hit, so that part of the code shouldn't need to be
rearranged.
It was somewhat unclear to me whether the following line:
m_state.testRequest( 0 );
Also needed to be moved, but it seemed like it did not.
- Brian Erst
Thynk Software, Inc.
--- Oren Miller <or...@qu...> 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
>
> Seems to me this shouldn't be happening. I'm guessing that the
> engine isn't
> processing the message because the sequence number is too high, hence
> no
> heartbeat is processed. I believe that out of sequence messages
> should
> probably count as a keep-alive even if their contents arn't
> processed.
>
> --oren
>
> ----- Original Message -----
> From: "Alexey Zubko" <ale...@in...>
> To: <qui...@li...>
> Sent: Monday, June 27, 2005 1:44 PM
> Subject: [Quickfix-developers] MsgSeqNum too high problem
>
>
> > 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,
> >
> > I'd like to ask if QF initiator acts correctly in the following
> scenario.
> > The initiator detects that seqnum of a server is too high and sends
> a
> > resend message.
> > The server doesn't resend requested messages, but there are
> heartbeat
> > messages.
> > The initiator disconnects because of timeout on heartbeat. :-)
> > Below is the initiator's log.
> >
> > 20050627-17:52:50 : Created session
> > 20050627-17:52:51 : Connecting to eng-server on port 5725
> > 20050627-17:52:51 : Connection succeeded
> > 20050627-17:52:52 : Initiated logon request
> > 20050627-17:53:15 : Received logon response
> > 20050627-17:53:15 : MsgSeqNum too high, expecting 13 but received
> 15
> > 20050627-17:53:15 : Sent ResendRequest FROM: 13 TO: 14
> > 20050627-17:53:15 : MsgSeqNum too high, expecting 13 but received
> 16
> > 20050627-17:53:15 : Sent ResendRequest FROM: 13 TO: 15
> > 20050627-17:53:15 : MsgSeqNum too high, expecting 13 but received
> 17
> > 20050627-17:53:15 : Sent ResendRequest FROM: 13 TO: 16
> > 20050627-17:53:22 : Sent test request TEST
> > 20050627-17:53:22 : MsgSeqNum too high, expecting 13 but received
> 18
> > 20050627-17:53:22 : Sent ResendRequest FROM: 13 TO: 17
> > 20050627-17:53:37 : MsgSeqNum too high, expecting 13 but received
> 19
> > 20050627-17:53:37 : Sent ResendRequest FROM: 13 TO: 18
> > 20050627-17:53:40 : Timed out waiting for heartbeat
> > 20050627-17:53:40 : Disconnecting
> >
> >
> >
> > --
> >
> > Regards,
> > Alexey Zubko
> >
> > Infinium Capital Corporation
> > (416) 360-7000 ext. 305
> >
> >
> >
> > -------------------------------------------------------
> > SF.Net email is sponsored by: Discover Easy Linux Migration
> Strategies
> > from IBM. Find simple to follow Roadmaps, straightforward articles,
> > informative Webcasts and more! Get everything you need to get up to
> > speed, fast.
> http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> > _______________________________________________
> > Quickfix-developers mailing list
> > Qui...@li...
> > https://lists.sourceforge.net/lists/listinfo/quickfix-developers
> >
>
>
>
> -------------------------------------------------------
> SF.Net email is sponsored by: Discover Easy Linux Migration
> Strategies
> from IBM. Find simple to follow Roadmaps, straightforward articles,
> informative Webcasts and more! Get everything you need to get up to
> speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> _______________________________________________
> Quickfix-developers mailing list
> Qui...@li...
> https://lists.sourceforge.net/lists/listinfo/quickfix-developers
>
|
|
From: Oren M. <or...@qu...> - 2005-06-27 18:57:16
|
Seems to me this shouldn't be happening. I'm guessing that the engine isn't processing the message because the sequence number is too high, hence no heartbeat is processed. I believe that out of sequence messages should probably count as a keep-alive even if their contents arn't processed. --oren ----- Original Message ----- From: "Alexey Zubko" <ale...@in...> To: <qui...@li...> Sent: Monday, June 27, 2005 1:44 PM Subject: [Quickfix-developers] MsgSeqNum too high problem > 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, > > I'd like to ask if QF initiator acts correctly in the following scenario. > The initiator detects that seqnum of a server is too high and sends a > resend message. > The server doesn't resend requested messages, but there are heartbeat > messages. > The initiator disconnects because of timeout on heartbeat. :-) > Below is the initiator's log. > > 20050627-17:52:50 : Created session > 20050627-17:52:51 : Connecting to eng-server on port 5725 > 20050627-17:52:51 : Connection succeeded > 20050627-17:52:52 : Initiated logon request > 20050627-17:53:15 : Received logon response > 20050627-17:53:15 : MsgSeqNum too high, expecting 13 but received 15 > 20050627-17:53:15 : Sent ResendRequest FROM: 13 TO: 14 > 20050627-17:53:15 : MsgSeqNum too high, expecting 13 but received 16 > 20050627-17:53:15 : Sent ResendRequest FROM: 13 TO: 15 > 20050627-17:53:15 : MsgSeqNum too high, expecting 13 but received 17 > 20050627-17:53:15 : Sent ResendRequest FROM: 13 TO: 16 > 20050627-17:53:22 : Sent test request TEST > 20050627-17:53:22 : MsgSeqNum too high, expecting 13 but received 18 > 20050627-17:53:22 : Sent ResendRequest FROM: 13 TO: 17 > 20050627-17:53:37 : MsgSeqNum too high, expecting 13 but received 19 > 20050627-17:53:37 : Sent ResendRequest FROM: 13 TO: 18 > 20050627-17:53:40 : Timed out waiting for heartbeat > 20050627-17:53:40 : Disconnecting > > > > -- > > Regards, > Alexey Zubko > > Infinium Capital Corporation > (416) 360-7000 ext. 305 > > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
|
From: Alexey Z. <ale...@in...> - 2005-06-27 18:44:27
|
Hi, I'd like to ask if QF initiator acts correctly in the following scenario. The initiator detects that seqnum of a server is too high and sends a resend message. The server doesn't resend requested messages, but there are heartbeat messages. The initiator disconnects because of timeout on heartbeat. :-) Below is the initiator's log. 20050627-17:52:50 : Created session 20050627-17:52:51 : Connecting to eng-server on port 5725 20050627-17:52:51 : Connection succeeded 20050627-17:52:52 : Initiated logon request 20050627-17:53:15 : Received logon response 20050627-17:53:15 : MsgSeqNum too high, expecting 13 but received 15 20050627-17:53:15 : Sent ResendRequest FROM: 13 TO: 14 20050627-17:53:15 : MsgSeqNum too high, expecting 13 but received 16 20050627-17:53:15 : Sent ResendRequest FROM: 13 TO: 15 20050627-17:53:15 : MsgSeqNum too high, expecting 13 but received 17 20050627-17:53:15 : Sent ResendRequest FROM: 13 TO: 16 20050627-17:53:22 : Sent test request TEST 20050627-17:53:22 : MsgSeqNum too high, expecting 13 but received 18 20050627-17:53:22 : Sent ResendRequest FROM: 13 TO: 17 20050627-17:53:37 : MsgSeqNum too high, expecting 13 but received 19 20050627-17:53:37 : Sent ResendRequest FROM: 13 TO: 18 20050627-17:53:40 : Timed out waiting for heartbeat 20050627-17:53:40 : Disconnecting -- Regards, Alexey Zubko Infinium Capital Corporation (416) 360-7000 ext. 305 |
|
From: Alexey Z. <ale...@in...> - 2005-06-27 18:34:30
|
Hi, I found out that there are two fromAdmin calls on logon message because there are two verify() calls in Session::nextLogon (I use the latest CVS version). -- Regards, Alexey Zubko Infinium Capital Corporation (416) 360-7000 ext. 305 |
|
From: Oren M. <or...@qu...> - 2005-06-27 17:32:40
|
It's in the quickfix/src directory. --oren ----- Original Message ----- From: "Martin Tanguay" <mta...@ho...> To: <qui...@li...> Cc: <mta...@ho...> Sent: Monday, June 27, 2005 12:27 PM Subject: [Quickfix-developers] Compiling with mySQL from .NET > 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, > > I'm following the instruction on how to compile QuickFix dlls with the > mySQL handling located at > http://www.quickfixengine.org/quickfix/doc/html/install.html#Windows%20(.NET) > under "Windows (C++)" and "Windows (.NET)". > > I opened the QuickFix sources with the "quickfix.sln" and I can't locate > the "config_windows.h" specified in the building instruction. > > Maybe it is more different under .NET, does anybody know how to do it > under NET?. > > Thanks, > Martin > > > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
|
From: Martin T. <mta...@ho...> - 2005-06-27 17:27:31
|
Hi, I'm following the instruction on how to compile QuickFix dlls with the mySQL handling located at http://www.quickfixengine.org/quickfix/doc/html/install.html#Windows%20(.NET) under "Windows (C++)" and "Windows (.NET)". I opened the QuickFix sources with the "quickfix.sln" and I can't locate the "config_windows.h" specified in the building instruction. Maybe it is more different under .NET, does anybody know how to do it under .NET? Thanks, Martin |
|
From: Oren M. <or...@qu...> - 2005-06-27 16:53:07
|
Please provide more details on your operating system, compiler, Java version, QuickFIX version, and configuration settings. --oren ----- Original Message ----- From: "VP Marketing IT Asset Enterprise Technologies" <ass...@gm...> To: <Qui...@li...> Sent: Monday, June 27, 2005 11:44 AM Subject: [Quickfix-developers] Quickfix Java Application aborts on well formed message... 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 I am running a Java quickfix application on linux. Due to sequence number mismatch the counterparty rejects the logon (35=A) msg. <20050627-16:25:41, FIX.4.2:FEST->CTEST, incoming> (8=FIX.4.2^A9=121^A35=3^A49=CTEST^A56=FTEST^A34=00026^A43=N^A52=20050627-16:25:27^A97=N^A45=009^A58=Incoming MsgSeqNum is 9 whi\ le expected 11^A10=251^A) <20050627-16:25:41, FIX.4.2:FTEST->CTEST, event> (Logon state is not valid for message) <20050627-16:25:41, FIX.4.2:FTEST->CTEST, event> (Dropped Connection) FIX.4.2:FTEST->CTEST is LOGGED OUT <20050627-16:25:41, FIX.4.2:FTEST->CTEST, event> (Initiated logon request) FIX.4.2:FTEST->CTEST is LOGGED OUT <20050627-16:25:42, FIX.4.2:FTEST->CTEST, event> (Connecting to 199.53.16.226 on port 5545) <20050627-16:25:42, FIX.4.2:FTEST->CTEST, event> (Connection succeeded) <20050627-16:25:42, FIX.4.2:FTEST->CTEST, outgoing> (8=FIX.4.2^A9=72^A35=A^A34=11^A49=FTEST^A52=20050627-16:25:42065^A56=CTEST^A98=0^A108=30^A10=247^A). <20050627-16:25:42, FIX.4.2:FTEST->CTEST, event> (Initiated logon request) <20050627-16:25:42, FIX.4.2:FTEST->CTEST, incoming> (8=FIX.4.2^A9=87^A35=A^A49=CTEST^A56=FTEST^A34=00027^A98=0^A52=20050627-16:25:28^A108=60^A141=N^A383=56000^A10=203^A) Aborted It cannot be the static link item from FAQ. Scanned for duplicate tags cannot find any... Any hint? thank you -- Raman ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=ick _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
|
From: VP M. IT A. E. T. <ass...@gm...> - 2005-06-27 16:44:19
|
Hi I am running a Java quickfix application on linux. Due to sequence number mismatch the counterparty rejects the logon (35=3DA) msg. =20 <20050627-16:25:41, FIX.4.2:FEST->CTEST, incoming> (8=3DFIX.4.2^A9=3D121^A35=3D3^A49=3DCTEST^A56=3DFTEST^A34=3D00026^A43=3DN= ^A52=3D20050627-16:25:27^A97=3DN^A45=3D009^A58=3DIncoming MsgSeqNum is 9 whi\ le expected 11^A10=3D251^A) <20050627-16:25:41, FIX.4.2:FTEST->CTEST, event> (Logon state is not valid for message) <20050627-16:25:41, FIX.4.2:FTEST->CTEST, event> (Dropped Connection) FIX.4.2:FTEST->CTEST is LOGGED OUT <20050627-16:25:41, FIX.4.2:FTEST->CTEST, event> (Initiated logon request) FIX.4.2:FTEST->CTEST is LOGGED OUT <20050627-16:25:42, FIX.4.2:FTEST->CTEST, event> (Connecting to 199.53.16.226 on port 5545) <20050627-16:25:42, FIX.4.2:FTEST->CTEST, event> (Connection succeeded) <20050627-16:25:42, FIX.4.2:FTEST->CTEST, outgoing> (8=3DFIX.4.2^A9=3D72^A35=3DA^A34=3D11^A49=3DFTEST^A52=3D20050627-16:25:42= .065^A56=3DCTEST^A98=3D0^A108=3D30^A10=3D247^A) <20050627-16:25:42, FIX.4.2:FTEST->CTEST, event> (Initiated logon request) <20050627-16:25:42, FIX.4.2:FTEST->CTEST, incoming> (8=3DFIX.4.2^A9=3D87^A35=3DA^A49=3DCTEST^A56=3DFTEST^A34=3D00027^A98=3D0^= A52=3D20050627-16:25:28^A108=3D60^A141=3DN^A383=3D56000^A10=3D203^A) Aborted It cannot be the static link item from FAQ. Scanned for duplicate tags cannot find any... Any hint? thank you -- Raman |