You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(13) |
Jun
(21) |
Jul
(14) |
Aug
(29) |
Sep
(39) |
Oct
(47) |
Nov
(70) |
Dec
(27) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(43) |
Feb
(50) |
Mar
(90) |
Apr
(96) |
May
(84) |
Jun
(40) |
Jul
(58) |
Aug
(55) |
Sep
(55) |
Oct
(52) |
Nov
(38) |
Dec
(75) |
| 2008 |
Jan
(49) |
Feb
(72) |
Mar
(49) |
Apr
(55) |
May
(21) |
Jun
(31) |
Jul
(47) |
Aug
(59) |
Sep
(59) |
Oct
(77) |
Nov
(51) |
Dec
(54) |
| 2009 |
Jan
(52) |
Feb
(57) |
Mar
(17) |
Apr
(27) |
May
(44) |
Jun
(46) |
Jul
(69) |
Aug
(38) |
Sep
(39) |
Oct
(45) |
Nov
(38) |
Dec
(37) |
| 2010 |
Jan
(49) |
Feb
(35) |
Mar
(21) |
Apr
(33) |
May
(52) |
Jun
(28) |
Jul
(39) |
Aug
(34) |
Sep
(21) |
Oct
(82) |
Nov
(36) |
Dec
(20) |
| 2011 |
Jan
(28) |
Feb
(64) |
Mar
(93) |
Apr
(75) |
May
(151) |
Jun
(77) |
Jul
(35) |
Aug
(53) |
Sep
(56) |
Oct
(36) |
Nov
(94) |
Dec
(59) |
| 2012 |
Jan
(105) |
Feb
(43) |
Mar
(68) |
Apr
(91) |
May
(45) |
Jun
(18) |
Jul
(103) |
Aug
(77) |
Sep
(45) |
Oct
(59) |
Nov
(58) |
Dec
(43) |
| 2013 |
Jan
(48) |
Feb
(65) |
Mar
(63) |
Apr
(22) |
May
(41) |
Jun
(60) |
Jul
(43) |
Aug
(17) |
Sep
(20) |
Oct
(20) |
Nov
(42) |
Dec
(43) |
| 2014 |
Jan
(54) |
Feb
(34) |
Mar
(34) |
Apr
(20) |
May
(31) |
Jun
(39) |
Jul
(66) |
Aug
(22) |
Sep
(52) |
Oct
(22) |
Nov
(67) |
Dec
(70) |
| 2015 |
Jan
(18) |
Feb
(5) |
Mar
(40) |
Apr
(32) |
May
(62) |
Jun
(28) |
Jul
(86) |
Aug
(44) |
Sep
(61) |
Oct
(65) |
Nov
(8) |
Dec
(19) |
| 2016 |
Jan
(50) |
Feb
(22) |
Mar
(38) |
Apr
(55) |
May
(30) |
Jun
(42) |
Jul
(11) |
Aug
(9) |
Sep
(4) |
Oct
(51) |
Nov
(38) |
Dec
(31) |
| 2017 |
Jan
(40) |
Feb
(40) |
Mar
(23) |
Apr
(35) |
May
(121) |
Jun
(55) |
Jul
(37) |
Aug
(16) |
Sep
(27) |
Oct
(109) |
Nov
(67) |
Dec
(23) |
| 2018 |
Jan
(52) |
Feb
(6) |
Mar
(23) |
Apr
(28) |
May
(32) |
Jun
(20) |
Jul
(20) |
Aug
(22) |
Sep
(8) |
Oct
(33) |
Nov
(32) |
Dec
(13) |
| 2019 |
Jan
(16) |
Feb
(29) |
Mar
(17) |
Apr
(16) |
May
(1) |
Jun
(2) |
Jul
(25) |
Aug
(50) |
Sep
(17) |
Oct
(29) |
Nov
(16) |
Dec
(7) |
| 2020 |
Jan
|
Feb
|
Mar
(29) |
Apr
(64) |
May
(25) |
Jun
(49) |
Jul
(15) |
Aug
(10) |
Sep
(37) |
Oct
(20) |
Nov
(19) |
Dec
(9) |
| 2021 |
Jan
(33) |
Feb
(10) |
Mar
(67) |
Apr
(40) |
May
(70) |
Jun
(33) |
Jul
(14) |
Aug
(10) |
Sep
|
Oct
(7) |
Nov
(6) |
Dec
(16) |
| 2022 |
Jan
(27) |
Feb
(2) |
Mar
(5) |
Apr
(3) |
May
|
Jun
(2) |
Jul
|
Aug
(1) |
Sep
(6) |
Oct
(2) |
Nov
|
Dec
(10) |
| 2023 |
Jan
(1) |
Feb
(2) |
Mar
(21) |
Apr
(3) |
May
(15) |
Jun
(3) |
Jul
(4) |
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
(1) |
| 2024 |
Jan
(7) |
Feb
(2) |
Mar
(8) |
Apr
(11) |
May
(6) |
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
| 2025 |
Jan
(10) |
Feb
(4) |
Mar
(9) |
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Brad H. <Bra...@gb...> - 2007-07-02 22:46:39
|
Doesn't the core have a runtime dependency on the generated messages classes and fields anyway? Eg, if you receive a fix 4.4 message you'll need the corresponding fix 4.4 generated message class on the classpath, which in turn will depend on any fields it uses. Or does it know to use generic Message if the classes aren't found? I'm actually relying on this behaviour at the moment. The MessageCracker seemed a bit redundant (giant elseif + casts IIRC) so instead of using that my fromApp does instanceof checks and casts on the message types I expect to receive. Regards, Brad.=20 -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of Steve Bate Sent: Tuesday, 3 July 2007 5:05 AM To: qui...@li... Subject: Re: [Quickfixj-users] RES: separating custom messages QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > >> The next version of QFJ will have separate quickfxj-core and=20 >> quicfkixj-msg-fix4x jar files. > > This is really good news. > Where will be the field classes? > > I wanted to use quickfixj in an applet, but a 4Mb jar is way too much! > I was trying to build a jar with just the core, but without much success. The field classes were stored in the core library since they are shared by the message JAR files and by code in the core library itself (Session, for example). QFJ 1.2.0 will be released within the next few days, but there are other packaging options we could discuss for future releases that would reduce the size of the core library even further. The core could be completely decoupled from the generated code. The core classes actually only use a small number of tag constants from the generated fields. If we eliminated the dependencies on these constants, wee could then remove the generated fields from the core library and either create a separate library for them or include them redundantly in the message JAR files (to make the message JARs standalone). This should make the core library very small. In response to the earlier question about Java packages... The QFJ 1.2.0 code generation supports generation of classes into any Java package and supports generated FIX version-specific packages of fields (instead of the single quickfix.fields package currently generated by default). However, for backwards compatibility the default code generation strategy hasn't changed. There will be more details with the 1.2.0 release. Regards, Steve ------------------------------------------------------------------------ - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Quickfixj-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfixj-users |
|
From: Danilo T. <tu...@po...> - 2007-07-02 19:26:55
|
> It looks like a core JAR without the fields would be about > 250K. You could reduce this further by eliminating classes > like store and log implementations you don't need for your > applet. I'm guessing you could reduce the library size to > about 150K without a lot of difficulty. That's what I'm trying to do, but right now I have some other things in my to-do list. > If you don't mind me asking, is this an applet for an open source > product? No, it's closed, sorry. Regards, Danilo |
|
From: Steve B. <st...@te...> - 2007-07-02 19:19:13
|
> The xml of each version is in the separate jar, right? Yes. >> quickfixj-core.jar will include quickfix.field.* classes (and >> all the other non-generated classes). > > What I really wanted to achieve was an even smaller package, with just a > enumeration of the fields, instead of a class per field. But maybe this is > going away from the quickfixj concept, doing things in a different way. It's possible but it will require more work. If you'd like you can enter an RFE for this and we can try to work it in as time permits. It looks like a core JAR without the fields would be about 250K. You could reduce this further by eliminating classes like store and log implementations you don't need for your applet. I'm guessing you could reduce the library size to about 150K without a lot of difficulty. If you don't mind me asking, is this an applet for an open source product? Regards, Steve |
|
From: Danilo T. <tu...@po...> - 2007-07-02 19:11:14
|
> If we eliminated the dependencies on these constants, wee > could then remove the generated fields from the core > library and either create a separate library for them. I'm interested in that packaging option! -- Danilo |
|
From: Steve B. <st...@te...> - 2007-07-02 19:04:59
|
> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > >> The next version of QFJ will have separate quickfxj-core and >> quicfkixj-msg-fix4x jar files. > > This is really good news. > Where will be the field classes? > > I wanted to use quickfixj in an applet, but a 4Mb jar is way too much! > I was trying to build a jar with just the core, but without much success. The field classes were stored in the core library since they are shared by the message JAR files and by code in the core library itself (Session, for example). QFJ 1.2.0 will be released within the next few days, but there are other packaging options we could discuss for future releases that would reduce the size of the core library even further. The core could be completely decoupled from the generated code. The core classes actually only use a small number of tag constants from the generated fields. If we eliminated the dependencies on these constants, wee could then remove the generated fields from the core library and either create a separate library for them or include them redundantly in the message JAR files (to make the message JARs standalone). This should make the core library very small. In response to the earlier question about Java packages... The QFJ 1.2.0 code generation supports generation of classes into any Java package and supports generated FIX version-specific packages of fields (instead of the single quickfix.fields package currently generated by default). However, for backwards compatibility the default code generation strategy hasn't changed. There will be more details with the 1.2.0 release. Regards, Steve |
|
From: Danilo T. <tu...@po...> - 2007-07-02 18:53:29
|
> Here are the sizes (based on the current HEAD of SVN build): > quickfixj-core.jar 750K > quickfixj-msg-fix40.jar 85K > quickfixj-msg-fix41.jar 116K > quickfixj-msg-fix42.jar 268K > quickfixj-msg-fix43.jar 757K > quickfixj-msg-fix44.jar 2M The xml of each version is in the separate jar, right? > quickfixj-core.jar will include quickfix.field.* classes (and > all the other non-generated classes). What I really wanted to achieve was an even smaller package, with just a enumeration of the fields, instead of a class per field. But maybe this is going away from the quickfixj concept, doing things in a different way. -- Danilo |
|
From: Toli K. <to...@ma...> - 2007-07-02 18:47:32
|
Danilo, quickfixj-core.jar will include quickfix.field.* classes (and all the other non-generated classes). quickfixj-msg-4x.jar will have the generated messages, with each jar having the quickfix.fix4x package corresponding to each version. Here are the sizes (based on the current HEAD of SVN build): quickfixj-core.jar 750K quickfixj-msg-fix40.jar 85K quickfixj-msg-fix41.jar 116K quickfixj-msg-fix42.jar 268K quickfixj-msg-fix43.jar 757K quickfixj-msg-fix44.jar 2M > This is really good news. > Where will be the field classes? > > I wanted to use quickfixj in an applet, but a 4Mb jar is way too much! > I was trying to build a jar with just the core, but without much success. -- Toli Kuznets http://www.marketcetera.com: Open-Source Trading Platform download.run.trade. |
|
From: Danilo T. <tu...@po...> - 2007-07-02 18:33:52
|
> The next version of QFJ will have separate quickfxj-core and > quicfkixj-msg-fix4x jar files. This is really good news. Where will be the field classes? I wanted to use quickfixj in an applet, but a 4Mb jar is way too much! I was trying to build a jar with just the core, but without much success. -- Danilo |
|
From: Toli K. <to...@ma...> - 2007-07-02 18:15:49
|
Lev, Alexander is right - that's exactly what we do in our platform, here's a link to our Spring config file if you need an example: http://trac.marketcetera.org/trac.fcgi/browser/platform/trunk/oms/src/main/resources/quickfixj.xml#L50 and we keep our custom fields in http://trac.marketcetera.org/trac.fcgi/browser/platform/trunk/core/src/main/java/org/marketcetera/quickfix/customfields The next version of QFJ will have separate quickfxj-core and quicfkixj-msg-fix4x jar files, so it'll be a little cleaner and easier to do what you are trying to accomplish. On 7/2/07, Alexander Gorbachev <ago...@ac...> wrote: > QuickFIX/J Documentation: > http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Hi, > > I'm not sure that I understood the question, but you can set the > DataDictionary=my_fix44.xml in the quickfix.cfg, put the my_fix44.xml into a > place accessible by the classpath, and pack the related classes together > with you application. > > > ----- Original Message ----- > > From: Lev Grevnin > To: qui...@li... > Cc: Andrey Tapekha > Sent: Monday, July 02, 2007 7:05 PM > Subject: [Quickfixj-users] separating custom messages > > QuickFIX/J Documentation: > http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > ________________________________ > > > Hello all. > > Here is the situation. Suppose I add some more custom messages, components, > fields to one of the resource .xml files, say FIX44.xml. What I want to do > now, is separate into another package hierarchy the stuff that's been > changed/added by the compilation process, so that I can use the original > quickfix.jar as is and make the added/changed classes part of my > application. > > Has anyone had any experience similar to this? > > > > Lev Grevnin > Rates IT > work: 7 495 644 3191, mobile: 7 917 504 3004 > -- Toli Kuznets http://www.marketcetera.com: Open-Source Trading Platform download.run.trade. |
|
From: Alexander G. <ago...@ac...> - 2007-07-02 17:56:28
|
Hi, I'm not sure that I understood the question, but you can set the = DataDictionary=3Dmy_fix44.xml in the quickfix.cfg, put the my_fix44.xml = into a place accessible by the classpath, and pack the related classes = together with you application.=20 ----- Original Message -----=20 From: Lev Grevnin=20 To: qui...@li...=20 Cc: Andrey Tapekha=20 Sent: Monday, July 02, 2007 7:05 PM Subject: [Quickfixj-users] separating custom messages QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ -------------------------------------------------------------------------= ----- Hello all.=20 Here is the situation. Suppose I add some more custom messages, = components, fields to one of the resource .xml files, say FIX44.xml. = What I want to do now, is separate into another package hierarchy the = stuff that's been changed/added by the compilation process, so that I = can use the original quickfix.jar as is and make the added/changed = classes part of my application. Has anyone had any experience similar to this? =20 Lev Grevnin Rates IT work: 7 495 644 3191, mobile: 7 917 504 3004 =20 --- This e-mail may contain confidential and/or privileged information. If = you are not the intended recipient (or have received this e-mail in = error) please notify the sender immediately and delete this e-mail. Any = unauthorized copying, disclosure or distribution of the material in this = e-mail is strictly forbidden. Please refer to http://www.db.com/en/content/eu_disclosures.htm for = additional EU corporate and regulatory disclosures. -------------------------------------------------------------------------= ----- = -------------------------------------------------------------------------= This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ -------------------------------------------------------------------------= ----- _______________________________________________ Quickfixj-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfixj-users |
|
From: Lev G. <lev...@db...> - 2007-07-02 17:05:46
|
Hello all. Here is the situation. Suppose I add some more custom messages, components, fields to one of the resource .xml files, say FIX44.xml. What I want to do now, is separate into another package hierarchy the stuff that's been changed/added by the compilation process, so that I can use the original quickfix.jar as is and make the added/changed classes part of my application. Has anyone had any experience similar to this? Lev Grevnin Rates IT work: 7 495 644 3191, mobile: 7 917 504 3004 --- This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden. Please refer to http://www.db.com/en/content/eu_disclosures.htm for additional EU corporate and regulatory disclosures. |
|
From: Alex M. <ale...@eu...> - 2007-06-29 10:56:41
|
I'm trying to specify an alternate socket connect host and port to connect to if the primary host is not available on start up, and have tried setting the configuration parameters as follows (the first pair of SocketConnect parameters values are invalid and the second pair are valid): =20 SocketConnectPort=3D1234 SocketConnectHost=3D1.1.1.1 SocketConnectPort1=3D8089 SocketConnectHost1=3Dlocalhost =20 However the initiator still fails to connect. Is there anything else I need to do? =20 Cheers, Alex Eurobase International Limited and its subsidiaries (Eurobase) are = unable to exercise control over the content of information in E-Mails. = Any views and opinions expressed may be personal to the sender and are = not necessarily those of Eurobase. Eurobase will not enter into any = contractual obligations in respect of any part of its business in any = E-mail.=20 Privileged / confidential information may be contained in this message = and /or any attachments. This E-mail is intended for the use of the = addressee(s) only and may contain confidential information. If you are = not the / an intended recipient, you are hereby notified that any use or = dissemination of this communication is strictly prohibited. If you = receive this transmission in error, please notify us immediately, and = then delete this E-mail.=20 Neither the sender nor Eurobase accepts any liability whatsoever for any = defects of any kind either in or arising from this E-mail transmission. = E-Mail transmission cannot be guaranteed to be secure or error-free, as = messages can be intercepted, lost, corrupted, destroyed, contain = viruses, or arrive late or incomplete. Eurobase does not accept any = responsibility for viruses and it is your responsibility to scan any = attachments. Eurobase Systems Limited is the main trading company in the Eurobase = International Group; registered in England and Wales as company number = 02251162; registered address: Essex House, 2 County Place, Chelmsford, = Essex CM2 0RE, UK. |
|
From: Toli K. <to...@ma...> - 2007-06-28 19:32:51
|
That's very strange.
I shoved this unit test into the MessageTest class in the source code,
and stepped through with a debugger.
Seems to work for me. Maybe there's something wrong with your incoming message?
/**
* 448=SSNY 447=D 452=1 448=SMARCASSOLI:4784543 447=D 452=11
448=TEST, TEST & CO. 447=D 452=13 10=192
*/
public void testStacyAnn() throws Exception {
Message msg = new Message();
quickfix.fix44.ExecutionReport.NoPartyIDs group =
new quickfix.fix44.ExecutionReport.NoPartyIDs();
group.setString(448, "SSNY");
group.setString(447, "D");
group.setString(452, "1");
msg.addGroup(group);
group.setString(448, "SMARCASSOLI:4784543");
group.setString(447, "D");
group.setString(452, "11");
msg.addGroup(group);
group.setString(448, "TEST, TEST & CO.");
group.setString(447, "D");
group.setString(452, "13");
msg.addGroup(group);
// try to read out
quickfix.field.NoPartyIDs noPartyIDs = new quickfix.field.NoPartyIDs();
msg.getField(noPartyIDs);
int i=1;
boolean traderFound = false;
PartyID partyId = new PartyID();
PartyRole partyRole = new PartyRole();
while (i <= noPartyIDs.getValue() && !traderFound) {
msg.getGroup(i, group);
group.get(partyId);
group.get(partyRole);
if (partyRole.getValue() == 1) {
traderFound = true;
}
}
assertTrue(traderFound);
}
On 6/28/07, stacyann_1 <sta...@gs...> wrote:
> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
> QuickFIX/J Support: http://www.quickfixj.org/support/
>
> Thanks Toli -
> I'm now getting an exception, so maybe I still don't completely grasp this.
> Here is a snippet:
>
> NoPartyIDs noPartyIDs = new NoPartyIDs();
> quickFixMessage_.getField(noPartyIDs);
>
> quickfix.fix44.ExecutionReport.NoPartyIDs group =
> new quickfix.fix44.ExecutionReport.NoPartyIDs();
>
> int i=1;
> boolean traderFound = false;
> PartyID partyId = new PartyID();
> PartyRole partyRole = new PartyRole();
> while (i <= noPartyIDs.getValue() && !traderFound) {
> quickFixMessage_.getGroup(i, group);
> group.get(partyId);
> group.get(partyRole);
>
> if (partyRole.getValue() == 1) {
> traderFound = true;
> }
> }
>
>
> The exception is
> quickfix.FieldNotFound: 453, index=1
> at quickfix.FieldMap.getGroup(FieldMap.java:621)
>
> at the getGroup line.. I must still not be doing something right.
>
> Thanks,Stacy
>
> toli wrote:
> >
> > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
> > QuickFIX/J Support: http://www.quickfixj.org/support/
> > Stacy,
> >
> > I think you are seeing problems because you are using a general
> > quickfix.Message instead of a specific fix-versioned message such as
> > quickfix.fix44.ExecutionReport
> >
> > The reason you are not seeing message.get() functions is that they
> > don't exist in a general quickfix.Message but do exist (with only
> > specific parameter types) in a more concrete
> > quickfix.fix4x.<MessageType> classes.
> >
> >> How come noMDEntries is defined as NoMDEntries but group is defined as
> >> quickfix.fix42.MarketDataSnapshotFullRefresh.NoMDEntries? Does it need to
> >> be
> >> this way?
> > The first is NoMDEntries field that tells you the # of groups. the 2nd
> > one is a concrete fix-versioned type for the group itself.
> > So to answer your question - yes, you need to be more specific with
> > your types if you want to just use get() methods.
> >
> > We solved that problem by creating a general -purpose fix-extractor
> > methods (that work both on groups and regular messages) and just rely
> > on the incoming type to get the right value out.
> > Marketcetera Trading Platform is open-sourced and GPL'd, so depending
> > on what you are doing with your code you may just be able to use the
> > marketcetera-core jar file to reuse our code "for free":
> > http://trac.marketcetera.org/trac.fcgi/browser/platform/trunk/core/src/main/java/org/marketcetera/quickfix/FIXValueExtractor.java
> >
> >> I was hoping I could somehow avoid iteration to see which PartId I care
> >> about, but it doesn't seem like that is possible.
> >
> > I'm afraid not - you have to loop through them, i don't think there's
> > a defined pattern to how the groups are arranged.
> >
> > --
> > Toli Kuznets
> > http://www.marketcetera.com: Open-Source Trading Platform
> > download.run.trade.
> >>
> >
> > -------------------------------------------------------------------------
> > This SF.net email is sponsored by DB2 Express
> > Download DB2 Express C - the FREE version of DB2 express and take
> > control of your XML. No limits. Just data. Click to get it now.
> > http://sourceforge.net/powerbar/db2/
> > _______________________________________________
> > Quickfixj-users mailing list
> > Qui...@li...
> > https://lists.sourceforge.net/lists/listinfo/quickfixj-users
> >
> >
>
> --
> View this message in context: http://www.nabble.com/Multiple-PartyId%27s-tf3990055.html#a11344136
> Sent from the QuickFIX/J mailing list archive at Nabble.com.
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Quickfixj-users mailing list
> Qui...@li...
> https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>
--
Toli Kuznets
http://www.marketcetera.com: Open-Source Trading Platform
download.run.trade.
|
|
From: stacyann_1 <sta...@gs...> - 2007-06-28 14:37:47
|
Thanks Toli -
I'm now getting an exception, so maybe I still don't completely grasp this.
Here is a snippet:
NoPartyIDs noPartyIDs = new NoPartyIDs();
quickFixMessage_.getField(noPartyIDs);
quickfix.fix44.ExecutionReport.NoPartyIDs group =
new quickfix.fix44.ExecutionReport.NoPartyIDs();
int i=1;
boolean traderFound = false;
PartyID partyId = new PartyID();
PartyRole partyRole = new PartyRole();
while (i <= noPartyIDs.getValue() && !traderFound) {
quickFixMessage_.getGroup(i, group);
group.get(partyId);
group.get(partyRole);
if (partyRole.getValue() == 1) {
traderFound = true;
}
}
The exception is
quickfix.FieldNotFound: 453, index=1
at quickfix.FieldMap.getGroup(FieldMap.java:621)
at the getGroup line.. I must still not be doing something right.
Thanks,Stacy
toli wrote:
>
> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
> QuickFIX/J Support: http://www.quickfixj.org/support/
> Stacy,
>
> I think you are seeing problems because you are using a general
> quickfix.Message instead of a specific fix-versioned message such as
> quickfix.fix44.ExecutionReport
>
> The reason you are not seeing message.get() functions is that they
> don't exist in a general quickfix.Message but do exist (with only
> specific parameter types) in a more concrete
> quickfix.fix4x.<MessageType> classes.
>
>> How come noMDEntries is defined as NoMDEntries but group is defined as
>> quickfix.fix42.MarketDataSnapshotFullRefresh.NoMDEntries? Does it need to
>> be
>> this way?
> The first is NoMDEntries field that tells you the # of groups. the 2nd
> one is a concrete fix-versioned type for the group itself.
> So to answer your question - yes, you need to be more specific with
> your types if you want to just use get() methods.
>
> We solved that problem by creating a general -purpose fix-extractor
> methods (that work both on groups and regular messages) and just rely
> on the incoming type to get the right value out.
> Marketcetera Trading Platform is open-sourced and GPL'd, so depending
> on what you are doing with your code you may just be able to use the
> marketcetera-core jar file to reuse our code "for free":
> http://trac.marketcetera.org/trac.fcgi/browser/platform/trunk/core/src/main/java/org/marketcetera/quickfix/FIXValueExtractor.java
>
>> I was hoping I could somehow avoid iteration to see which PartId I care
>> about, but it doesn't seem like that is possible.
>
> I'm afraid not - you have to loop through them, i don't think there's
> a defined pattern to how the groups are arranged.
>
> --
> Toli Kuznets
> http://www.marketcetera.com: Open-Source Trading Platform
> download.run.trade.
>>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Quickfixj-users mailing list
> Qui...@li...
> https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>
>
--
View this message in context: http://www.nabble.com/Multiple-PartyId%27s-tf3990055.html#a11344136
Sent from the QuickFIX/J mailing list archive at Nabble.com.
|
|
From: Toli K. <to...@ma...> - 2007-06-27 21:06:45
|
Stacy, I think you are seeing problems because you are using a general quickfix.Message instead of a specific fix-versioned message such as quickfix.fix44.ExecutionReport The reason you are not seeing message.get() functions is that they don't exist in a general quickfix.Message but do exist (with only specific parameter types) in a more concrete quickfix.fix4x.<MessageType> classes. > How come noMDEntries is defined as NoMDEntries but group is defined as > quickfix.fix42.MarketDataSnapshotFullRefresh.NoMDEntries? Does it need to be > this way? The first is NoMDEntries field that tells you the # of groups. the 2nd one is a concrete fix-versioned type for the group itself. So to answer your question - yes, you need to be more specific with your types if you want to just use get() methods. We solved that problem by creating a general -purpose fix-extractor methods (that work both on groups and regular messages) and just rely on the incoming type to get the right value out. Marketcetera Trading Platform is open-sourced and GPL'd, so depending on what you are doing with your code you may just be able to use the marketcetera-core jar file to reuse our code "for free": http://trac.marketcetera.org/trac.fcgi/browser/platform/trunk/core/src/main/java/org/marketcetera/quickfix/FIXValueExtractor.java > I was hoping I could somehow avoid iteration to see which PartId I care > about, but it doesn't seem like that is possible. I'm afraid not - you have to loop through them, i don't think there's a defined pattern to how the groups are arranged. -- Toli Kuznets http://www.marketcetera.com: Open-Source Trading Platform download.run.trade. > |
|
From: stacyann_1 <sta...@gs...> - 2007-06-27 20:23:09
|
Thanks Toli. I had a couple of questions about that.. maybe you would know? The sample code goes like this NoMDEntries noMDEntries = new NoMDEntries(); message.get(noMDEntries); quickfix.fix42.MarketDataSnapshotFullRefresh.NoMDEntries group = new quickfix.fix42.MarketDataSnapshotFullRefresh.NoMDEntries(); How come noMDEntries is defined as NoMDEntries but group is defined as quickfix.fix42.MarketDataSnapshotFullRefresh.NoMDEntries? Does it need to be this way? Also is the above message defined as a Message? Mine is also, but 'get' is not a valid method. I was previously using getField, but I'm not sure that is correct here. I was hoping I could somehow avoid iteration to see which PartId I care about, but it doesn't seem like that is possible. Thanks, Stacy toli wrote: > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > Stacy, > > Do you have a NoPartyIDs tag (453) somewhere in your message? > If that's the case, you are looking at the Parties repeating group, > and you can use the sample code form > http://www.quickfixj.org/quickfixj/usermanual/usage/repeating_groups.html > to see how to read data from repeating groups. > > Here's the link to the Parties block in the FIX4.4 spec: > http://www.btobits.com/fixopaedia/fixdic44/bd0e-Parties.html > > You can also see the real-life examples of extracting repeating groups > in the Marketcetera Platform code too: > http://trac.marketcetera.org/trac.fcgi/browser/platform/trunk/core/src/main/java/org/marketcetera/quickfix/FIXValueExtractor.java#L31 > and the corresponding test: > http://trac.marketcetera.org/trac.fcgi/browser/platform/trunk/core/src/test/java/org/marketcetera/quickfix/FIXValueExtractorTest.java#L67 > > hope this helps > > On 6/27/07, stacyann_1 <sta...@gs...> wrote: >> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ >> QuickFIX/J Support: http://www.quickfixj.org/support/ >> >> I'm having problems finding documentation to explain how to do this: >> >> The message that is being sent to me has multiple >> PartyId/PartyIdSource/PartyRole fields. For example: >> 448=SSNY 447=D 452=1 448=SMARCASSOLI:4784543 447=D 452=11 >> 448=TEST, TEST & CO. 447=D 452=13 10=192 >> >> How can I code to specifically retrieve the PartyId associated with >> PartyRole of 11? >> >> Thanks, >> Stacy >> -- > > > -- > Toli Kuznets > http://www.marketcetera.com: Open-Source Trading Platform > download.run.trade. > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > -- View this message in context: http://www.nabble.com/Multiple-PartyId%27s-tf3990055.html#a11331862 Sent from the QuickFIX/J mailing list archive at Nabble.com. |
|
From: Toli K. <to...@ma...> - 2007-06-27 18:56:59
|
Stacy, Do you have a NoPartyIDs tag (453) somewhere in your message? If that's the case, you are looking at the Parties repeating group, and you can use the sample code form http://www.quickfixj.org/quickfixj/usermanual/usage/repeating_groups.html to see how to read data from repeating groups. Here's the link to the Parties block in the FIX4.4 spec: http://www.btobits.com/fixopaedia/fixdic44/bd0e-Parties.html You can also see the real-life examples of extracting repeating groups in the Marketcetera Platform code too: http://trac.marketcetera.org/trac.fcgi/browser/platform/trunk/core/src/main/java/org/marketcetera/quickfix/FIXValueExtractor.java#L31 and the corresponding test: http://trac.marketcetera.org/trac.fcgi/browser/platform/trunk/core/src/test/java/org/marketcetera/quickfix/FIXValueExtractorTest.java#L67 hope this helps On 6/27/07, stacyann_1 <sta...@gs...> wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > I'm having problems finding documentation to explain how to do this: > > The message that is being sent to me has multiple > PartyId/PartyIdSource/PartyRole fields. For example: > 448=SSNY 447=D 452=1 448=SMARCASSOLI:4784543 447=D 452=11 > 448=TEST, TEST & CO. 447=D 452=13 10=192 > > How can I code to specifically retrieve the PartyId associated with > PartyRole of 11? > > Thanks, > Stacy > -- -- Toli Kuznets http://www.marketcetera.com: Open-Source Trading Platform download.run.trade. |
|
From: stacyann_1 <sta...@gs...> - 2007-06-27 18:20:53
|
I'm having problems finding documentation to explain how to do this: The message that is being sent to me has multiple PartyId/PartyIdSource/PartyRole fields. For example: 448=3DSSNY=01447=3DD=01452=3D1=01448=3DSMARCASSOLI:4784543=01447=3DD=01452= =3D11=01 448=3DTEST, TEST & CO.=01447=3DD=01452=3D13=0110=3D192 How can I code to specifically retrieve the PartyId associated with PartyRole of 11? Thanks, Stacy --=20 View this message in context: http://www.nabble.com/Multiple-PartyId%27s-tf= 3990055.html#a11329821 Sent from the QuickFIX/J mailing list archive at Nabble.com. |
|
From: Clive M. <cli...@ob...> - 2007-06-26 20:18:22
|
On Tuesday 26 Jun 2007, Benjamin Cuthbert wrote: > How does it know the determine the message size of 215 ? Ben, you have duplicate tag '207' in received message. This results in mina successfully reading message, but bodylength() validation failure. Regards Clive -- Clive Messer <cli...@ob...> ObjectSoft Systems Ltd |
|
From: Benjamin C. <ben...@db...> - 2007-06-26 15:02:31
|
All I am doing a SecurityDefinition request to a FIX server and when i get the incoming message back i am getting the following. 2007-06-26 15:50:06,080 DEBUG (AnonymousIoService-1-1) [quickfixj.msg.incoming] INCOMING [FIX.4.2:COMPLEXMARKETDATA->MARKETDATACOMPLEX] <8=FIX.4.2|9=229|35=d|49=MARKETDATACOMPLEX|56=COMPLEXMARKETDATA|34=10|52=20070626-14:50:05|320=1182869405955|322=1182869406131-5085|323=4|393=1|207=MEFF Gate|55=M3:M1 9800R|167=Put|207=MEFF Gate|202=9800|205=2011-06-17|228=1|462=MINI IBEX|15=EUR|10=081|> 2007-06-26 15:50:06,080 DEBUG (SocketIoProcessor-0) [quickfix.mina.message.FIXMessageDecoder] detected header: pos=0,lim=251,rem=251,offset=0,state=1 2007-06-26 15:50:06,080 DEBUG (SocketIoProcessor-0) [quickfix.mina.message.FIXMessageDecoder] body length = 228: pos=0,lim=251,rem=251,offset=16,state=3 2007-06-26 15:50:06,080 DEBUG (SocketIoProcessor-0) [quickfix.mina.message.FIXMessageDecoder] message body found: pos=0,lim=251,rem=251,offset=244,state=4 2007-06-26 15:50:06,080 DEBUG (SocketIoProcessor-0) [quickfix.mina.message.FIXMessageDecoder] found checksum: pos=0,lim=251,rem=251,offset=244,state=4 2007-06-26 15:50:06,080 ERROR (AnonymousIoService-1-1) [quickfix.mina.initiator.InitiatorIoHandler] Invalid message: Actual body length=215, Expected body length=229 How does it know the determine the message size of 215 ? Regards Ben Cuthbert Deutsche Bank AG Corporate & Investment Bank +44 (0) 20 754 76389 (Tel) +44 (0) 20 754 74996 (Fax) --- This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden. |
|
From: Colin C. <col...@he...> - 2007-06-19 12:21:47
|
To perform well you need to get the messages to disk asap and then worry about having them stored in a more useful structured way. Engine startup would flush messages from this transaction log into the proper store. I'd recommend HOWL as a transaction log, it does what it says on the tin... http://howl.objectweb.org/ Colin. http://hermesjms.com _____ From: qui...@li... [mailto:qui...@li...] On Behalf Of Vladimir Kvasov Sent: 19 June 2007 07:26 To: qui...@li... Subject: Re: [Quickfixj-users] Rolling Message store? Brad, I tried to use hsqldb (embedded mode) to perform data processing once. sql queries simplified code a little bit but there was a significant difference in performance compared to processing based on ArrayLists. hsqldb version was much slower. So I'd recommend to write some pilot code to perform load tests before choosing to use hsqldb. wbr _________________________________ Vladimir Kvasov Trading & Market Making Rates Technology Deutsche Bank +7 495 9812289 "Brad Harvey" <Bra...@gb...> Sent by: qui...@li... 19.06.2007 02:12 Please respond to qui...@li... To <qui...@li...> cc Subject Re: [Quickfixj-users] Rolling Message store? QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ I wonder how hsqldb with a cached table would compare in terms of performance and reliability? Should be able to plug it into the existing jdbc store. If you run hypersonic in embedded mode it wouldn't add much system admin overhead over the file store. Brad. -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of Steve Bate Sent: Tuesday, 19 June 2007 4:13 AM To: qui...@li... Subject: Re: [Quickfixj-users] Rolling Message store? QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ > I suspect that for fix resend purposes i'll never need more than the > last 10 minutes of messages. Is there a standard MessageStore > implementation that either just forgets older messages, or a way of > getting FileStore to roll old messages over (say every day)? This > would allow old messages to be archived or deleted without affecting a running app. There's not a rolling file implementation for the message store. > If not, would such a message store be a useful addition to the codebase? > I'm thinking of a MemoryStore with a time limit threshold, or a > FileStore with various rolling configuration options similar to log4j. I'm not sure how useful a rolling store would be. However, there's room for improvement in the caching of the messages for resend. Currently, the file store loads all messages into memory (using MemoryStore). That can slow down server start time and can consume a lot of memory for long, active sessions. Another option might be to use something like JBossCache or EhCache (or similar) to store the messages with a backing file but configure the cache to delete messages that are old than a specified age. We would need to do some experimentation to be sure the performance is good enough. Steve ------------------------------------------------------------------------ - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Quickfixj-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfixj-users ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Quickfixj-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfixj-users --- This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden. |
|
From: Vladimir K. <vla...@db...> - 2007-06-19 06:26:45
|
Brad, I tried to use hsqldb (embedded mode) to perform data processing once. sql queries simplified code a little bit but there was a significant difference in performance compared to processing based on ArrayLists. hsqldb version was much slower. So I'd recommend to write some pilot code to perform load tests before choosing to use hsqldb. wbr _________________________________ Vladimir Kvasov Trading & Market Making Rates Technology Deutsche Bank +7 495 9812289 "Brad Harvey" <Bra...@gb...> Sent by: qui...@li... 19.06.2007 02:12 Please respond to qui...@li... To <qui...@li...> cc Subject Re: [Quickfixj-users] Rolling Message store? QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ I wonder how hsqldb with a cached table would compare in terms of performance and reliability? Should be able to plug it into the existing jdbc store. If you run hypersonic in embedded mode it wouldn't add much system admin overhead over the file store. Brad. -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of Steve Bate Sent: Tuesday, 19 June 2007 4:13 AM To: qui...@li... Subject: Re: [Quickfixj-users] Rolling Message store? QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ > I suspect that for fix resend purposes i'll never need more than the > last 10 minutes of messages. Is there a standard MessageStore > implementation that either just forgets older messages, or a way of > getting FileStore to roll old messages over (say every day)? This > would allow old messages to be archived or deleted without affecting a running app. There's not a rolling file implementation for the message store. > If not, would such a message store be a useful addition to the codebase? > I'm thinking of a MemoryStore with a time limit threshold, or a > FileStore with various rolling configuration options similar to log4j. I'm not sure how useful a rolling store would be. However, there's room for improvement in the caching of the messages for resend. Currently, the file store loads all messages into memory (using MemoryStore). That can slow down server start time and can consume a lot of memory for long, active sessions. Another option might be to use something like JBossCache or EhCache (or similar) to store the messages with a backing file but configure the cache to delete messages that are old than a specified age. We would need to do some experimentation to be sure the performance is good enough. Steve ------------------------------------------------------------------------ - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Quickfixj-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfixj-users ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Quickfixj-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfixj-users --- This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden. |
|
From: Brad H. <Bra...@gb...> - 2007-06-18 22:19:08
|
I wonder how hsqldb with a cached table would compare in terms of performance and reliability? Should be able to plug it into the existing jdbc store. If you run hypersonic in embedded mode it wouldn't add much system admin overhead over the file store.=20 Brad.=20 -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of Steve Bate Sent: Tuesday, 19 June 2007 4:13 AM To: qui...@li... Subject: Re: [Quickfixj-users] Rolling Message store? QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ > I suspect that for fix resend purposes i'll never need more than the=20 > last 10 minutes of messages. Is there a standard MessageStore=20 > implementation that either just forgets older messages, or a way of=20 > getting FileStore to roll old messages over (say every day)? This=20 > would allow old messages to be archived or deleted without affecting a running app. There's not a rolling file implementation for the message store. > If not, would such a message store be a useful addition to the codebase? > I'm thinking of a MemoryStore with a time limit threshold, or a=20 > FileStore with various rolling configuration options similar to log4j. I'm not sure how useful a rolling store would be. However, there's room for improvement in the caching of the messages for resend. Currently, the file store loads all messages into memory (using MemoryStore). That can slow down server start time and can consume a lot of memory for long, active sessions. Another option might be to use something like JBossCache or EhCache (or similar) to store the messages with a backing file but configure the cache to delete messages that are old than a specified age. We would need to do some experimentation to be sure the performance is good enough. Steve ------------------------------------------------------------------------ - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Quickfixj-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfixj-users |
|
From: Steve B. <st...@te...> - 2007-06-18 18:13:09
|
> I suspect that for fix resend purposes i'll never need more than the last > 10 minutes of messages. Is there a standard MessageStore implementation > that either just forgets older messages, or a way of getting FileStore > to roll old messages over (say every day)? This would allow old > messages to be archived or deleted without affecting a running app. There's not a rolling file implementation for the message store. > If not, would such a message store be a useful addition to the codebase? > I'm thinking of a MemoryStore with a time limit threshold, or a > FileStore with various rolling configuration options similar to log4j. I'm not sure how useful a rolling store would be. However, there's room for improvement in the caching of the messages for resend. Currently, the file store loads all messages into memory (using MemoryStore). That can slow down server start time and can consume a lot of memory for long, active sessions. Another option might be to use something like JBossCache or EhCache (or similar) to store the messages with a backing file but configure the cache to delete messages that are old than a specified age. We would need to do some experimentation to be sure the performance is good enough. Steve |
|
From: t.s. <tru...@cb...> - 2007-06-17 19:42:27
|
Sorry for late reply, >> There were mentions about 'ReconnectInterval' parameter in the config >> file; does it mean that the initiator will retry to reconnect >> indefinitely? Is the mechanism reliable ? > Yes, it will reconnect indefinitely. And it's reliable as far as I > know. What problems were you experiencing? The first version that i deployed on the remote machine uses only a single thread/instance of the initiator. There were complaints from the users that the initiator failed to reconnect to third party server in several scenarios : 1. connection is broken by the remote server on purpose. (maintenance) 2. internet connection problem (we have a rather spotty infrastructure) 3. unplugging the network cable from the machine. (a bit extreme, i know...:) Because of time constraints, i ended up with the approach i mentioned earlier: dropping the whole thread/instance and creating another one from scratch as soon as any problem's detected. It's been running OK for several weeks now, but it does seem a bit overkill... > I strongly recommend using the built-in reconnection capabilities instead > of this approach. It might work to some extent, but the initiators are not > designed to be used this way. I see. I will try going back to the single instance approach. Thanks for the suggestion. I'll let you know how it goes. Concerning the sequence number reset thingy, i just got confirmation that i'm supposed to send a tag 141=Y value in the logon message via the toAdmin() method. ... message.setField(new ResetSeqNumFlag(true) ); ... Do i have to do anything else for quickfix/j to negotiate the sequence number reset ? Thanks in advance, regards, t.s. |