quickfix-developers Mailing List for QuickFIX (Page 140)
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: Caleb E. <cal...@gm...> - 2006-07-29 07:09:43
|
On 7/26/06, Jain, Anil <Ani...@rb...> wrote: > This is for QuickFIX 1.10.2: > > Will anybody suggest what should I do, as an initiator, to send SequenceReset-GapFill, every time we get resend request, irrespective of whether those sequence numbers are for admin or trade messages to be sent. It sounds like you want a more-or-less "stateless" session. Use the MemoryStore and set your sessions to ResetOnLogon=Y. Not sure this is exactly what you are looking for though. -- Caleb Epstein |
|
From: Dave L. <dav...@ma...> - 2006-07-29 06:34:45
|
>
> quickFIXMessage.setField(new
quickfix.field.NoRelatedSym(1));//146...only one symbol always...in my
case
> quickFIXMessage.setField(new
quickfix.field.Symbol("MSFT"));//55
> quickFIXMessage.setField(new
quickfix.field.IDSource("8"));//TODo ..
> quickFIXMessage.setField(new
quickfix.field.SecurityID("MSFT"));//48...
> quickFIXMessage.setField(new
quickfix.field.SecurityExchange("NYS"));
>
>
Even if you only have one group, you should still set these in the
appropriate group class and then add the group to the message, something
like:
quickfix.fix42.MarketDataRequest.NoRelatedSym group =
new quickfix.fix42.MarketDataRequest.NoRelatedSym();
group.set(new Symbol("MSFT"));
group.set(new IDSource("8"));
group.set(new SecurityID("MSFT"));
group.set(new SecurityExchange("NYS"));
message.addGroup(group);
You shouldn't set group fields directly in the message class.
See
http://www.quickfixj.org/quickfixj/usermanual/usage/repeating_groups.htm
l
Hope this helps.
Cheers,
Dave
|
|
From: Dave L. <dav...@ma...> - 2006-07-29 06:06:20
|
> Will anybody suggest what should I do, as an initiator, to > send SequenceReset-GapFill, every time we get resend request, > irrespective of whether those sequence numbers are for admin > or trade messages to be sent. > If you don't want to an application message to be resent then simply throw a DoNotSend exception in the toApp() callback, QuickFIX will do the rest. This is mentioned in the toApp() description on the quickfix site: http://www.quickfixengine.org/quickfix/doc/html/application.html Cheers, Dave |
|
From: Jain, A. <Ani...@rb...> - 2006-07-28 22:44:25
|
Hi Oren, =20 This was done before I resorted to the hack I am doing. DoNotSend throw results in other side constantly re-requesting resends. I = have observed this in CME, Island etc. Are you implying throwing DoNotSend would change resend request behavior to= SequenceReset-GapFill? =20 Regards, =20 Anil =20 -----Original Message----- From: Oren Miller [mailto:or...@qu...] Sent: Friday, July 28, 2006 1:28 PM To: Jain, Anil Cc: qui...@li...; quickfix-developers@= lists.sourceforge.net Subject: Re: Substituting message resend with Gap Fill Just stick this in your toApp(),=20 throw FIX::DoNotSend(); --oren On Jul 28, 2006, at 10:26 AM, Jain, Anil wrote: I sent this mail, but do not see as being received - resending=20 ---------------------------------------------------------------------------= ----------=20 -----Original Message-----=20 Sent: Wednesday, July 26, 2006 5:06 PM=20 This is for QuickFIX 1.10.2:=20 Will anybody suggest what should I do, as an initiator, to send SequenceRes= et-GapFill, every time we get resend request, irrespective of whether those= sequence numbers are for admin or trade messages to be sent. As per FIX protocol, I have the following options:=20 1=2E Sequence Reset - GapFill (35(MsgType)=3D2(Resend Request),43(PossD= upFlag)=3DY,123(GapFillFlag)=3DY=20 2=2E Sequence Reset - Reset (35(MsgType)=3D2(Resend Request),43(PossD= upFlag)=3DY,123(GapFillFlag)=3DN=20 3=2E Sequence Reset - GapFill for Admin Messages, resend messages with 43= =3DY for trade messages=20 As is expected by default, QuickFIX implements the option (3), but we wish = not to transmit outdated messages.=20 Sending SequenceReset - GapFill from fromAdmin did not work for certain ECN= s=2E=20 07/26/06 14:38:11.095 : Created session=20 07/26/06 14:38:11.131 : Connecting to 141.228.53.67 on port 58123=20 07/26/06 14:38:11.207 : Connection succeeded=20 07/26/06 14:38:12.203 : 8=3DFIX.4.2|9=3D73|35=3DA|34=3D85|49=3DINITIATOR|52= =3D20060726-18:38:12.203|56=3DACCEPTOR|98=3D0|108=3D30|10=3D054|=20 07/26/06 14:38:12.204 : Initiated logon request=20 07/26/06 14:38:12.886 : 8=3DFIX.4.2|9=3D69|35=3DA|49=3DACCEPTOR|56=3DINITIA= TOR|34=3D78|52=3D20060726-18:38:12|108=3D30|98=3D0|10=3D122|=20 07/26/06 14:38:12.886 : Received logon response=20 07/26/06 14:38:12.963 : 8=3DFIX.4.2|9=3D68|35=3D2|49=3DACCEPTOR|56=3DINITIA= TOR|34=3D79|52=3D20060726-18:38:12|7=3D84|16=3D84|10=3D068|=20 07/26/06 14:38:12.971 : 8=3DFIX.4.2|9=3D78|35=3D4|34=3D86|49=3DINITIATOR|52= =3D20060726-18:38:12.971|56=3DACCEPTOR|36=3D85|43=3DY|123=3DY|10=3D097| 07/26/06 14:38:12.971 : Received ResendRequest FROM: 84 TO: 84=20 // The following SequenceReset sent from fromAdmin on getting ResendRequest=20 07/26/06 14:38:12.972 : 8=3DFIX.4.2|9=3D100|35=3D4|34=3D84|43=3DY|49=3DINIT= IATOR|52=3D20060726-18:38:12.972|56=3DACCEPTOR|122=3D20060726-18:38:12|36= =3D85|123=3DY|10=3D196| 07/26/06 14:38:12.972 : Sent SequenceReset TO: 85=20 07/26/06 14:38:13.259 : Disconnecting=20 07/26/06 14:38:13.259 : Socket Error: Connection reset by peer.=20 Regards,=20 Anil Jain=20 _______________________________________________________________________ This E-Mail (including any attachments) may contain privileged or confident= ial information. It is intended only for the addressee(s) indicated above. The sender does not waive any of its rights, privileges or other protection= s respecting this information. =20 Any distribution, copying or other use of this E-Mail or the information it= contains, by other than an intended recipient, is not sanctioned and is pr= ohibited. If you received this E-Mail in error, please delete it and advise the sende= r (by return E-Mail or otherwise) immediately. This E-Mail (including any attachments) has been scanned for viruses.=20 It is believed to be free of any virus or other defect that might affect an= y computer system into which it is received and opened.=20 However, it is the responsibility of the recipient to ensure that it is vir= us free.=20 The sender accepts no responsibility for any loss or damage arising in any = way from its use. E-Mail received by or sent from RBC Capital Markets is subject to review by= Supervisory personnel.=20 Such communications are retained and may be produced to regulatory authorit= ies or others with legal rights to the information. _______________________________________________________________________ This E-Mail (including any attachments) may contain privileged or confident= ial information. It is intended only for the addressee(s) indicated above. The sender does not waive any of its rights, privileges or other protection= s respecting this information. =20 Any distribution, copying or other use of this E-Mail or the information it= contains, by other than an intended recipient, is not sanctioned and is pr= ohibited. If you received this E-Mail in error, please delete it and advise the sende= r (by return E-Mail or otherwise) immediately. This E-Mail (including any attachments) has been scanned for viruses.=20 It is believed to be free of any virus or other defect that might affect an= y computer system into which it is received and opened.=20 However, it is the responsibility of the recipient to ensure that it is vir= us free.=20 The sender accepts no responsibility for any loss or damage arising in any = way from its use. E-Mail received by or sent from RBC Capital Markets is subject to review by= Supervisory personnel.=20 Such communications are retained and may be produced to regulatory authorit= ies or others with legal rights to the information. |
|
From: Oren M. <or...@qu...> - 2006-07-28 22:15:13
|
Just stick this in your toApp(), throw FIX::DoNotSend(); --oren On Jul 28, 2006, at 10:26 AM, Jain, Anil wrote: > I sent this mail, but do not see as being received - resending > ---------------------------------------------------------------------- > --------------- > -----Original Message----- > Sent: Wednesday, July 26, 2006 5:06 PM > > This is for QuickFIX 1.10.2: > > Will anybody suggest what should I do, as an initiator, to send > SequenceReset-GapFill, every time we get resend request, > irrespective of whether those sequence numbers are for admin or > trade messages to be sent. > > As per FIX protocol, I have the following options: > 1. Sequence Reset - GapFill (35(MsgType)=2(Resend Request),43 > (PossDupFlag)=Y,123(GapFillFlag)=Y > 2. Sequence Reset - Reset (35(MsgType)=2(Resend Request),43 > (PossDupFlag)=Y,123(GapFillFlag)=N > 3. Sequence Reset - GapFill for Admin Messages, resend messages > with 43=Y for trade messages > > As is expected by default, QuickFIX implements the option (3), but > we wish not to transmit outdated messages. > > Sending SequenceReset - GapFill from fromAdmin did not work for > certain ECNs. > > 07/26/06 14:38:11.095 : Created session > 07/26/06 14:38:11.131 : Connecting to 141.228.53.67 on port 58123 > 07/26/06 14:38:11.207 : Connection succeeded > 07/26/06 14:38:12.203 : 8=FIX.4.2|9=73|35=A|34=85|49=INITIATOR| > 52=20060726-18:38:12.203|56=ACCEPTOR|98=0|108=30|10=054| > 07/26/06 14:38:12.204 : Initiated logon request > 07/26/06 14:38:12.886 : 8=FIX.4.2|9=69|35=A|49=ACCEPTOR| > 56=INITIATOR|34=78|52=20060726-18:38:12|108=30|98=0|10=122| > 07/26/06 14:38:12.886 : Received logon response > 07/26/06 14:38:12.963 : 8=FIX.4.2|9=68|35=2|49=ACCEPTOR| > 56=INITIATOR|34=79|52=20060726-18:38:12|7=84|16=84|10=068| > 07/26/06 14:38:12.971 : 8=FIX.4.2|9=78|35=4|34=86|49=INITIATOR| > 52=20060726-18:38:12.971|56=ACCEPTOR|36=85|43=Y|123=Y|10=097| > > 07/26/06 14:38:12.971 : Received ResendRequest FROM: 84 TO: 84 > // The following SequenceReset sent from fromAdmin on getting > ResendRequest > 07/26/06 14:38:12.972 : 8=FIX.4.2|9=100|35=4|34=84|43=Y| > 49=INITIATOR|52=20060726-18:38:12.972|56=ACCEPTOR| > 122=20060726-18:38:12|36=85|123=Y|10=196| > > 07/26/06 14:38:12.972 : Sent SequenceReset TO: 85 > 07/26/06 14:38:13.259 : Disconnecting > 07/26/06 14:38:13.259 : Socket Error: Connection reset by peer. > > Regards, > > Anil Jain > > > > ______________________________________________________________________ > _ > > This E-Mail (including any attachments) may contain privileged or > confidential information. It is intended only for the addressee(s) > indicated above. > The sender does not waive any of its rights, privileges or other > protections respecting this information. > Any distribution, copying or other use of this E-Mail or the > information it contains, by other than an intended recipient, is > not sanctioned and is prohibited. > If you received this E-Mail in error, please delete it and advise > the sender (by return E-Mail or otherwise) immediately. > > This E-Mail (including any attachments) has been scanned for viruses. > It is believed to be free of any virus or other defect that might > affect any computer system into which it is received and opened. > However, it is the responsibility of the recipient to ensure that > it is virus free. > The sender accepts no responsibility for any loss or damage arising > in any way from its use. > > E-Mail received by or sent from RBC Capital Markets is subject to > review by Supervisory personnel. > Such communications are retained and may be produced to regulatory > authorities or others with legal rights to the information. |
|
From: <li...@ho...> - 2006-07-28 22:02:31
|
Hi Joerg, The problem was that I wasn't using dictionari (fix44.xml), so I didn't have groups. Now, specifying the dictionarydata in config file, the problem is solved. Thank you, Lidia >From: Joerg Thoennes <Joe...@ma...> >To: Lidia López Cuesta <li...@ho...> >CC: qui...@li... >Subject: Re: [Quickfix-developers] MarketDataSnapshotFullRefresh >Date: Tue, 25 Jul 2006 10:10:50 +0200 > >On 07/21/06 21:49, Lidia López Cuesta wrote: >>The problem is not my message. I am using groups to ask for bids, offers >>and trades. The problem is the message received from MEFF. >> >>MEFF sends to me a message with 4 groups (3 bids and 1 offer) >> >>8=FIX.4.4?9=223?35=W?34=92?52=20060721-16:50:41?49=MEFF?50=M3?56=XXXX?57=XXX?262=0000001?55=IXN06? >> 268=4? >> 269=0?270=11475?271=17?273=16:29:57?290=1? >> 269=0?270=11450?271=8?290=2? >> 269=0?270=11430?271=8?290=3? >> 269=1?270=0?271=0?273=16:29:57?290=1? >>10=160? >> >>and my application reject MEFF's message, when I said my application I am >>saying something in quickfix.dll (maybe messagecraker), because there are >>4 groups. > >Hi Lidia, > >please post some more detailed error messages from the QF logs. > >Did you check that your data dictionary is set and contains the correct >definitions for the above repeating group. Without a data dictionary, QF >cannot parse repeating groups. > >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: Andrew M. <an...@nm...> - 2006-07-28 21:49:03
|
I'm getting this error w/1.12.0. Same config worked fine w/1.11.1.
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError:
_create
at quickfix.FileLogFactory._create(Native Method)
at quickfix.FileLogFactory.<init>(Unknown Source)
at oms.Oms.createInitiator(Oms.java:544)
...
Thanks very much..
Andrew
|
|
From: Arun J. <aru...@gm...> - 2006-07-28 20:33:40
|
Hi,
I have a problem following an ungraceful logoff, say after an
in-session network failure. When I (initiator, QF 1.1, .NET ) send a logon
request to the counterparty subsequently, the first response i get is a
resend request followed by a succesful logon message. As soon as quickfix
detects the resend request, it seems to close the socket connection (Is this
expected?). So i am unable to logon after a network outage. Is there a way
to take care of this or am i missing something? My code is essentially a
.Net version of Banzai.
Am a regular reader of this mailing list, and have learnt quite a lot
from volleys of problems and prompt lightning quick solutions.
Thanks everyone !
Rgds
Arun
|
|
From: Jain, A. <Ani...@rb...> - 2006-07-28 20:20:24
|
I sent this mail, but do not see as being received - resending ---------------------------------------------------------------------------= ---------- -----Original Message----- Sent: Wednesday, July 26, 2006 5:06 PM This is for QuickFIX 1.10.2: Will anybody suggest what should I do, as an initiator, to send SequenceRes= et-GapFill, every time we get resend request, irrespective of whether those= sequence numbers are for admin or trade messages to be sent. As per FIX protocol, I have the following options: 1=2E Sequence Reset - GapFill (35(MsgType)=3D2(Resend Request),43(PossDupFl= ag)=3DY,123(GapFillFlag)=3DY 2=2E Sequence Reset - Reset (35(MsgType)=3D2(Resend Request),43(PossDupFlag= )=3DY,123(GapFillFlag)=3DN 3=2E Sequence Reset - GapFill for Admin Messages, resend messages with 43= =3DY for trade messages As is expected by default, QuickFIX implements the option (3), but we wish = not to transmit outdated messages. Sending SequenceReset - GapFill from fromAdmin did not work for certain ECN= s=2E 07/26/06 14:38:11.095 : Created session 07/26/06 14:38:11.131 : Connecting to 141.228.53.67 on port 58123 07/26/06 14:38:11.207 : Connection succeeded 07/26/06 14:38:12.203 : 8=3DFIX.4.2|9=3D73|35=3DA|34=3D85|49=3DINITIATOR|52= =3D20060726-18:38:12.203|56=3DACCEPTOR|98=3D0|108=3D30|10=3D054| 07/26/06 14:38:12.204 : Initiated logon request 07/26/06 14:38:12.886 : 8=3DFIX.4.2|9=3D69|35=3DA|49=3DACCEPTOR|56=3DINITIA= TOR|34=3D78|52=3D20060726-18:38:12|108=3D30|98=3D0|10=3D122| 07/26/06 14:38:12.886 : Received logon response 07/26/06 14:38:12.963 : 8=3DFIX.4.2|9=3D68|35=3D2|49=3DACCEPTOR|56=3DINITIA= TOR|34=3D79|52=3D20060726-18:38:12|7=3D84|16=3D84|10=3D068| 07/26/06 14:38:12.971 : 8=3DFIX.4.2|9=3D78|35=3D4|34=3D86|49=3DINITIATOR|52= =3D20060726-18:38:12.971|56=3DACCEPTOR|36=3D85|43=3DY|123=3DY|10=3D097| 07/26/06 14:38:12.971 : Received ResendRequest FROM: 84 TO: 84 // The following SequenceReset sent from fromAdmin on getting ResendRequest 07/26/06 14:38:12.972 : 8=3DFIX.4.2|9=3D100|35=3D4|34=3D84|43=3DY|49=3DINIT= IATOR|52=3D20060726-18:38:12.972|56=3DACCEPTOR|122=3D20060726-18:38:12|36= =3D85|123=3DY|10=3D196| 07/26/06 14:38:12.972 : Sent SequenceReset TO: 85 07/26/06 14:38:13.259 : Disconnecting 07/26/06 14:38:13.259 : Socket Error: Connection reset by peer. Regards, Anil Jain _______________________________________________________________________ This E-Mail (including any attachments) may contain privileged or confident= ial information. It is intended only for the addressee(s) indicated above. The sender does not waive any of its rights, privileges or other protection= s respecting this information. =20 Any distribution, copying or other use of this E-Mail or the information it= contains, by other than an intended recipient, is not sanctioned and is pr= ohibited. If you received this E-Mail in error, please delete it and advise the sende= r (by return E-Mail or otherwise) immediately. This E-Mail (including any attachments) has been scanned for viruses.=20 It is believed to be free of any virus or other defect that might affect an= y computer system into which it is received and opened.=20 However, it is the responsibility of the recipient to ensure that it is vir= us free.=20 The sender accepts no responsibility for any loss or damage arising in any = way from its use. E-Mail received by or sent from RBC Capital Markets is subject to review by= Supervisory personnel.=20 Such communications are retained and may be produced to regulatory authorit= ies or others with legal rights to the information. |
|
From: DV <vis...@ya...> - 2006-07-28 19:44:15
|
QuickFix Gurus,
In what stable version of QuickFixJ is Market depth available? That is, the pointed question is repeating groups.
Also if it is available, what is the way one creates this request?
Method 1-
The only repeating this is MDEntryType(in my case)
public Message Marketdepth()
{
Message quickFIXMessage = new MarketDataRequest();
MarketDataRequest.NoMDEntryTypes group = new MarketDataRequest.NoMDEntryTypes();
group.set(new quickfix.field.MDEntryType('0'));
quickFIXMessage.addGroup(group);
group.set(new quickfix.field.MDEntryType('1'));
quickFIXMessage.addGroup(group);
group.set(new quickfix.field.MDEntryType('2'));
quickFIXMessage.addGroup(group);
group.set(new quickfix.field.MDEntryType('3'));
quickFIXMessage.addGroup(group);
group.set(new quickfix.field.MDEntryType('4'));
quickFIXMessage.addGroup(group);
group.set(new quickfix.field.MDEntryType('5'));
quickFIXMessage.addGroup(group);
quickFIXMessage.setField(new quickfix.field.NoRelatedSym(1));//146...only one symbol always...in my case
quickFIXMessage.setField(new quickfix.field.Symbol("MSFT"));//55
quickFIXMessage.setField(new quickfix.field.IDSource("8"));//TODo ..
quickFIXMessage.setField(new quickfix.field.SecurityID("MSFT"));//48...
quickFIXMessage.setField(new quickfix.field.SecurityExchange("NYS"));
return quickFIXMessage;
}
---------------------------------------------------------
Method 2-
private Message MarketDepth(String isin,String mdReqID)
{
Message quickFIXMessage = new MarketDataRequest();
quickFIXMessage.setField(new quickfix.field.MDReqID(mdReqID));//262...unique MDID..TODO make it unique and stor it somewhere
quickFIXMessage.setField(new quickfix.field.MarketDepth(1));//264...Level one
quickFIXMessage.setField(new quickfix.field.MDUpdateType(1));//265...incremental refresh
quickFIXMessage.setField(new quickfix.field.NoMDEntryTypes(6));//267...the number of 269s appearing
quickFIXMessage.setField(new quickfix.field.MDEntryType('0'));//269
quickFIXMessage.setField(new quickfix.field.MDEntryType('1'));
quickFIXMessage.setField(new quickfix.field.MDEntryType('2'));
quickFIXMessage.setField(new quickfix.field.MDEntryType('4'));
quickFIXMessage.setField(new quickfix.field.MDEntryType('5'));
quickFIXMessage.setField(new quickfix.field.NoRelatedSym(1));//146...only one symbol always in my case
quickFIXMessage.setField(new quickfix.field.Symbol("MSFT"));//55
quickFIXMessage.setField(new quickfix.field.IDSource("8"));//TODo ..
quickFIXMessage.setField(new quickfix.field.SecurityID("MSFT"));//48...
quickFIXMessage.setField(new quickfix.field.SecurityExchange("NYS"));
return quickFIXMessage;
}
Thanks
DV
---------------------------------
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail Beta. |
|
From: Jain, A. <Ani...@rb...> - 2006-07-28 18:16:56
|
This is for QuickFIX 1.10.2: Will anybody suggest what should I do, as an initiator, to send SequenceRes= et-GapFill, every time we get resend request, irrespective of whether those= sequence numbers are for admin or trade messages to be sent. As per FIX protocol, I have the following options: 1=2E Sequence Reset - GapFill (35(MsgType)=3D2(Resend Request),43(PossDupFl= ag)=3DY,123(GapFillFlag)=3DY 2=2E Sequence Reset - Reset (35(MsgType)=3D2(Resend Request),43(PossDupFlag= )=3DY,123(GapFillFlag)=3DN 3=2E Sequence Reset - GapFill for Admin Messages, resend messages with 43= =3DY for trade messages As is expected by default, QuickFIX implements the option (3), but we wish = not to transmit outdated messages. Sending SequenceReset - GapFill from fromAdmin did not work for certain ECN= s=2E 07/26/06 14:38:11.095 : Created session 07/26/06 14:38:11.131 : Connecting to 141.228.53.67 on port 58123 07/26/06 14:38:11.207 : Connection succeeded 07/26/06 14:38:12.203 : 8=3DFIX.4.2|9=3D73|35=3DA|34=3D85|49=3DINITIATOR|52= =3D20060726-18:38:12.203|56=3DACCEPTOR|98=3D0|108=3D30|10=3D054| 07/26/06 14:38:12.204 : Initiated logon request 07/26/06 14:38:12.886 : 8=3DFIX.4.2|9=3D69|35=3DA|49=3DACCEPTOR|56=3DINITIA= TOR|34=3D78|52=3D20060726-18:38:12|108=3D30|98=3D0|10=3D122| 07/26/06 14:38:12.886 : Received logon response 07/26/06 14:38:12.963 : 8=3DFIX.4.2|9=3D68|35=3D2|49=3DACCEPTOR|56=3DINITIA= TOR|34=3D79|52=3D20060726-18:38:12|7=3D84|16=3D84|10=3D068| 07/26/06 14:38:12.971 : 8=3DFIX.4.2|9=3D78|35=3D4|34=3D86|49=3DINITIATOR|52= =3D20060726-18:38:12.971|56=3DACCEPTOR|36=3D85|43=3DY|123=3DY|10=3D097| 07/26/06 14:38:12.971 : Received ResendRequest FROM: 84 TO: 84 // The following SequenceReset sent from fromAdmin on getting ResendRequest 07/26/06 14:38:12.972 : 8=3DFIX.4.2|9=3D100|35=3D4|34=3D84|43=3DY|49=3DINIT= IATOR|52=3D20060726-18:38:12.972|56=3DACCEPTOR|122=3D20060726-18:38:12|36= =3D85|123=3DY|10=3D196| 07/26/06 14:38:12.972 : Sent SequenceReset TO: 85 07/26/06 14:38:13.259 : Disconnecting 07/26/06 14:38:13.259 : Socket Error: Connection reset by peer. Regards, Anil Jain _______________________________________________________________________ This E-Mail (including any attachments) may contain privileged or confident= ial information. It is intended only for the addressee(s) indicated above. The sender does not waive any of its rights, privileges or other protection= s respecting this information. =20 Any distribution, copying or other use of this E-Mail or the information it= contains, by other than an intended recipient, is not sanctioned and is pr= ohibited. If you received this E-Mail in error, please delete it and advise the sende= r (by return E-Mail or otherwise) immediately. This E-Mail (including any attachments) has been scanned for viruses.=20 It is believed to be free of any virus or other defect that might affect an= y computer system into which it is received and opened.=20 However, it is the responsibility of the recipient to ensure that it is vir= us free.=20 The sender accepts no responsibility for any loss or damage arising in any = way from its use. E-Mail received by or sent from RBC Capital Markets is subject to review by= Supervisory personnel.=20 Such communications are retained and may be produced to regulatory authorit= ies or others with legal rights to the information. |
|
From: <li...@ho...> - 2006-07-28 17:44:27
|
Hi all, Anybody knows which is the class to send a order modification request message (type=G)? I am trying to modify the StopPx for an existing order with stop price. Thanks in advance, Lidia |
|
From: Brad H. <Bra...@gb...> - 2006-07-27 22:36:20
|
Hi Nick, I added a page describing how to allow custom MINA filters. =20 http://www.quickfixj.org/confluence/display/qfj/MINA+Filters Another possibility would be to just add it in AbstractIOHandler. The SSLFilter needs to be in the chain before the ProtocolCodecFilter.=20 Regards, Brad.=20 -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of Nick Fortescue Sent: Friday, 21 July 2006 11:27 PM To: Steve Bate Cc: qui...@li... Subject: [Quickfix-developers] SSL support QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html I've edited the SSL support page on the Wiki to add some notes about how I set up stunnel, and also a plan for getting MINA's SSLFilter to work with quickfixj. Edits and suggestions appreciated. Nick Fortescue ------------------------------------------------------------------------ - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3D= DEVDE V _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
|
From: Vladimir A. <Vla...@FF...> - 2006-07-27 18:54:01
|
Hello,
I have created a simple patch for a very annoying feature: whenever your
FIX application tries to read a missing field and you don't process the
exception, QuickFIX sends a BusinessReject message with reason code =3D
CONDITIONALLY_REQUIRED_FIELD_MISSING, but it will not tell anyone the
*actual* number of the missing field. You have to analyse the FIX
message manually, trying to guess which field is actually missing. This
is a waste of time and effort since QuickFIX *knows* the field number.
It just wouldn't tell. Until now.
Quick FIX currently logs this in the *.event file:
20060628-11:47:41 : Message 925 Rejected: Conditionally Required Field
Missing
20060628-11:49:12 : Message 939 Rejected: Conditionally Required Field
Missing
20060628-11:50:33 : Message 942 Rejected: Conditionally Required Field
Missing
With this patch, the log will look like this:
20060628-12:17:50 : Message 1118 Rejected: Conditionally Required Field
Missing: 453
20060628-12:24:51 : Message 1135 Rejected: Conditionally Required Field
Missing: 453
Bingo! You can start immediately looking at the problem why field 453 is
missing and/or who is not checking if it is set.
The same rejection reason description is also automatically sent in the
BusinessReject's Text field, so the counterparty may analyse the problem
easily too now.
The patch was developed in QuickFIX 1.10.2, but it should work the same
in newer releases too.
Cheers,
Vladimir Arnost
-------------------------------------------------------------
Index: src/C++/Session.h
=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
--- src/C++/Session.h (revision 12870)
+++ src/C++/Session.h (revision 12871)
@@ -197,7 +197,7 @@
void generateTestRequest( const std::string& );
void generateReject( const Message&, int err, int field =3D 0 );
void generateReject( const Message&, const std::string& );
- void generateBusinessReject( const Message&, int err );
+ void generateBusinessReject( const Message&, int err, int field =3D 0
);
void generateLogout( const std::string& text =3D "" );
=20
void populateRejectReason( Message&, int field, const std::string& );
Index: src/C++/Session.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
--- src/C++/Session.cpp (revision 12870)
+++ src/C++/Session.cpp (revision 12871)
@@ -826,7 +826,7 @@
QF_STACK_POP
}
=20
-void Session::generateBusinessReject( const Message& message, int err )
+void Session::generateBusinessReject( const Message& message, int err,
int field )
{ QF_STACK_PUSH(Session::generateBusinessReject)
=20
Message reject;
@@ -841,7 +841,7 @@
reject.setField( BusinessRejectReason( err ) );
m_state.incrNextTargetMsgSeqNum();
=20
- const char* reason =3D 0;
+ std::string reason;
switch ( err )
{
case BusinessRejectReason_OTHER:
@@ -861,6 +861,11 @@
break;
case BusinessRejectReason_CONDITIONALLY_REQUIRED_FIELD_MISSING:
reason =3D
BusinessRejectReason_CONDITIONALLY_REQUIRED_FIELD_MISSING_TEXT;
+ if (field)
+ {
+ reason +=3D ": ";
+ reason +=3D IntConvertor::convert(field);
+ }
break;
case BusinessRejectReason_NOT_AUTHORIZED:
reason =3D BusinessRejectReason_NOT_AUTHORIZED_TEXT;
@@ -1248,7 +1253,7 @@
{
if( beginString >=3D FIX::BeginString_FIX42 && message.isApp() )
{
- LOGEX( generateBusinessReject( message, 5 ) );
+ LOGEX( generateBusinessReject( message, 5, e.field ) );
}
else
{
|
|
From: Oren M. <or...@qu...> - 2006-07-25 15:42:29
|
Howard, I checked in a fix for this a couple days ago which went out with 1.12.0. Take a look and let us know if the correct error show up in this scenario. --oren On Jul 21, 2006, at 1:40 PM, Howard Engelhart wrote: > f it is passed < > 0 (error) it passes the base constructor "". I believe the intent was > to have the SocketException() base constructor invoked, calling > errorToWhat to get the error string from errno. However the actual > result is that the SocketException is passed a blank string and no > errno > specific information is captured. |
|
From: Oren M. <or...@qu...> - 2006-07-25 15:40:20
|
Thanks. This patch has been checked in. I'll wait a bit to see if
any other compiler reports come in and do a point release with them.
--oren
On Jul 25, 2006, at 9:23 AM, Mark T. Kennedy wrote:
> had to make the following brief change to
> src/C++/Message.h:
>
> 249c249
> < FieldBase Message::extractField
> ---
>> FieldBase extractField
> 252c252
> < { QF_STACK_PUSH(Message::extractField)
> ---
>> { QF_STACK_PUSH(extractField)
>
> to get it to compile under FC5 (gcc 4.1.1).
> it passed all of the runut and runat tests
> after that.
>
> /mark
|
|
From: Mark T. K. <mke...@di...> - 2006-07-25 14:30:27
|
had to make the following brief change to
src/C++/Message.h:
249c249
< FieldBase Message::extractField
---
> FieldBase extractField
252c252
< { QF_STACK_PUSH(Message::extractField)
---
> { QF_STACK_PUSH(extractField)
to get it to compile under FC5 (gcc 4.1.1).
it passed all of the runut and runat tests
after that.
/mark
Oren Miller wrote:
> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
> QuickFIX Support: http://www.quickfixengine.org/services.html
>
> ON QUICKFIX
> -----------------
> QuickFIX 1.12.0 is now available at http://www.quickfixengine.org
>
> You can get the release notes for all versions here: http://
> www.quickfixengine.org/NEWS
>
> Ok, some of the more important features:
>
> SocketAcceptor and ThreadedSocketAcceptor can listen on multiple
> ports. So now you can set up on a per session basis what port will
> be used to accept connections. Sessions can still share a port or
> segment port sharing however you like. Place the SocketAcceptPort
> wherever you want, as often as you want, we won't tell.
>
> ODBC support for messages and logs. We have replaced the MSSQL Log
> and Store with the more versatile ODBCLog and ODBCStore. Now you
> can connect to any database with a ODBC driver.
>
> Global logging! Yeah, now we can record events that do not pertain
> to a particular session. The LogFactory still has the old create
> ( SessionID ) method to get a sessions log, and also a create()
> method to retrieve the global log.
>
> Non blocking sockets. No more risk of deadlocks when using the
> SocketInitiator or SocketAcceptor. No need to resort to using
> threads if you don't want to. This is a much more solid socket
> implementation.
>
> Did I mention the Python API is now functionally complete? Repeating
> groups and all. Oh yeah, and there is an equally complete Ruby API.
> Do you prefer Python or Ruby? No matter what you choose, you have a
> fully scriptable FIX engine at your disposal.
>
> Read your data dictionary from a stream. Store it wherever you want
> in whatever crazy format you desire. Just pass QuickFIX a stream in
> our file format and we'll work it out. With the ability to store
> this and the settings file however you like, QuickFIX can be totally
> integrated into your proprietary or third party configuration
> environment.
>
> If you use CME, get this. It's all taken care of from now on. No
> more need to put in your own hacks.
>
> MessageStore::refresh() and setting RefreshOnLogon make it easy to
> integrate QuickFIX into a redundant solution.
>
> Better API support, better logging, more convenience methods, more
> configuration options. Check the release notes and you'll see what I
> mean.
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys -- and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
|
|
From: Oren M. <or...@qu...> - 2006-07-25 13:47:30
|
ON QUICKFIX ----------------- QuickFIX 1.12.0 is now available at http://www.quickfixengine.org You can get the release notes for all versions here: http:// www.quickfixengine.org/NEWS Ok, some of the more important features: SocketAcceptor and ThreadedSocketAcceptor can listen on multiple ports. So now you can set up on a per session basis what port will be used to accept connections. Sessions can still share a port or segment port sharing however you like. Place the SocketAcceptPort wherever you want, as often as you want, we won't tell. ODBC support for messages and logs. We have replaced the MSSQL Log and Store with the more versatile ODBCLog and ODBCStore. Now you can connect to any database with a ODBC driver. Global logging! Yeah, now we can record events that do not pertain to a particular session. The LogFactory still has the old create ( SessionID ) method to get a sessions log, and also a create() method to retrieve the global log. Non blocking sockets. No more risk of deadlocks when using the SocketInitiator or SocketAcceptor. No need to resort to using threads if you don't want to. This is a much more solid socket implementation. Did I mention the Python API is now functionally complete? Repeating groups and all. Oh yeah, and there is an equally complete Ruby API. Do you prefer Python or Ruby? No matter what you choose, you have a fully scriptable FIX engine at your disposal. Read your data dictionary from a stream. Store it wherever you want in whatever crazy format you desire. Just pass QuickFIX a stream in our file format and we'll work it out. With the ability to store this and the settings file however you like, QuickFIX can be totally integrated into your proprietary or third party configuration environment. If you use CME, get this. It's all taken care of from now on. No more need to put in your own hacks. MessageStore::refresh() and setting RefreshOnLogon make it easy to integrate QuickFIX into a redundant solution. Better API support, better logging, more convenience methods, more configuration options. Check the release notes and you'll see what I mean. |
|
From: Nick F. <Nic...@ve...> - 2006-07-25 09:33:44
|
You don't seem to have the MDEntryType fields set (whether you want bid or offer), tags 267 and 269.=20 Nick -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of sccz97 Sent: 25 July 2006 10:10 To: qui...@li... Subject: [Quickfix-developers] Help on MarketDataRequest QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html It might be that I just haven't got my head around structuring the messages but I just cannot seem to construct a message that doesnt get rejected for some reason. At the moment, the error message I'm getting is that there is insufficient bandwidth which doesn't make too much sense. The message I'm sending is: MarketDataRequest - 8=3DFIX.4.2=019=3D127=0135=3DV=0134=3D2=0149=3Dcapforexprotrade=0152=3D20= 060725-09:08:43.796=015 6=3DCURRENEX-FXTRADES-FIX=01146=3D1=0155=3DEUR/USD=01262=3D1=01263=3D1=01= 264=3D0=01265=3D1=01266=3DY=011 0=3D029=01 If anyone can point me in the right direction woudl be much appreciated. thanks in advance --=20 View this message in context: http://www.nabble.com/Help-on-MarketDataRequest-tf1997136.html#a5482047 Sent from the QuickFIX - Dev forum at Nabble.com. ------------------------------------------------------------------------ - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3D= DEVDE V _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
|
From: sccz97 <sc...@gm...> - 2006-07-25 09:10:19
|
It might be that I just haven't got my head around structuring the messages but I just cannot seem to construct a message that doesnt get rejected for some reason. At the moment, the error message I'm getting is that there is insufficient bandwidth which doesn't make too much sense. The message I'm sending is: MarketDataRequest - 8=3DFIX.4.2=019=3D127=0135=3DV=0134=3D2=0149=3Dcapforexprotrade=0152=3D2006= 0725-09:08:43.796=0156=3DCURRENEX-FXTRADES-FIX=01146=3D1=0155=3DEUR/USD=012= 62=3D1=01263=3D1=01264=3D0=01265=3D1=01266=3DY=0110=3D029=01 If anyone can point me in the right direction woudl be much appreciated. thanks in advance --=20 View this message in context: http://www.nabble.com/Help-on-MarketDataReque= st-tf1997136.html#a5482047 Sent from the QuickFIX - Dev forum at Nabble.com. |
|
From: Joerg T. <Joe...@ma...> - 2006-07-25 08:11:31
|
On 07/21/06 21:49, Lidia L=F3pez Cuesta wrote:
> The problem is not my message. I am using groups to ask for bids, offer=
s and=20
> trades. The problem is the message received from MEFF.
>=20
> MEFF sends to me a message with 4 groups (3 bids and 1 offer)
>=20
> 8=3DFIX.4.4?9=3D223?35=3DW?34=3D92?52=3D20060721-16:50:41?49=3DMEFF?50=3D=
M3?56=3DXXXX?57=3DXXX?262=3D0000001?55=3DIXN06?
> 268=3D4?
> 269=3D0?270=3D11475?271=3D17?273=3D16:29:57?290=3D1?
> 269=3D0?270=3D11450?271=3D8?290=3D2?
> 269=3D0?270=3D11430?271=3D8?290=3D3?
> 269=3D1?270=3D0?271=3D0?273=3D16:29:57?290=3D1?
> 10=3D160?
>=20
> and my application reject MEFF's message, when I said my application I =
am=20
> saying something in quickfix.dll (maybe messagecraker), because there a=
re 4=20
> groups.
Hi Lidia,
please post some more detailed error messages from the QF logs.
Did you check that your data dictionary is set and contains the correct d=
efinitions for the above=20
repeating group. Without a data dictionary, QF cannot parse repeating gro=
ups.
Cheers, J=F6rg
--=20
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: Alex <al...@ec...> - 2006-07-24 21:10:09
|
Is there a way to implement directly or indirectly proxy authentication support in QuickFix? What you do when there's the need to pass through a proxy or a firewall who require authentication? Very thanks, Alex |
|
From: Lin L. <le...@gm...> - 2006-07-22 02:45:05
|
Hi,Swapnesh You can send message in code like this: Session.sendToTarget(myMessage, sessionID); You can learn more if you read the codes of QFJ example "banzai". Regards Lejiang On 17 Jul 2006 12:24:32 -0000, swapnesh karpe <sw...@re...> wrote: > > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > > > Hi, > > I am new to this group and also for Quickfix/j. > I know something about logon and logout but I want to know how to place > the order to quickfix?????? > I have already created the "newOrder". Where to write the code for sending > the order, can i place that code in onLogon method? > Please help me. > > Thanks in advance. > > Swapnesh > > > > <http://adworks.rediff.com/cgi-bin/AdWorks/sigclick.cgi/www.rediff.com/signature-home.htm/1507191490@Middle5?PARTNER=3> > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > -- Lin Lejiang |
|
From: Howard E. <how...@pi...> - 2006-07-21 20:27:05
|
If the recv call in SocketConnection::readFromSocket receives <=3D 0
bytes on a recv call it throws a SocketRecvFailed exception, passing the
return value to the constructor. The likely return values will be 0
(EOF on Socket) or (-1) Error (evaluate errno for specific error
condition).
void SocketConnection::readFromSocket()
throw( SocketRecvFailed )
{
int size =3D recv( m_socket, m_buffer, 4095, 0 );
if( size <=3D 0 )
throw SocketRecvFailed( size );
m_buffer[ size ] =3D '\0';
m_parser.addToStream( m_buffer, size );
}
The SocketRecvFailed struct derives from SocketException. If its
constructor receives no value it will format a message based on errno.
Otherwise it captures the string message passed in the overloaded
constructor.
/// Socket Error
struct SocketException : public Exception
{
SocketException()
: Exception( "Socket Error", errorToWhat() ) {}
SocketException( const std::string& what )
: Exception( "Socket Error", what ) {}
std::string errorToWhat()
{
#ifdef _MSC_VER
error =3D WSAGetLastError();
char buffer[2048];
FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM, NULL, error,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
buffer, 2048, NULL );
return buffer;
#else
error =3D errno;
return strerror( error );
#endif
}
int error;
};
So the SocketRecvFailed constructor is passed the recv return value (0
or -1). As we see below, if it is passed 0 it calls the base
implementation with "Connection reset by peer." message. I would argue
that this is not the best choice of messages as it technically pertains
to ECONNRESET. "EOF on socket" may be more accurate. If it is passed <
0 (error) it passes the base constructor "". I believe the intent was
to have the SocketException() base constructor invoked, calling
errorToWhat to get the error string from errno. However the actual
result is that the SocketException is passed a blank string and no errno
specific information is captured.
/// Socket recv operation failed
struct SocketRecvFailed : public SocketException
{
SocketRecvFailed( int size )
: SocketException( size =3D=3D 0 ? "Connection reset by peer." : =
size <
0 ? "" : "Success." ) {}
SocketRecvFailed( const std::string& what )
: SocketException( what ) {}
};
|
|
From: <li...@ho...> - 2006-07-21 19:49:49
|
Hi Scott,
The problem is not my message. I am using groups to ask for bids, offers and
trades. The problem is the message received from MEFF.
MEFF sends to me a message with 4 groups (3 bids and 1 offer)
8=FIX.4.4?9=223?35=W?34=92?52=20060721-16:50:41?49=MEFF?50=M3?56=XXXX?57=XXX?262=0000001?55=IXN06?
268=4?
269=0?270=11475?271=17?273=16:29:57?290=1?
269=0?270=11450?271=8?290=2?
269=0?270=11430?271=8?290=3?
269=1?270=0?271=0?273=16:29:57?290=1?
10=160?
and my application reject MEFF's message, when I said my application I am
saying something in quickfix.dll (maybe messagecraker), because there are 4
groups.
Lidia
Date: Fri, 21 Jul 2006 13:03:24 -0400
From: "Scott Riopelle" <sri...@fo...>
Subject: Re: [Quickfix-developers] MarketDataSnapshotFullRefresh
duplicatedfield 269
To: <qui...@li...>
Message-ID:
<097...@NY...>
Content-Type: text/plain; charset="iso-8859-1"
Your message contains the multiple fields of 269 one right after the other.
This means you added the fields directly to the message. You should be
constructing a group for each occurrence and then adding that group to your
message. This will put the fields in the correct order.
-----Original Message-----
From: qui...@li...
[mailto:qui...@li...] On Behalf Of
Lidia
L?pez Cuesta
Sent: Friday, July 21, 2006 12:56 PM
To: qui...@li...
Subject: [Quickfix-developers] MarketDataSnapshotFullRefresh duplicatedfield
269
QuickFIX Documentation:
http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html
Hi all,
I am having problems with the MarketDataSnapshotFullRefresh when I am asking
for Bids, Offers and Trades. I generate following message asking for this 3
kinds of entries:
8=FIX.4.4?9=167?35=V?34=51?49=XXXX?50=XXX?52=20060721-16:47:00.453?56=MEFF?57=M3?146=1?55=[N/A]?48=21?22=8?461=FXXXSX?200=200607?262=0000001?263=1?264=3?265=0?267=3?269=2?269=0?269=1?10=053?
The message getting information about bids and offers is rejected
automatically by the sockerInitiator/messagecracker (I don't know exactly)
because field 269 appears more than once, but this is correct because ield
268=4.
8=FIX.4.4?9=223?35=W?34=92?52=20060721-16:50:41?49=MEFF?50=M3?56=XXXX?57=XXX?262=0000001?55=IXN06?268=4?269=0?270=11475?271=17?273=16:29:57?290=1?269=0?270=11450?271=8?290=2?269=0?270=11430?271=8?290=3?269=1?270=0?271=0?273=16:29:57?290=1?10=160?
8=FIX.4.4?9=122?35=3?34=52?49=XXXX?50=XXX?52=20060721-16:47:00.625?56=MEFF?57=M3?45=92?58=Tag
appears more than once?371=269?372=W?373=13?10=210?
Does anyone knows where is the problem?
Lidia
|