quickfix-developers Mailing List for QuickFIX (Page 199)
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: Brian E. <azz...@ya...> - 2005-06-16 18:12:38
|
Oren - Some people have been using tag 789 (NextExpectedMsgSeqNum), introduced in FIX 4.4, as a way to handle sequence number too low problems (the CME does this). Although it's still not a FIX standard (the FIX 4.4 use of this tag is optional and on Logon messages only, but may become mandatory in 4.5), it's a really nice way to recover from these situations. The acceptor, when detecting a message too low, sends a Logout message with tag 789 set to the expected sequence number. The initiator can then adjust its sequence number and attempt to log in again. It's a lot cleaner way of recovering from a catastrophic client-side failure than resetting both sequence numbers. If the initiator had some sort of problem that prevents it from being able to resend any gaps, but does NOT want to miss any gaps on the acceptor side, it's really the only clean solution. In most cases, the initiator is definitely going to want the ExecutionReports that have queued up since its failure, but may not have the messages that were sent prior to its failure (or may not want to send them - stale order messages are potentially a HUGE risk, so why submit them?). The use of this tag is VERY popular among the developers that are connecting to my system and has been equally well-received by the CME community. Hopefully, its use will be picked up in 4.5. Speaking of logouts, I haven't noticed any changes to Session.cpp in regards to using the "what" string in RejectLogon to populate the Text field in a Logout message. You seemed to think it was a good idea last month - I could resend the patch if you want (I haven't really done much with CVS and the patch is trivial). - 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 > > Yeah, this behavior is actually what the FPL recommends. When > receiving a > sequence number that is too low, you are supposed to kill the > connection > because there isn't really anything you can do automatically. In > fact I > believe this is the one scenario where the protocol document states > that > manual intervention is required. Here is the exact quote: "If the > incoming > message has a sequence number less than expected and the PossDupFlag > is not > set, it indicates a serious error. It is strongly recommended that > the > session be terminated and manual intervention be initiated." > > So really the third party engine is doing the right thing. You'll > find that > QF would do exact same thing in this situation. > > If you really want to start the sequence numbers from scratch, you > should > reset you sequence numbers and send your logon with the ResetSeqNum > flag. > This can result in loss of messages if you are not careful. > > --oren > > ----- Original Message ----- > From: "Francis Gingras" <fr...@at...> > To: <qui...@li...> > Sent: Wednesday, June 15, 2005 7:35 PM > Subject: [Quickfix-developers] RE: Logout reason > > > > 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 > > > > Oren, > > > > You're right QF did send a resend request but the counterparty > closed the > > socket so I didn't notice. (see log below) > > > > The "sequence number too high" message is from the client > (initiator) > > point > > of view. It appears that the counterparty does not send a logoff > or a > > session rejection message; it just closes the socket when it > receives a > > MsgSeqNum that is lower than what it expects. BTW it's not a QF > acceptor > > but a custom 3rd party server. > > > > This is why the only solution I see is to increase the > > setNextSenderMsgSeqNum by 1000 every time the socket drops during > logon, > > but > > I'm not comfortable with such a kludge; what if there are other > conditions > > that cause the socket to drop? Comments welcome. > > > > So to conclude, it does not appear to be a QF issue after all > because the > > acceptor side does not send any notification that the logon failed. > > > > 20050613-20:26:19 : Created session > > 20050613-20:26:19 : Connecting to 127.0.0.1 on port 10501 > > 20050613-20:26:19 : Connection succeeded > > 20050613-20:26:19 : Initiated logon request > > 20050613-20:26:19 : Received logon response > > 20050613-20:26:19 : MsgSeqNum too high, expecting 1 but received > 481 > > 20050613-20:26:19 : Socket Error: Connection reset by peer. > > 20050613-20:26:19 : Disconnecting > > 20050613-20:26:19 : Sent ResendRequest FROM: 1 TO: 0 > > > > Thanks, > > > > Francis > > > > > > > > > > ------------------------------------------------------- > > 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: Shah, A. <AJ...@cm...> - 2005-06-16 18:07:28
|
=20 Hi, =20 I have seen that in your cvsroot directory there are some java based store implementations. I tried taking FileStore and FileStoreFactory and some dependent files. But I can see that it has many other dependencies too. Can I download the whole "quickfixj" folder together for unix platform? If yes then How can I do that? =20 Thanks for your help in advance. Waiting for your reply. Ajisha =20 =20 ________________________________ From: Oren Miller [mailto:or...@qu...]=20 Sent: Thursday, June 16, 2005 11:22 AM To: Shah, Ajisha; as...@qu... Subject: Re: Need technical help asap =20 Yes, the MessageStore.java is designed to be inherited and extended. You can implement this completely in Java to create custom storage. =20 This is accomplished through the JavaMessageStore and JavaMessageStoreFactory in the JNI library which act as a bridge between the C++ and Java implementations of these interfaces. =20 None of this really affects you. You just need to implement the interface in Java like normal and it should 'just work'. =20 --oren ----- Original Message -----=20 From: Shah, Ajisha <mailto:AJ...@cm...> =20 To: as...@qu...=20 Sent: Thursday, June 16, 2005 9:05 AM Subject: Need technical help asap =20 Hi, =20 My application is written in java and We have one requirement about store. We want to write our own store in java and publish those messages on Tibco bus, as our other application does. For doing this can I implement "MesssageStore.java and write my own set of store?=20 =20 My question is=20 Quickfix gives java support by JNI, and writing store in java will make quickfix to give a java call for getting messages and sequence related information from my java based store. Isn't it reverse call from C++ to java? Will JNI or quickfix support this? =20 Please help me in this by clarifying this or let me know if you have other solution to this. =20 Thanks Ajisha =20 |
|
From: Oren M. <or...@qu...> - 2005-06-16 16:33:09
|
Yeah, this behavior is actually what the FPL recommends. When receiving a sequence number that is too low, you are supposed to kill the connection because there isn't really anything you can do automatically. In fact I believe this is the one scenario where the protocol document states that manual intervention is required. Here is the exact quote: "If the incoming message has a sequence number less than expected and the PossDupFlag is not set, it indicates a serious error. It is strongly recommended that the session be terminated and manual intervention be initiated." So really the third party engine is doing the right thing. You'll find that QF would do exact same thing in this situation. If you really want to start the sequence numbers from scratch, you should reset you sequence numbers and send your logon with the ResetSeqNum flag. This can result in loss of messages if you are not careful. --oren ----- Original Message ----- From: "Francis Gingras" <fr...@at...> To: <qui...@li...> Sent: Wednesday, June 15, 2005 7:35 PM Subject: [Quickfix-developers] RE: Logout reason > 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 > > Oren, > > You're right QF did send a resend request but the counterparty closed the > socket so I didn't notice. (see log below) > > The "sequence number too high" message is from the client (initiator) > point > of view. It appears that the counterparty does not send a logoff or a > session rejection message; it just closes the socket when it receives a > MsgSeqNum that is lower than what it expects. BTW it's not a QF acceptor > but a custom 3rd party server. > > This is why the only solution I see is to increase the > setNextSenderMsgSeqNum by 1000 every time the socket drops during logon, > but > I'm not comfortable with such a kludge; what if there are other conditions > that cause the socket to drop? Comments welcome. > > So to conclude, it does not appear to be a QF issue after all because the > acceptor side does not send any notification that the logon failed. > > 20050613-20:26:19 : Created session > 20050613-20:26:19 : Connecting to 127.0.0.1 on port 10501 > 20050613-20:26:19 : Connection succeeded > 20050613-20:26:19 : Initiated logon request > 20050613-20:26:19 : Received logon response > 20050613-20:26:19 : MsgSeqNum too high, expecting 1 but received 481 > 20050613-20:26:19 : Socket Error: Connection reset by peer. > 20050613-20:26:19 : Disconnecting > 20050613-20:26:19 : Sent ResendRequest FROM: 1 TO: 0 > > Thanks, > > Francis > > > > > ------------------------------------------------------- > 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: Francis G. <fr...@at...> - 2005-06-16 00:35:18
|
Oren, You're right QF did send a resend request but the counterparty closed the socket so I didn't notice. (see log below) The "sequence number too high" message is from the client (initiator) point of view. It appears that the counterparty does not send a logoff or a session rejection message; it just closes the socket when it receives a MsgSeqNum that is lower than what it expects. BTW it's not a QF acceptor but a custom 3rd party server. This is why the only solution I see is to increase the setNextSenderMsgSeqNum by 1000 every time the socket drops during logon, but I'm not comfortable with such a kludge; what if there are other conditions that cause the socket to drop? Comments welcome. So to conclude, it does not appear to be a QF issue after all because the acceptor side does not send any notification that the logon failed. 20050613-20:26:19 : Created session 20050613-20:26:19 : Connecting to 127.0.0.1 on port 10501 20050613-20:26:19 : Connection succeeded 20050613-20:26:19 : Initiated logon request 20050613-20:26:19 : Received logon response 20050613-20:26:19 : MsgSeqNum too high, expecting 1 but received 481 20050613-20:26:19 : Socket Error: Connection reset by peer. 20050613-20:26:19 : Disconnecting 20050613-20:26:19 : Sent ResendRequest FROM: 1 TO: 0 Thanks, Francis |
|
From: Joerg T. <Joe...@ma...> - 2005-06-15 21:18:53
|
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 > > The following trivial patch allows the user of QuickFIX to control the > permissions of any directories created by the FileLog and FileStore > classes using their umask. This is standard behavior. The mode of a > directory created by mkdir(2) is calculated from mode & ~umask, so the > current value of 0700 makes it impossible to ever set any of the group > or other access rights. > > For example, we want our directories to have mode 0755 so that support > personnel can monitor logfiles without needing to become the user that > runs the FIX engine, which can be a security issue. See bugtracker bug #79: http://www.quickfixengine.org/bugtracker/bug.php?op=show&bugid=79 Fixed in CVS; I removed the mode argument from the file_mkdir() interface and used mkdir( dir, 0777 ) internally. 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: Caleb E. <cal...@gm...> - 2005-06-15 19:18:20
|
The following trivial patch allows the user of QuickFIX to control the
permissions of any directories created by the FileLog and FileStore
classes using their umask. This is standard behavior. The mode of a
directory created by mkdir(2) is calculated from mode & ~umask, so the
current value of 0700 makes it impossible to ever set any of the group
or other access rights.
For example, we want our directories to have mode 0755 so that support
personnel can monitor logfiles without needing to become the user that
runs the FIX engine, which can be a security issue.
Index: FileLog.cpp
=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=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvsroot/quickfix/quickfix/src/C++/FileLog.cpp,v
retrieving revision 1.6
diff -u -b -r1.6 FileLog.cpp
--- FileLog.cpp 4 Aug 2004 00:30:02 -0000 1.6
+++ FileLog.cpp 15 Jun 2005 19:10:31 -0000
@@ -49,7 +49,7 @@
FileLog::FileLog( std::string path, const SessionID& s )
: m_sessionID( s )
{
- file_mkdir( path.c_str(), 0700 );
+ file_mkdir( path.c_str(), 0777 );
=20
if ( path.empty() ) path =3D ".";
const std::string& begin =3D
Index: FileStore.cpp
=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=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvsroot/quickfix/quickfix/src/C++/FileStore.cpp,v
retrieving revision 1.11
diff -u -b -r1.11 FileStore.cpp
--- FileStore.cpp 21 Feb 2005 20:55:37 -0000 1.11
+++ FileStore.cpp 15 Jun 2005 19:10:31 -0000
@@ -35,7 +35,7 @@
FileStore::FileStore( std::string path, const SessionID& s )
: m_msgFile( 0 ), m_headerFile( 0 ), m_seqNumsFile( 0 ), m_sessionFile( 0 =
)
{
- file_mkdir( path.c_str(), 0700 );
+ file_mkdir( path.c_str(), 0777 );
=20
if ( path.empty() ) path =3D ".";
const std::string& begin =3D
--=20
Caleb Epstein
caleb dot epstein at gmail dot com
|
|
From: Martin T. <mta...@ho...> - 2005-06-15 02:30:07
|
Hi,
I have this part of code as an example of my problem:
_____
Public Sub processNewQuickFIX(ByRef qfxMessage As QuickFix.Message)
Dim field As New QuickFix.StringField(myIntConstant)
If (qfxMessage.isSetField(myIntConstant)) Then
qfxMessage.getField(field)
End If
'.......
End sub
_____
For that part of code, I get this error:
'getField' has a return type that is not supported or parameter types that
are not supported.
Somewhere else in my code I get:
'setField' has a return type that is not supported or parameter types that
are not supported.
The strange part of it is that yesterday, I was able to run that same code.
If I close the VB.NET environment, and I re-open my solution, then I get
more errors of that kind. Other lines where I use the getField or setField
are now in error and previously they were not, how come?
Does my .NET framework need to be reinstalled or repaired? It is doing the
same on two other computer that run VS.NET 2003.
Does anybody already get that kind of problem?
Thank you!
Martin
|
|
From: Francis G. <fr...@at...> - 2005-06-15 00:58:03
|
Oren, You're right QF did send a resend request but the counterparty closed the socket so I didn't notice. (see log below) The "sequence number too high" message is from the client (initiator) point of view. It appears that the counterparty does not send a logoff or a session rejection message; it just closes the socket when it receives a MsgSeqNum that is lower than what it expects. BTW it's not a QF acceptor but a custom 3rd party server. This is why the only solution I see is to increase the setNextSenderMsgSeqNum by 1000 every time the socket drops during logon, but I'm not comfortable with such a kludge; what if there are other conditions that cause the socket to drop? Comments welcome. So to conclude, it does not appear to be a QF issue after all because the acceptor side does not send any notification that the logon failed. 20050613-20:26:19 : Created session 20050613-20:26:19 : Connecting to 127.0.0.1 on port 10501 20050613-20:26:19 : Connection succeeded 20050613-20:26:19 : Initiated logon request 20050613-20:26:19 : Received logon response 20050613-20:26:19 : MsgSeqNum too high, expecting 1 but received 481 20050613-20:26:19 : Socket Error: Connection reset by peer. 20050613-20:26:19 : Disconnecting 20050613-20:26:19 : Sent ResendRequest FROM: 1 TO: 0 Thanks, Francis |
|
From: SnO2d S. <cs_...@ho...> - 2005-06-15 00:39:48
|
Hi, Does anyone have any experience of running an application implementing quickfix on a webserver e.g. weblogic? If so, could you point me in the direction of any resources / documentation which would help. Many thanks, sno2d _________________________________________________________________ It's fast, it's easy and it's free. Get MSN Messenger 7.0 today! http://messenger.msn.co.uk |
|
From: Oren M. <or...@qu...> - 2005-06-14 16:19:38
|
Well, this isn't really a serious error condition that requires any intervention on your part. If the sequence number is too high, QuickFIX should just send out a resend request and recover the missing messages. There shouldn't even be a reject message because it isn't a reject scenarion. I certainly don't think you need to be incrementing sequence numbers. Are you sure that a resend request isn't going out? Do you have more complete logs? --oren ----- Original Message ----- From: "Francis Gingras" <fr...@at...> To: <qui...@li...> Sent: Monday, June 13, 2005 3:47 PM Subject: [Quickfix-developers] Logout reason > 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 > > Here's another question on an old favorite: finding the elusive logout (or > failed login) reason. > > Scenario using QF from C# with the latest files from CVS. RequestNums are > set to 1,1, and the server is cycled only once a week. > > QF initiator send a Logon request: > 8=FIX.4.29=7535=A34=149=USER52=20050613-20:26:19.28156=TEST96=passwor > d98=0108=3010=136 > > and server responds with: > 8=FIX.4.29=0006535=A49=TEST56=USER34=48152=20050613-20:26:19.312108=3 > 098=010=180 > > Now QF rejects the message and logs "MsgSeqNum too high, expecting 1 but > received 481" in the event log. > > Question: how can I get this reject reason in fromAdmin? The client does > not > 'see' this rejection message so it has no idea why the login didn't work. > > I added this to Session::validLogonState. This should (I think) send the > logout reason to fromAdmin, but it doesn't. > > if ( msgType == MsgType_Logout ) > return true; > > Then I tried implementing the QuickFix.Log interface and added > public void onEvent(string @string) > { log everything here } > but this method is never triggered. > > I looked for onError but it doesn't seem to be available from C#. > > What is the best way to work around this? Arbitrarily incrementing > setNextTargetMsgSeqNum() until the login is successful is clumsy at best. > > Thanks, > > Francis Gingras > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: NEC IT Guy Games. How far can you > 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=20 > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
|
From: Oren M. <or...@qu...> - 2005-06-14 16:04:06
|
> In the case when there already exists a session for a sessionID, what is > the expected behavior when the acceptor sees: > > - the first session is /not/ logged in, and a second connection is opened > for a session where the first message /is/ a login Until a logon is received, a connection has no way of being associated with a session. So if no logon has been received from a connection, then that session is open and up for grabs. > - the first session is /not/ logged in, and a second connection is opened > for a session where the first message is /not/ a login The first message always needs to be a login. The connection will simply be dropped if it isn't. > - the first session /is/ logged in, and a second connection is opened for > a session where the first message /is/ a login The second connection will be dropped. Only one connection is allowed an association with the session. Whoever is there first retains access to that session. > - the first session /is/ logged in, and a second connection is opened for > a session where the first message is /not/ a login Again, the second connection will be dropped because the first message must be a login. --oren |
|
From: Francis G. <fr...@at...> - 2005-06-13 20:47:10
|
Here's another question on an old favorite: finding the elusive logout (or
failed login) reason.
Scenario using QF from C# with the latest files from CVS. RequestNums are
set to 1,1, and the server is cycled only once a week.
QF initiator send a Logon request:
8=FIX.4.29=7535=A34=149=USER52=20050613-20:26:19.28156=TEST96=passwor
d98=0108=3010=136
and server responds with:
8=FIX.4.29=0006535=A49=TEST56=USER34=48152=20050613-20:26:19.312108=3
098=010=180
Now QF rejects the message and logs "MsgSeqNum too high, expecting 1 but
received 481" in the event log.
Question: how can I get this reject reason in fromAdmin? The client does not
'see' this rejection message so it has no idea why the login didn't work.
I added this to Session::validLogonState. This should (I think) send the
logout reason to fromAdmin, but it doesn't.
if ( msgType == MsgType_Logout )
return true;
Then I tried implementing the QuickFix.Log interface and added
public void onEvent(string @string)
{ log everything here }
but this method is never triggered.
I looked for onError but it doesn't seem to be available from C#.
What is the best way to work around this? Arbitrarily incrementing
setNextTargetMsgSeqNum() until the login is successful is clumsy at best.
Thanks,
Francis Gingras
|
|
From: Martin T. <mta...@ho...> - 2005-06-12 15:06:51
|
Jim, I just find out, I should have used the field.getValue() property. Thank you and have a nice day! Martin >From: "James C. Downs" <jc...@co...> >To: mta...@ho..., qui...@li... >Subject: RE: [Quickfix-developers] QuickFix41.message and >QuickFix41.MessageCracker >Date: Sun, 12 Jun 2005 09:07:32 -0500 > >Martin, >For fields contained in the message header try using the >message.getHeader() method. This will expose the fields in the header. >Jim >---- Original Message ---- >From: mta...@ho... >To: qui...@li... >Subject: RE: [Quickfix-developers] QuickFix41.message and > >QuickFix41.MessageCracker >Date: Sun, 12 Jun 2005 09:49:15 -0400 > > >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 saw that the QuickFix41.message object has the getField property. > >When I > >tried it in runtime I was not able to extract the field 35 > >(MessageType). > > > >I am using VS.NET 2003, my code is written in VB.NET. > > > >How can I extract all the fields (maybe with getField()) from the > >QuickFix41.message object without passing it to the > >QuickFix41.MessageCracker ? > > > >Thanks you > >Martin > > > > > > > > > >------------------------------------------------------- > >This SF.Net email is sponsored by: NEC IT Guy Games. How far can > >you 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=20 > >_______________________________________________ > >Quickfix-developers mailing list > >Qui...@li... > >https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > |
|
From: Martin T. <mta...@ho...> - 2005-06-12 15:00:51
|
Hello Jim, Thank you, I can get the header and the trailer fields. Is it possible to reach the others fields that would be specific to the msgType 35. Let's say that I get msgType=8 for execution report, how can I reach the tag 11 (ClOrdID) without the message cracker? In the online doc of quickfixengine.com it is specified that we can use: --------- Imports QuickFix Public Sub fromApp(ByVal message As Message, ByVal sessionID As SessionID) Dim field As New StringField(44) message.getField(field) End Sub --------- When I output the result with console.writeline(field.getfield()), it print "44". Should it print the price value for that tag44 ? I also tried with "Dim ClOrdID As New QuickFix.ClOrdID" and passed it to message.getField(ClOrdID) and it still return the TAG number instead of the content, how come? Thank you! Martin >From: "James C. Downs" <jc...@co...> >To: mta...@ho..., qui...@li... >Subject: RE: [Quickfix-developers] QuickFix41.message and >QuickFix41.MessageCracker >Date: Sun, 12 Jun 2005 09:07:32 -0500 > >Martin, >For fields contained in the message header try using the >message.getHeader() method. This will expose the fields in the header. >Jim >---- Original Message ---- >From: mta...@ho... >To: qui...@li... >Subject: RE: [Quickfix-developers] QuickFix41.message and > >QuickFix41.MessageCracker >Date: Sun, 12 Jun 2005 09:49:15 -0400 > > >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 saw that the QuickFix41.message object has the getField property. > >When I > >tried it in runtime I was not able to extract the field 35 > >(MessageType). > > > >I am using VS.NET 2003, my code is written in VB.NET. > > > >How can I extract all the fields (maybe with getField()) from the > >QuickFix41.message object without passing it to the > >QuickFix41.MessageCracker ? > > > >Thanks you > >Martin > > > > > > > > > >------------------------------------------------------- > >This SF.Net email is sponsored by: NEC IT Guy Games. How far can > >you 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=20 > >_______________________________________________ > >Quickfix-developers mailing list > >Qui...@li... > >https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > |
|
From: Barry K. <gr...@me...> - 2005-06-12 14:36:00
|
In the case when there already exists a session for a sessionID, what is the expected behavior when the acceptor sees: - the first session is /not/ logged in, and a second connection is opened for a session where the first message /is/ a login - the first session is /not/ logged in, and a second connection is opened for a session where the first message is /not/ a login - the first session /is/ logged in, and a second connection is opened for a session where the first message /is/ a login - the first session /is/ logged in, and a second connection is opened for a session where the first message is /not/ a login -- barry kaplan gr...@me... |
|
From: James C. D. <jc...@co...> - 2005-06-12 14:07:45
|
Martin, For fields contained in the message header try using the message.getHeader() method. This will expose the fields in the header. Jim ---- Original Message ---- From: mta...@ho... To: qui...@li... Subject: RE: [Quickfix-developers] QuickFix41.message and >QuickFix41.MessageCracker Date: Sun, 12 Jun 2005 09:49:15 -0400 >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 saw that the QuickFix41.message object has the getField property. >When I >tried it in runtime I was not able to extract the field 35 >(MessageType). > >I am using VS.NET 2003, my code is written in VB.NET. > >How can I extract all the fields (maybe with getField()) from the >QuickFix41.message object without passing it to the >QuickFix41.MessageCracker ? > >Thanks you >Martin > > > > >------------------------------------------------------- >This SF.Net email is sponsored by: NEC IT Guy Games. How far can >you 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=20 >_______________________________________________ >Quickfix-developers mailing list >Qui...@li... >https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
|
From: Martin T. <mta...@ho...> - 2005-06-12 13:49:22
|
Hi, I saw that the QuickFix41.message object has the getField property. When I tried it in runtime I was not able to extract the field 35 (MessageType). I am using VS.NET 2003, my code is written in VB.NET. How can I extract all the fields (maybe with getField()) from the QuickFix41.message object without passing it to the QuickFix41.MessageCracker ? Thanks you Martin |
|
From: Barry K. <gr...@me...> - 2005-06-11 00:04:05
|
I am nearly finished porting the network layer of quickfixj from netty to mina. Mina supports SSL transparently. Once I finish up I'll modify one of the examples to use SSL. -barry an...@rh... wrote: > Does QuickFIX support encryption or do I need to use something like > stunnel? If the latter is the case; are there any good > samples/documentation of implementing it? Any recommendations for the > best encryption tool to use? (Stunnel or another). > > > > Thank you, > > > > Andy Mareska > > > -- barry kaplan gr...@me... |
|
From: Thomas W. <tw...@fo...> - 2005-06-10 21:26:28
|
Fabien,
Try these two things:
1. In /usr/lib, look for libxml2.so. If all you see is (for
example) /usr/lib/libxml2.so.2, then create a softlink as follows:
cd /usr/lib
ln -s libxml2.so.2 libxml2.so
You need to do that as root.
I found that the linker could not the xml2 lib (in 32-bit mode that is)
unless there was a copy without version numbers after the .so.
2. export both of these
export CFLAGS="-m32"
export CXXFLAGS="-m32"
Then run configure, and I think that your system should be
OK....assuming that you have copies of all the necessary 32 bit libs.
I'm on RHEL 4.0, and everything was there but for mysql (which I got
from the mysql site)
Regards,
Tom
On Thu, 2005-06-09 at 20:35 -0700, quickfix-developers-
re...@li... wrote:
>
> --__--__--
>
> Message: 3
> From: "Fabien Galampoix" <fab...@pr...>
> To: "Quickfix-Developers" <qui...@li...>,
> "Quickfix-Users" <qui...@li...>
> Date: Thu, 9 Jun 2005 18:11:34 +0200
> Subject: [Quickfix-developers] 64-bits JNI troubles ...
>
> Hi
>
> I try to compile/run quickfix v1.9.4 under Redhat ES v3 with dual opteron
> (x86_64 arch).
> C++ works well but not the JNI library.
> As soon as i use libquickfix_jni.so in any java program (even quickfix
> example), there are troubles with :
> - Sun JVM 1.4 (j2ee 32b)
> - Sun JVM 1.5 32b or 64b
> - IBM JVM 1.4 32b or 64b
> The result is ... exception : core dumped ...
> I did set CLASSPATH, -Djava.library.path and jvm found the right library.
> 1) Does anyone use quickfix java on 64b platform with success ?
>
> I saw in other thread from Tom Wood that he suggests to compile CPP code in
> 32b mode.
> I tried to set CPPFLAGS="-m32" but i obtained incompatibilty error with
> "libxml2.so" library.
> 2) does anyone successfully compile/run in 32-bits mode with 64-bits
> platform ? (x86_64)
>
> This is my first post here, please apologize if a forgot some rules :)
>
>
>
>
> --__--__--
>
> _______________________________________________
> Quickfix-developers mailing list
> Qui...@li...
> https://lists.sourceforge.net/lists/listinfo/quickfix-developers
>
>
> End of Quickfix-developers Digest
Tom Wood
Fort Mason Capital
456 Montgomery Street, 22nd Floor
San Francisco, CA 94104
Direct: 415-249-3387
Fax: 415-249-3389
tw...@fo...
|
|
From: Andrei G. <an...@gm...> - 2005-06-10 19:39:25
|
On 6/10/05, Caleb Epstein <cal...@gm...> wrote: > On 6/10/05, Andrei Goldchleger <an...@gm...> wrote: > > I am currently evaluating several options for adding FIX support to a > > large electronic trading system. We need that the solution adheres to > > the complete FIX specification as much as possible. From my initial > > evaluation, I believe that QuickFix implements all of the > > "traditional"(everything but FixML) FIX protocol, including both > > business messages (described in Vols 3-5) and the session protocol > > (Vol 2). Am I right on this one? If I am wrong, can you point any part > > Yes. > > > of the specification (even if minor) which is not implemented by the > > current QuickFix version? What about built-in encription, is it > > supported? > > It isn't (see a post from earlier today on this same subject). OK, so please correct me if I am wrong: in order to implement "built in encryption", I would have to modify QuickFix to decrypt the SecureData field according to some pre-defined method, then "add" the now decrypted fields to a message which also contains fields sent in plain text, and finally pump the message through validation. I will also need to negotiate the encryption method during logon, when I would also setup the encryption method, if applicable. > > > Afer reading the documentation, I could not find any reference to > > FixML support. I know that this is normally considered "extra", but it > > will be nice to know if it is supported. > > Short answer: It isn't. > > Longer answer: There is a method in the QuickFIX Message class to > "render" it as XML based on an XML Data Dictionary. However, the tag > names in FIXML diverge from those in the FIX spec (why, in the name of > all that is holy did they do that?) I am not sure if we are talking about the same thing, but if I am not mistaken some tags were modified in order to save bandwidth. Makes one wonder why use XML at first place ;-) > so the output generated using the > default Data Dictionary files is not FIXML. I suspect you could whip > up a Data Dictionary that used the FIXML names and be able to generate > mostly FIXML-compliant messages. But I'm sure there will be other > gotchas (e.g. should attributes be used, or nested text elements) that > come up. OK. Can you think of any other specification aspect that is currently missing from QuickFix? Again, thanks for all your help, Andrei Goldchleger |
|
From: Caleb E. <cal...@gm...> - 2005-06-10 15:40:09
|
On 6/10/05, Andrei Goldchleger <an...@gm...> wrote: > I am currently evaluating several options for adding FIX support to a > large electronic trading system. We need that the solution adheres to > the complete FIX specification as much as possible. From my initial > evaluation, I believe that QuickFix implements all of the > "traditional"(everything but FixML) FIX protocol, including both > business messages (described in Vols 3-5) and the session protocol > (Vol 2). Am I right on this one? If I am wrong, can you point any part Yes. > of the specification (even if minor) which is not implemented by the > current QuickFix version? What about built-in encription, is it > supported? It isn't (see a post from earlier today on this same subject). > Afer reading the documentation, I could not find any reference to > FixML support. I know that this is normally considered "extra", but it > will be nice to know if it is supported. Short answer: It isn't. Longer answer: There is a method in the QuickFIX Message class to "render" it as XML based on an XML Data Dictionary. However, the tag names in FIXML diverge from those in the FIX spec (why, in the name of all that is holy did they do that?) so the output generated using the default Data Dictionary files is not FIXML. I suspect you could whip up a Data Dictionary that used the FIXML names and be able to generate mostly FIXML-compliant messages. But I'm sure there will be other gotchas (e.g. should attributes be used, or nested text elements) that come up. --=20 Caleb Epstein caleb dot epstein at gmail dot com |
|
From: Andrei G. <an...@gm...> - 2005-06-10 14:28:36
|
Hi, I am currently evaluating several options for adding FIX support to a large electronic trading system. We need that the solution adheres to the complete FIX specification as much as possible. From my initial evaluation, I believe that QuickFix implements all of the "traditional"(everything but FixML) FIX protocol, including both business messages (described in Vols 3-5) and the session protocol (Vol 2). Am I right on this one? If I am wrong, can you point any part of the specification (even if minor) which is not implemented by the current QuickFix version? What about built-in encription, is it supported? Afer reading the documentation, I could not find any reference to FixML support. I know that this is normally considered "extra", but it will be nice to know if it is supported. Thanks in advance for any help,=20 Andrei Goldchleger |
|
From: Oren M. <or...@qu...> - 2005-06-10 13:32:17
|
I know several people have used Stunnel for encryption. My understanding is that Stunnel runs out of process and acts as a proxy. So you just need to set up Stunnel as directed and set up the QF config files to connect to it (or have it forward requests to you if you are the acceptor). Except for that i don't think you need to do anything special with QF. --oren On Jun 10, 2005, at 6:11 AM, <an...@rh...> wrote: > Does QuickFIX support encryption or do I need to use something like > stunnel? If the latter is the case; are there any good samples/ > documentation of implementing it? Any recommendations for the best > encryption tool to use? (Stunnel or another). > > > > Thank you, > > > > Andy Mareska > > > > |
|
From: Michael R. <mr...@li...> - 2005-06-10 12:41:30
|
I'd second that, hit the issue myself. Why not have QF call toAdmin?
Very often, you'd want to see what message was rejected.
Michael
-----Original Message-----
From: Alvin Wang [mailto:AW...@FF...]
Sent: Tuesday, June 07, 2005 8:53 PM
To: dav...@ma...
Cc: qui...@li...;
qui...@li...
Subject: RE: [Quickfix-developers] fromAdmin / fromApp callbacks in
Application interface (java)
Hi Dave,
I can understand where you are coming from. But I think an onError callback
is more straighforward. Otherwise, we would have to use the seqnum to
retrieve the original message from MySql (what if QF is configured to use
other logging method?)
Thanks
Alvin
"Dave Linaker" <dav...@ma...>
06/07/2005 12:32 PM
Please respond to dave.linaker
To: "'Alvin Wang'" <AW...@FF...>,
<qui...@li...>,
<qui...@li...>
cc:
bcc:
Subject: RE: [Quickfix-developers] fromAdmin / fromApp
callbacks in Application interface (java)
Hi Alvin,
As you say, fromApp and fromAdmin aren't called if the message is rejected
at the Session level (i.e. if it fails the basic message validation) but
toAdmin is called as a result of the Reject message being sent. The Reject
message will contain some basic information about why the message was
rejected, at the very least a SeqNum and Text containing a description of
why it was rejected. So the application can be aware of the rejection,
although it's not being passed the message. Were you looking for something
more than this?
Kind regards
Dave
-----Original Message-----
From: qui...@li...
[mailto:qui...@li...] On Behalf Of Alvin
Wang
Sent: 07 June 2005 23:11
To: qui...@li...;
qui...@li...
Subject: [Quickfix-developers] fromAdmin / fromApp callbacks in Application
interface (java)
Hi,
I have found that if a message is rejected by QF, fromAdmin or fromApp will
not be invoked by QF. As a result, we have no knowledge about the message
and what happened at all. I can understand that QF tries to filter out
those malformated msgs, but application should also be notified by some
ways. (what about a callback called onError?)
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.
**********************************************************************
This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail.
|
|
From: girish <gi...@om...> - 2005-06-10 11:49:21
|
Hi All,
I am new to this group,I am developing one application(Fix =
Adapter) which will be an intermidiate process between the client and =
our middleware process.
I want to develop it on linux with mysql support.
Right now I am experimenting it on Winows,for that I have compiled the =
quickfix.jar and quickfix_jni.jar on VC++.It is working,same I have to =
do for linux.
I will compile it on linux and will put the jars in classpath so I =
will use these to develop my process,I am developing it on Java.
Can any one tell me in detail(step wise) that how I will compile and =
get the same jars on linux.Please tell me from installation of mysql as =
I am not aware of this also.Waitting for reply from you.
Thanks and Regards
Girish
|