Thread: Re: [Quickfix-developers] Repeating groups?
Brought to you by:
orenmnero
From: <OM...@th...> - 2003-04-10 19:58:41
|
You need to use the specific group class. If you just use the generic = base Group class, QF will not know how to properly sort the fields. Instead= of this: Group Qset =3D new Group(296, 0x1); Qset.setField(...); Group Quotes =3D new Group(295, 0x1); Quotes.setField(...); you should have QuickFix42.MassQuote.NoQuoteSets Qset =3D new QuickFix42.MassQuote.NoQuoteSets Qset(); Qset.set(...); QuickFix42.MassQuote.NoQuoteSets.NoQuoteEntries Quotes =3D new QuickFix42.MassQuote.NoQuoteSets.NoQuoteEntries(); Quotes.set(...); Here is a link to the C# example for creating messages with repeating groups: http://quickfix.thoughtworks.com/documentation/csharp/repeating_groups_= 1.html --oren |---------+-----------------------------------------------> | | "Rob Kulseth" <ro...@ri...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 04/10/2003 02:07 PM | | | | |---------+-----------------------------------------------> >--------------------------------------------------------------------= --------------------------| | = | | To: <qui...@li...> = | | cc: = | | Subject: [Quickfix-developers] Repeating groups? = | >--------------------------------------------------------------------= --------------------------| I have attached the result of creating a quickfix MassQuote message wit= h three quotes for some RBK options. it is presented in the order in whi= ch the string was generated, I have added tabs and linebreaks to show the repeating groups. When ever I send a message like this to my counterpa= rty it breaks their fix server. They are telling me that the tags are out = of order. tag 302 304 and 311 have to precede 209 and tag 301 has to prec= ede tag 296. my question is this: Is this FIX standard? If it is, what is= wrong with generation of the message. I have attached psudocode of my message generation after the message. 8=3DFIX.4.2=019=3D433=0135=3Di=0134=3D30=0149=3DSENDER=0150=3DSUB=0152=3D= 20030410-18:09:08=0156=3DTARGET=01 57=3DTEST=01 117=3DQUOTEID=01 296=3D1=01 295=3D3=01 55=3DRBK=01 60=3D20030410-13:09:08=01 132=3D0=01 133=3D0.05=01 134=3D1=01 135=3D1=01 167=3DOPT=01 200=3D200304=01 201=3D1=01 202=3D30=01 299=3D0=01 336=3DW_AM1=01 55=3DRBK=01 60=3D20030410-13:09:08=01 132=3D10.2=01 133=3D10.7=01 134=3D1=01 135=3D1=01 167=3DOPT=01 200=3D200304=01 201=3D0=01 202=3D32.5=01 299=3D1=01 336=3DW_AM1=01 55=3DRBK=01 60=3D20030410-13:09:08=01 132=3D0=01 133=3D0.05=01 134=3D1=01 135=3D1=01 167=3DOPT=01 200=3D200304=01 201=3D1=01 202=3D32.5=01 299=3D2=01 336=3DW_AM1=01 302=3D1=01 304=3D0=01 311=3DRBK=01 301=3D1=01 10=3D063=01 private void Tick() { QuickFix42.MassQuote m =3D new QuickFix42.MassQuote(); m.setField(new QuoteID(mClient.mUserID)); m.setField(new QuoteResponseLevel(1)); //tell me only abou= t bad quotes foreach(group of quotes I am quoting known as the variable= p) { Group Qset =3D new Group(296, 0x1); Qset.setField(new QuoteSetID(mQuoteSetID.ToString())); Qset.setField(new UnderlyingSymbol(p.Series));= Qset.setField(new TotQuoteEntries(0)); foreach(quote in my quote group p known as Q) { Group Quotes =3D new Group(295, 0x= 1); //set all the quote fields Quotes.setField(new QuoteEntryID(i.ToString())); Quotes.setField(new Symbol(q.Symbo= l)); Quotes.setField(new SecurityType(q.SecurityType)); Quotes.setField(new MaturityMonthYear(q.strMaturityMonthYear)); Quotes.setField(new SecurityType(q.SecurityType)); Quotes.setField(new StrikePrice(q.StrikePrice)); Quotes.setField(new PutOrCall(q.Is= Call ? PutOrCall.CALL : PutOrCall.PUT )); Quotes.setField(new BidPx(q.BidPX)= ); Quotes.setField(new OfferPx(q.OfferPX)); Quotes.setField(new BidSize(q.BidSize)); Quotes.setField(new OfferSize(q.OfferSize)); Quotes.setField(new TransactTime(DateTime.Now)); Quotes.setField(new TradingSessionID(mClient.Parent.Key)); i++; Qset.addGroup(Quotes); } m.addGroup(Qset); mQuoteSetID++; } send m } ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The debu= gger for complex code. Debugging C/C++ programs can leave you feeling lost a= nd disoriented. TotalView can help you find your way. Available on major U= NIX and Linux platforms. Try it free. www.etnus.com _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers = |
From: David M. <dav...@ds...> - 2003-04-10 23:20:41
|
Hi All, I have got my java engine running very nicely. Basically I have a market data feed running on a thread and a scheduler running several threads. The data feed calls a onMarketDataEvent callback and the scheduler calls a onTimerEvent callback. These callbacks are implemented by my Application (along with all the QF callbacks). On the constructor of the Application object I instatiate and fire up both the market data source and the scheduler. The engine does its thing beautifully. After the specified time, the scheduler calls the onTimerEvenet callback which signals my engine (the Application) to stop. The callback sets quit = true which causes onRun to exit it's main loop. onRun nows closes the market data source (I see its threads disappear in the debugger) and it also closes the scheduler (threads also gone). I still see the Main thread, the onRun thread and another application thread which I don't know who created :-( Is this correct? Does QF create three threads? Does the SocketInitiator have a thread besides the onRun? There are several more System threads but these are owned by the JVM. Anyways, when onRun exits, I get a signal 11 (SIGSEV) and the jvm goes to lala land :-( The main thread (which created the Application and invoked the SocketInitiator.start() ) never exits (I have a println just before main() exits, which I never see). Has anyone seen this? Any ideas? Thanks David. PS Does QF support the creation of dynamic fix sessions? ie the way I see it today, all the sessions I use must be defined in both the Acceptor and the Initiator cfg files. What if I wanted to create a session to an Acceptor which "was not expecting" me (no entry for me as a TargetCompID in its cfg file). Cheers |
From: Gene G. <mus...@ya...> - 2003-04-11 01:22:52
|
Which version of QF are you using? I checked in a patch recently that fixed shutdown thread leaks (onRun and socket connection threads). I believe Oren incorporated it into QF 1.4.1. Gene --- David Monheit <dav...@ds...> wrote: > > Hi All, > > I have got my java engine running very nicely. > Basically I have a market data > feed running on a thread and a scheduler running > several threads. The data > feed calls a onMarketDataEvent callback and the > scheduler calls a onTimerEvent > callback. These callbacks are implemented by my > Application (along with all > the QF callbacks). > > On the constructor of the Application object I > instatiate and fire up both the > market data source and the scheduler. > > The engine does its thing beautifully. > > After the specified time, the scheduler calls the > onTimerEvenet callback which > signals my engine (the Application) to stop. > > The callback sets quit = true which causes onRun to > exit it's main loop. > > onRun nows closes the market data source (I see its > threads disappear in the > debugger) and it also closes the scheduler (threads > also gone). > > I still see the Main thread, the onRun thread and > another application thread > which I don't know who created :-( Is this correct? > Does QF create three > threads? Does the SocketInitiator have a thread > besides the onRun? There are > several more System threads but these are owned by > the JVM. > > Anyways, when onRun exits, I get a signal 11 > (SIGSEV) and the jvm goes to lala > land :-( > > The main thread (which created the Application and > invoked the > SocketInitiator.start() ) never exits (I have a > println just before main() > exits, which I never see). > > Has anyone seen this? Any ideas? > > Thanks David. > > PS Does QF support the creation of dynamic fix > sessions? ie the way I see it > today, all the sessions I use must be defined in > both the Acceptor and the > Initiator cfg files. What if I wanted to create a > session to an Acceptor > which "was not expecting" me (no entry for me as a > TargetCompID in its cfg > file). > > Cheers > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Etnus, makers of > TotalView, The debugger > for complex code. Debugging C/C++ programs can leave > you feeling lost and > disoriented. TotalView can help you find your way. > Available on major UNIX > and Linux platforms. Try it free. www.etnus.com > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - File online, calculators, forms, and more http://tax.yahoo.com |
From: David M. <dav...@ds...> - 2003-04-11 08:35:31
|
I am using a version just prior to release 1.4.1. I needed the code fixes for gcc 3.2 so I took a tip version out of CVS. Looking at the release notes for that, I thought that it was 1.4.1 so I did not bother to take the latest cut. Lazy. I will download the official 1.4.1 (hopefully with your patches) and try it out again. Thanks a lot David PS Any ideas on anonymous connections to a QF acceptor (see my last mail)? Quoting Gene Gorokhovsky <mus...@ya...>: > Which version of QF are you using? I checked in a > patch recently that fixed shutdown thread leaks (onRun > and socket connection threads). I believe Oren > incorporated it into QF 1.4.1. > > Gene > > --- David Monheit <dav...@ds...> wrote: > > > > Hi All, > > > > I have got my java engine running very nicely. > > Basically I have a market data > > feed running on a thread and a scheduler running > > several threads. The data > > feed calls a onMarketDataEvent callback and the > > scheduler calls a onTimerEvent > > callback. These callbacks are implemented by my > > Application (along with all > > the QF callbacks). > > > > On the constructor of the Application object I > > instatiate and fire up both the > > market data source and the scheduler. > > > > The engine does its thing beautifully. > > > > After the specified time, the scheduler calls the > > onTimerEvenet callback which > > signals my engine (the Application) to stop. > > > > The callback sets quit = true which causes onRun to > > exit it's main loop. > > > > onRun nows closes the market data source (I see its > > threads disappear in the > > debugger) and it also closes the scheduler (threads > > also gone). > > > > I still see the Main thread, the onRun thread and > > another application thread > > which I don't know who created :-( Is this correct? > > Does QF create three > > threads? Does the SocketInitiator have a thread > > besides the onRun? There are > > several more System threads but these are owned by > > the JVM. > > > > Anyways, when onRun exits, I get a signal 11 > > (SIGSEV) and the jvm goes to lala > > land :-( > > > > The main thread (which created the Application and > > invoked the > > SocketInitiator.start() ) never exits (I have a > > println just before main() > > exits, which I never see). > > > > Has anyone seen this? Any ideas? > > > > Thanks David. > > > > PS Does QF support the creation of dynamic fix > > sessions? ie the way I see it > > today, all the sessions I use must be defined in > > both the Acceptor and the > > Initiator cfg files. What if I wanted to create a > > session to an Acceptor > > which "was not expecting" me (no entry for me as a > > TargetCompID in its cfg > > file). > > > > Cheers > > > > > > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: Etnus, makers of > > TotalView, The debugger > > for complex code. Debugging C/C++ programs can leave > > you feeling lost and > > disoriented. TotalView can help you find your way. > > Available on major UNIX > > and Linux platforms. Try it free. www.etnus.com > > _______________________________________________ > > Quickfix-developers mailing list > > Qui...@li... > > > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > __________________________________________________ > Do you Yahoo!? > Yahoo! Tax Center - File online, calculators, forms, and more > http://tax.yahoo.com > > > ------------------------------------------------------- > This SF.net email is sponsored by: Etnus, makers of TotalView, The > debugger > for complex code. Debugging C/C++ programs can leave you feeling lost > and > disoriented. TotalView can help you find your way. Available on major > UNIX > and Linux platforms. Try it free. www.etnus.com > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > "Cuius testiculus habeas, habeas cardium et cerebellum" - Terry Pratchett |
From: Oren M. <ore...@ya...> - 2003-04-11 16:02:45
|
David Monheit <dav...@ds...> wrote:>> PS Any ideas on anonymous connections to a QF acceptor (see my >> last mail)? The guys at Aegis Software (http://www.aegisoft.com/), told me they had implemented this functionality for one of their products. We can ask if they would be willing to donate this code. --------------------------------- Do you Yahoo!? Yahoo! Tax Center - File online, calculators, forms, and more |
From: David M. <Dav...@mo...> - 2003-04-14 08:35:32
|
Oren, YES please! Will you do the honors or should I? Thanks David Oren Miller wrote: > David Monheit <dav...@ds...> wrote:>> PS Any ideas on > anonymous connections to a QF acceptor (see my >> last mail)? The guys > at Aegis Software (http://www.aegisoft.com/), told me they had > implemented this functionality for one of their products. We can ask > if they would be willing to donate this code. > > > ----------------------------------------------------------------------- > Do you Yahoo!? > Yahoo! Tax Center - File online, calculators, forms, and more -- NOTICE: If received in error, please destroy and notify sender. Sender does not waive confidentiality or privilege, and use is prohibited. |
From: David M. <dav...@ds...> - 2003-04-15 22:30:00
|
Hi Gene et al Just downloaded the latest 1.4.1 quickfix. It now works great! No more=20 core/errors etc. Thanks a lot for the help. David On Friday 11 Apr 2003 2:22 am, Gene Gorokhovsky wrote: > Which version of QF are you using? I checked in a > patch recently that fixed shutdown thread leaks (onRun > and socket connection threads). I believe Oren > incorporated it into QF 1.4.1. > > Gene > > --- David Monheit <dav...@ds...> wrote: > > Hi All, > > > > I have got my java engine running very nicely. > > Basically I have a market data > > feed running on a thread and a scheduler running > > several threads. The data > > feed calls a onMarketDataEvent callback and the > > scheduler calls a onTimerEvent > > callback. These callbacks are implemented by my > > Application (along with all > > the QF callbacks). > > > > On the constructor of the Application object I > > instatiate and fire up both the > > market data source and the scheduler. > > > > The engine does its thing beautifully. > > > > After the specified time, the scheduler calls the > > onTimerEvenet callback which > > signals my engine (the Application) to stop. > > > > The callback sets quit =3D true which causes onRun to > > exit it's main loop. > > > > onRun nows closes the market data source (I see its > > threads disappear in the > > debugger) and it also closes the scheduler (threads > > also gone). > > > > I still see the Main thread, the onRun thread and > > another application thread > > which I don't know who created :-( Is this correct? > > Does QF create three > > threads? Does the SocketInitiator have a thread > > besides the onRun? There are > > several more System threads but these are owned by > > the JVM. > > > > Anyways, when onRun exits, I get a signal 11 > > (SIGSEV) and the jvm goes to lala > > land :-( > > > > The main thread (which created the Application and > > invoked the > > SocketInitiator.start() ) never exits (I have a > > println just before main() > > exits, which I never see). > > > > Has anyone seen this? Any ideas? > > > > Thanks David. > > > > PS Does QF support the creation of dynamic fix > > sessions? ie the way I see it > > today, all the sessions I use must be defined in > > both the Acceptor and the > > Initiator cfg files. What if I wanted to create a > > session to an Acceptor > > which "was not expecting" me (no entry for me as a > > TargetCompID in its cfg > > file). > > > > Cheers > > ------------------------------------------------------- > > > This SF.net email is sponsored by: Etnus, makers of > > TotalView, The debugger > > for complex code. Debugging C/C++ programs can leave > > you feeling lost and > > disoriented. TotalView can help you find your way. > > Available on major UNIX > > and Linux platforms. Try it free. www.etnus.com > > _______________________________________________ > > Quickfix-developers mailing list > > Qui...@li... > > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > __________________________________________________ > Do you Yahoo!? > Yahoo! Tax Center - File online, calculators, forms, and more > http://tax.yahoo.com > > > ------------------------------------------------------- > This SF.net email is sponsored by: Etnus, makers of TotalView, The debu= gger > for complex code. Debugging C/C++ programs can leave you feeling lost a= nd > disoriented. TotalView can help you find your way. Available on major U= NIX > and Linux platforms. Try it free. www.etnus.com > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers --=20 "Cuius testiculus habes, habeas cardium et cerebellum" - Terry Pratchett |