|
From: Clive M. <cl...@va...> - 2006-06-02 17:29:28
|
-- Clive Messer <cl...@va...> |
|
From: <th...@co...> - 2007-10-11 01:02:38
|
I am trying to add a repeating group 'NoHops' to a quickfix.fix44.Message.Header, but it does not seem to be defined as a subclass of the quickfix.Group. I have done this with messages, but never the header. How do I add this repeating group to the message header? |
|
From: Toli K. <to...@ma...> - 2007-10-11 01:51:13
|
I think the problem may be in QFJ code generation. Seems that only group in message subclasses are generated - and not inside the header (or trailer). This is in MessageCodeGenerator.generateMessageSubclasses() - only the messages/message elements of the FIX file are called. Steve, it calls the Messages.xls transformer - and it seems that's explicitly written to only match on messages or message components, not on header/trailer. So it seems that we may need to file a bug and add more functionality to create header groups as well. On 10/10/07, th...@co... <th...@co...> wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > I am trying to add a repeating group 'NoHops' to a > quickfix.fix44.Message.Header, but it does not seem to be defined as > a subclass of the quickfix.Group. I have done this with messages, > but never the header. How do I add this repeating group to the > message header? > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > 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: <th...@co...> - 2007-10-11 02:05:55
|
Thank you for your quick reply. Is there a temporary workaround? On Oct 10, 2007, at 8:51 PM, Toli Kuznets wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > I think the problem may be in QFJ code generation. > > Seems that only group in message subclasses are generated - and not > inside the header (or trailer). This is in > MessageCodeGenerator.generateMessageSubclasses() - only the > messages/message elements of the FIX file are called. > > Steve, it calls the Messages.xls transformer - and it seems that's > explicitly written to only match on messages or message components, > not on header/trailer. > > So it seems that we may need to file a bug and add more functionality > to create header groups as well. > > > On 10/10/07, th...@co... <th...@co...> wrote: >> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ >> QuickFIX/J Support: http://www.quickfixj.org/support/ >> I am trying to add a repeating group 'NoHops' to a >> quickfix.fix44.Message.Header, but it does not seem to be defined as >> a subclass of the quickfix.Group. I have done this with messages, >> but never the header. How do I add this repeating group to the >> message header? >> >> --------------------------------------------------------------------- >> ---- >> This SF.net email is sponsored by: Splunk Inc. >> Still grepping through log files to find problems? Stop. >> Now Search log events and configuration files using AJAX and a >> browser. >> Download your FREE copy of Splunk now >> http://get.splunk.com/ >> _______________________________________________ >> 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. > > ---------------------------------------------------------------------- > --- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a > browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users |
|
From: Toli K. <to...@ma...> - 2007-10-11 02:19:21
|
There's nothing really simple. You can hand-create the appropriate subclass of Header (ie quickfix.fix44.NoHops, just follow something like quickfix.fix44.Advertisement.NoUnderlyings) but i am not sure what it needs to look like off the top of my head. I tried making some modifications to the message-generation code, and i'd have to spend more time trying to figure out how to fix it to generate those classes. So nothing immediate, until someone spends more time to fix the problem and posts the generated classes to use. It may be easier to just add these fields as a basic group, w/out having to use pre-generated classes. ie use the new Group(NoHops.FIELD, HopCompID.FIELD) constructor and set all the fields yourself. hope this helps. On 10/10/07, th...@co... <th...@co...> wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > Thank you for your quick reply. Is there a temporary workaround? > > On Oct 10, 2007, at 8:51 PM, Toli Kuznets wrote: > > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > > QuickFIX/J Support: http://www.quickfixj.org/support/ > > I think the problem may be in QFJ code generation. > > > > Seems that only group in message subclasses are generated - and not > > inside the header (or trailer). This is in > > MessageCodeGenerator.generateMessageSubclasses() - only the > > messages/message elements of the FIX file are called. > > > > Steve, it calls the Messages.xls transformer - and it seems that's > > explicitly written to only match on messages or message components, > > not on header/trailer. > > > > So it seems that we may need to file a bug and add more functionality > > to create header groups as well. > > > > > > On 10/10/07, th...@co... <th...@co...> wrote: > >> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > >> QuickFIX/J Support: http://www.quickfixj.org/support/ > >> I am trying to add a repeating group 'NoHops' to a > >> quickfix.fix44.Message.Header, but it does not seem to be defined as > >> a subclass of the quickfix.Group. I have done this with messages, > >> but never the header. How do I add this repeating group to the > >> message header? > >> > >> --------------------------------------------------------------------- > >> ---- > >> This SF.net email is sponsored by: Splunk Inc. > >> Still grepping through log files to find problems? Stop. > >> Now Search log events and configuration files using AJAX and a > >> browser. > >> Download your FREE copy of Splunk now >> http://get.splunk.com/ > >> _______________________________________________ > >> 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. > > > > ---------------------------------------------------------------------- > > --- > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a > > browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > _______________________________________________ > > Quickfixj-users mailing list > > Qui...@li... > > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > 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: CaiQi <cai...@ho...> - 2007-10-11 04:41:05
|
Steve has fixed this bug, and will update in quickfix/j version 1.3.1. We can see at QFJ-248, QFJ-249. > Date: Wed, 10 Oct 2007 18:51:05 -0700> From: to...@ma...> To: qui...@li...> Subject: Re: [Quickfixj-users] (no subject)> > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/> QuickFIX/J Support: http://www.quickfixj.org/support/> I think the problem may be in QFJ code generation.> > Seems that only group in message subclasses are generated - and not> inside the header (or trailer). This is in> MessageCodeGenerator.generateMessageSubclasses() - only the> messages/message elements of the FIX file are called.> > Steve, it calls the Messages.xls transformer - and it seems that's> explicitly written to only match on messages or message components,> not on header/trailer.> > So it seems that we may need to file a bug and add more functionality> to create header groups as well.> > > On 10/10/07, th...@co... <th...@co...> wrote:> > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/> > QuickFIX/J Support: http://www.quickfixj.org/support/> > I am trying to add a repeating group 'NoHops' to a> > quickfix.fix44.Message.Header, but it does not seem to be defined as> > a subclass of the quickfix.Group. I have done this with messages,> > but never the header. How do I add this repeating group to the> > message header?> >> > -------------------------------------------------------------------------> > This SF.net email is sponsored by: Splunk Inc.> > Still grepping through log files to find problems? Stop.> > Now Search log events and configuration files using AJAX and a browser.> > Download your FREE copy of Splunk now >> http://get.splunk.com/> > _______________________________________________> > 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.> > -------------------------------------------------------------------------> This SF.net email is sponsored by: Splunk Inc.> Still grepping through log files to find problems? Stop.> Now Search log events and configuration files using AJAX and a browser.> Download your FREE copy of Splunk now >> http://get.splunk.com/> _______________________________________________> Quickfixj-users mailing list> Qui...@li...> https://lists.sourceforge.net/lists/listinfo/quickfixj-users _________________________________________________________________ Windows Live Custom Domain,您的免费电子邮局。 https://domains.live.com/default.aspx |
|
From: Steve B. <st...@te...> - 2007-10-11 14:18:49
|
> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > Steve has fixed this bug, and will update in quickfix/j version 1.3.1. We > can see at QFJ-248, QFJ-249. Those issues will be fixed in 1.3.1, but there are currently still open. Steve |
|
From: Ming F. <min...@ma...> - 2007-10-18 04:33:27
|
|
From: Daniel H. <dh...@ta...> - 2008-05-04 00:13:31
|
I am creating a QuickfixJ application that uses a
ThreadedSocketAcceptor. The problem I have encountered is that even
though I call "stop()" on the acceptor, some of the quickfixJ threads
do not finish, and the application continues to run. This only
happens if something happens to connect to the acceptor while the
application is running - if no one connects then the application
finishes gracefully (I believe it is the QF/J Session dispatcher
threads that don't finish).
Specifically my application looks like:
{
SessionSettings settings = new SessionSettings(new
FileInputStream(fileName));
MessageStoreFactory messageStoreFactory = new FileStoreFactory
(settings);
quickfix.LogFactory qfLogFactory = new FileLogFactory(settings);
MessageFactory messageFactory = new DefaultMessageFactory();
Connector connector = new ThreadedSocketAcceptor(this,
messageStoreFactory, settings,
qfLogFactory, messageFactory);
} else {
connector = new SocketAcceptor(this, messageStoreFactory,
settings,
qfLogFactory,
messageFactory);
}
}
connector.start();
this.run();
connector.stop();
}
I am running the application with jrockit and java 6, though I doubt
this is to blame. I realize I can always call "System.exit()" to make
the application finish, but I figure it shouldn't be necessary if
things are working correctly...
Many thanks for any help you can provide!
-Dan
|
|
From: Paul S. <pau...@ya...> - 2010-05-05 16:43:34
|
Please unsubscribe me from this list
Thanks
|
|
From: John V. <jva...@co...> - 2010-05-05 16:47:26
|
To unsubscribe... https://lists.sourceforge.net/lists/listinfo/quickfixj-users See section marked "To unsubscribe from Quickfixj-users,..." John Vatianou Connamara Systems, LLC Direct: 312-235-6772 Email: jva...@co... www.connamara.com On Wed, May 5, 2010 at 11:43 AM, Paul Smith <pau...@ya...>wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Please unsubscribe me from this list > > Thanks > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > |
|
From: David H. <ma...@da...> - 2011-05-09 16:16:35
|
Following directions for Eclipse, This piece of shit doesn't _ckin build
Buildfile: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml
check.generated.isuptodate:
generate.code:
compile:
compile_main:
[javac] Compiling 1850 source files to D:\Eclipse
Workspaces\quickfixj-1.5.0-ws\quickfixj\core\target\classes\main
BUILD FAILED
D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:81: The
following error occurred while executing this line:
D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:89: The
following error occurred while executing this line:
D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:109: Error
running javac.exe compiler
Total time: 1 second
|
|
From: Grant B. <gbi...@co...> - 2011-05-09 16:22:34
|
Did you try using "ant jar" like I suggested this morning to your other mail on this same topic? I can't help you with Eclipse because I don't use it, but Ant has usually worked for me. -Grant On Mon, May 9, 2011 at 11:14 AM, David Hulme <ma...@da...> wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > > > Following directions for Eclipse, This piece of shit doesn’t _ckin build > > > > > > Buildfile: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml > > check.generated.isuptodate: > > generate.code: > > compile: > > compile_main: > > [javac] Compiling 1850 source files to D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\target\classes\main > > > > BUILD FAILED > > D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:81: The following error occurred while executing this line: > > D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:89: The following error occurred while executing this line: > > D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:109: Error running javac.exe compiler > > > > Total time: 1 second > > > > ------------------------------------------------------------------------------ > WhatsUp Gold - Download Free Network Management Software > The most intuitive, comprehensive, and cost-effective network > management toolset available today. Delivers lowest initial > acquisition cost and overall TCO of any competing solution. > http://p.sf.net/sfu/whatsupgold-sd > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > |
|
From: Eric D. <ede...@sm...> - 2011-05-09 16:35:02
|
David,
on which platform are you trying to build?
Do you get a out of memory issue?
I have noticed that on Linux 64bit, the javac max memory was not enough.
I suggest you modify the do_compile macrodef of the core\build.xml file.
Please increase the memoryMaximumSize to 1024m or 2048m and let me know if it solves the issue and rerun the jar target:
<macrodef name="do_compile">
<attribute name="srcref" />
<attribute name="classpathref" />
<attribute name="output" />
<sequential>
<mkdir dir="@{output}" />
<javac destdir="@{output}" debug="${javac.debug}"
memoryMaximumSize="2048m" fork="yes" nowarn="yes">
<compilerarg line="${javac.args}" />
<classpath refid="@{classpathref}" />
<src refid="@{srcref}" />
</javac>
</sequential>
</macrodef>
Regards,
Eric
-----Message d'origine-----
De : Grant Birchmeier [mailto:gbi...@co...]
Envoyé : lundi 9 mai 2011 18:23
À : qui...@li...
Objet : Re: [Quickfixj-users] (no subject)
QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
QuickFIX/J Support: http://www.quickfixj.org/support/
Did you try using "ant jar" like I suggested this morning to your
other mail on this same topic?
I can't help you with Eclipse because I don't use it, but Ant has
usually worked for me.
-Grant
On Mon, May 9, 2011 at 11:14 AM, David Hulme <ma...@da...> wrote:
> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
> QuickFIX/J Support: http://www.quickfixj.org/support/
>
>
>
>
>
> Following directions for Eclipse, This piece of shit doesn't _ckin build
>
>
>
>
>
> Buildfile: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml
>
> check.generated.isuptodate:
>
> generate.code:
>
> compile:
>
> compile_main:
>
> [javac] Compiling 1850 source files to D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\target\classes\main
>
>
>
> BUILD FAILED
>
> D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:81: The following error occurred while executing this line:
>
> D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:89: The following error occurred while executing this line:
>
> D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:109: Error running javac.exe compiler
>
>
>
> Total time: 1 second
>
>
>
> ------------------------------------------------------------------------------
> WhatsUp Gold - Download Free Network Management Software
> The most intuitive, comprehensive, and cost-effective network
> management toolset available today. Delivers lowest initial
> acquisition cost and overall TCO of any competing solution.
> http://p.sf.net/sfu/whatsupgold-sd
> _______________________________________________
> Quickfixj-users mailing list
> Qui...@li...
> https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>
>
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Quickfixj-users mailing list
Qui...@li...
https://lists.sourceforge.net/lists/listinfo/quickfixj-users
|
|
From: Chris H. <chr...@ho...> - 2011-05-09 16:38:44
|
Seems too obvious but have you done this .. Eclipse -> Preferences -> Ant -> runtime -> Global Entries and check for an entry for tools.jar (its in your jdk), if its not there add it e.g. C:\Program Files\Java\jdk1.6.0_22\lib\tools.jar From: ma...@da... To: qui...@li... Date: Mon, 9 May 2011 12:14:31 -0400 Subject: [Quickfixj-users] (no subject) QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ Following directions for Eclipse, This piece of shit doesn't _ckin build Buildfile: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml check.generated.isuptodate: generate.code: compile: compile_main: [javac] Compiling 1850 source files to D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\target\classes\main BUILD FAILED D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:81: The following error occurred while executing this line: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:89: The following error occurred while executing this line: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:109: Error running javac.exe compiler Total time: 1 second Following directions for Eclipse, This piece of shit doesn’t _ckin build Buildfile: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml check.generated.isuptodate: generate.code: compile: compile_main: [javac] Compiling 1850 source files to D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\target\classes\main BUILD FAILED D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:81: The following error occurred while executing this line: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:89: The following error occurred while executing this line: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:109: Error running javac.exe compiler Total time: 1 second ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ Quickfixj-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfixj-users |
|
From: Chris H. <chr...@ho...> - 2011-05-09 16:58:42
|
It does look to me like the ant can't find javac problem which is common eclipse ant setup issue I've seen it a few times (other projects) might be worth adding it to our docs even though its nothing to do with QuickFix/J as such. Adding tools.jar as I said usually fixes it (you may have to restart Eclipse) I couldn't identify the "piece of shit" package either. From: chr...@ho... To: qui...@li... Date: Mon, 9 May 2011 16:38:34 +0000 Subject: Re: [Quickfixj-users] (no subject) QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ Seems too obvious but have you done this .. Eclipse -> Preferences -> Ant -> runtime -> Global Entries and check for an entry for tools.jar (its in your jdk), if its not there add it e.g. C:\Program Files\Java\jdk1.6.0_22\lib\tools.jar From: ma...@da... To: qui...@li... Date: Mon, 9 May 2011 12:14:31 -0400 Subject: [Quickfixj-users] (no subject) QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ Following directions for Eclipse, This piece of shit doesn't _ckin build Buildfile: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml check.generated.isuptodate: generate.code: compile: compile_main: [javac] Compiling 1850 source files to D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\target\classes\main BUILD FAILED D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:81: The following error occurred while executing this line: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:89: The following error occurred while executing this line: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:109: Error running javac.exe compiler Total time: 1 second Following directions for Eclipse, This piece of shit doesn�t _ckin build Buildfile: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml check.generated.isuptodate: generate.code: compile: compile_main: [javac] Compiling 1850 source files to D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\target\classes\main BUILD FAILED D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:81: The following error occurred while executing this line: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:89: The following error occurred while executing this line: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:109: Error running javac.exe compiler Total time: 1 second ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ Quickfixj-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfixj-users Seems too obvious but have you done this .. Eclipse -> Preferences -> Ant -> runtime -> Global Entries and check for an entry for tools.jar (its in your jdk), if its not there add it e.g. C:\Program Files\Java\jdk1.6.0_22\lib\tools.jar From: ma...@da... To: qui...@li... Date: Mon, 9 May 2011 12:14:31 -0400 Subject: [Quickfixj-users] (no subject) QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ Following directions for Eclipse, This piece of shit doesn't _ckin build Buildfile: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml check.generated.isuptodate: generate.code: compile: compile_main: [javac] Compiling 1850 source files to D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\target\classes\main BUILD FAILED D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:81: The following error occurred while executing this line: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:89: The following error occurred while executing this line: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:109: Error running javac.exe compiler Total time: 1 second Following directions for Eclipse, This piece of shit doesn�t _ckin build Buildfile: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml check.generated.isuptodate: generate.code: compile: compile_main: [javac] Compiling 1850 source files to D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\target\classes\main BUILD FAILED D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:81: The following error occurred while executing this line: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:89: The following error occurred while executing this line: D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:109: Error running javac.exe compiler Total time: 1 second ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ Quickfixj-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfixj-users ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ Quickfixj-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfixj-users |
|
From: John V. <jva...@co...> - 2011-05-09 16:50:46
|
Is _ckin a class definition that's failing or something? I don't see that in the Java docs. John Vatianou Connamara Systems, LLC Direct: 312-235-6772 Email: jva...@co... www.connamara.com On Mon, May 9, 2011 at 11:14 AM, David Hulme <ma...@da...> wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > > > Following directions for Eclipse, This piece of shit doesn’t _ckin build > > > > > > Buildfile: *D:\Eclipse > Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml* > > *check.generated.isuptodate*: > > *generate.code*: > > *compile*: > > *compile_main*: > > [*javac*] Compiling 1850 source files to D:\Eclipse > Workspaces\quickfixj-1.5.0-ws\quickfixj\core\target\classes\main > > > > BUILD FAILED > > *D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:81: The > following error occurred while executing this line:* > > *D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:89: The > following error occurred while executing this line:* > > *D:\Eclipse Workspaces\quickfixj-1.5.0-ws\quickfixj\core\build.xml:109: > Error running javac.exe compiler* > > > > Total time: 1 second > > > > > ------------------------------------------------------------------------------ > WhatsUp Gold - Download Free Network Management Software > The most intuitive, comprehensive, and cost-effective network > management toolset available today. Delivers lowest initial > acquisition cost and overall TCO of any competing solution. > http://p.sf.net/sfu/whatsupgold-sd > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > |
|
From: Andrew M. <mun...@gm...> - 2019-07-11 15:03:48
|
I'm receiving FIX 4.4 ExecutionReport msgs from Bloomberg and rejecting them with: "Rejecting invalid message: quickfix.FieldException: Tag not defined for this message type, field=9610" I'm using the DataDictionary Bloomberg provided. I've rebuilt QF/J 2.1.1 on Windows using the provided DD. My process to rebuild is: - delete all instances of FIX44.modified.xml in the QF directory tree - copy the provided DD to c:\java\qfj-2.1.1-bloomberg-map\quickfixj-messages\quickfixj-messages-fix44\src\main\resources\FIX44.modified.xml - do not modify FIX44.xml - mvn clean package -Dmaven.javadoc.skip=true -DskipTests -PskipBundlePlugin -DskipAT=true Directory of c:\java\qfj-2.1.1-bloomberg-map\quickfixj-messages\quickfixj-messages-fix44\src\main\resources 2019-07-11 09:16 AM 287,770 FIX44.modified.xml 2018-11-12 02:11 PM 336,023 FIX44.xml I get warnings like these. In the past I was able to ignore then when building for other counterparties. [WARNING] quickfixj-all-2.1.1.jar, quickfixj-messages-all-2.1.1.jar define 7190 overlapping classes: [WARNING] quickfixj-all-2.1.1.jar, quickfixj-codegenerator-2.1.1.jar define 5 overlapping classes: [WARNING] quickfixj-core-2.1.1.jar, quickfixj-all-2.1.1.jar define 238 overlapping classes: [WARNING] quickfixj-dictgenerator-2.1.1.jar, quickfixj-all-2.1.1.jar define 13 overlapping classes: [WARNING] quickfixj-core-2.1.1.jar, quickfixj-all-2.1.1.jar, quickfixj-messages-all-2.1.1.jar define 2530 overlapping classes: [WARNING] maven-shade-plugin has detected that some class files are [WARNING] present in two or more JARs. When this happens, only one [WARNING] single version of the class is copied to the uber jar. [WARNING] Usually this is not harmful and you can skip these warnings, [WARNING] otherwise try to manually exclude artifacts based on [WARNING] mvn dependency:tree -Ddetail=true and the above output. [WARNING] See http://maven.apache.org/plugins/maven-shade-plugin/ FIX44.modified.xml has: <message name="ExecutionReport" msgtype="8" msgcat="SingleGeneralOrderHandling"> ... <component name="Notes" required="N"/> </message> <component name="Notes"> <group name="NoNotes" required="N"> <field name="NoteType" required="N"/> <field name="NoteLabel" required="N"/> <field name="NoteText" required="N"/> </group> </component> <field number="9610" name="NoNotes" type="NUMINGROUP"/> <field number="9611" name="NoteType" type="STRING"> <value enum="C" description="CustomerNote"/> <value enum="D" description="DealerNote"/> <value enum="I" description="PrivateOrInternalNote"/> </field> <field number="9612" name="NoteLabel" type="STRING"/> <field number="9613" name="NoteText" type="STRING"/> (cfg file) [DEFAULT] AllowUnknownMsgFields=Y UseDataDictionary=Y AppDataDictionary=./etc/FIX44.modified.xml ValidateFieldsOutOfOrder=Y I can successfully parse the ExecutionReport String they send to XML like this: void parseSingleBlbExec(String data) throws InvalidMessage, ConfigError { DataDictionary sessionDictionary = new DataDictionary("c:\\temp\\FIX44.modified.xml"); appDictionary = new DataDictionary("c:\\temp\\FIX44.modified.xml"); appDictionary.setCheckFieldsOutOfOrder(true); appDictionary.setAllowUnknownMessageFields(false); appDictionary.setCheckUserDefinedFields(true); appDictionary.setCheckUnorderedGroupFields(true); quickfix.fix44.ExecutionReport message = new quickfix.fix44.ExecutionReport(); message.fromString(data, sessionDictionary, appDictionary, true); System.out.println(message.toXML(appDictionary)); } But when the message arrives on a live session I generate a reject. Messages are like this: 8=FIX.4.4|9=1400|35=8|49=BLP_MAP_PROD3|56=XXX_PROD3|34=780|128=914171|347=UTF-8|142=Voice|144=FI|115=DCSVC_278_4|43=Y|122=20190711-11:18:25|52=20190711-14:10:12|30=XOFF|60=20190710-21:38:48.671|150=F|1950=8|31=123.456|151=0|541=20290515|32=99999|423=1|64=20190712|6=123.456|37=VCON:20190710:9999:9|157=58|38=99999|39=2|159=99999.99|669=123.456|460=6|223=0.123|14=999999|854=0|15=USD|75=20190710|106=US TREASURY N/B|17=VCON:20190710:xxxx:x:xx|167=XXXXXX|48=XXXXX86T2|198=3739:20190710:XXXXX:X|470=US|1430=V|381=123456.31|22=1|1913=0|54=2|7014=21|55=[N/A]|236=0.99|118=9999999.49|453=6|448=GS|447=D|452=1|802=2|523=3788|803=4014|523=N|803=4069|448=XXXXXXXXXXX:99999999|447=D|452=11|802=4|523=14|803=4|523=XXX XXXXX|803=9|523=NEW YORK|803=34|523=US|803=38|448=XXXXXXXXX:99999999|447=D|452=12|802=3|523=XXX XX|803=9|523=NEW YORK|803=34|523=US|803=38|448=XXXX|447=D|452=13|802=2|523=99999|803=9999|523=N|803=9999|448=BXT|447=D|452=16|448=XXXXXX:9999999|447=D|452=36|802=3|523=XXXX XXXX|803=9|523=NEW YORK|803=34|523=US|803=38|9610=3|9611=C|9612=Group|9613=XXX.XXX|9611=C|9612=Spread|9613=0|9611=C|9612=Prime|9613=XXX|454=4|455=USXXXXXXXXX|456=4|455=999999999|456=1|455=999999999|456=A|455=T|456=8|768=3|769=20190710-21:38:48.671|770=1|769=20190710-21:39:54.335|770=2|769=20190711-11:18:25.539|770=113|2529=1|2530=100|2531=9.9999999|10=210 8=FIX.4.4|9=195|35=3|34=4|49=XXX_PROD3|52=20190711-14:10:12.422|56=BLP_MAP_PROD3|115=914171|128=DCSVC_278_4|143=Voice|145=FI|45=780|58=Tag not defined for this message type, field=9610|371=9610|372=8|373=2|10=237| Must <component> blocks in the dictionary's message definition appear in the same order that the repeating groups arrive in? What am I overlooking here? Thanks |
|
From: Andrew M. <mun...@gm...> - 2019-07-11 15:22:30
|
Adding subject On Thu, Jul 11, 2019 at 11:05 AM Andrew Munn <mun...@gm...> wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support: > http://www.quickfixj.org/support/ > > > I'm receiving FIX 4.4 ExecutionReport msgs from Bloomberg and rejecting > them with: > > "Rejecting invalid message: quickfix.FieldException: Tag not defined for > this message type, field=9610" > > I'm using the DataDictionary Bloomberg provided. > > I've rebuilt QF/J 2.1.1 on Windows using the provided DD. My process to > rebuild is: > - delete all instances of FIX44.modified.xml in the QF directory tree > - copy the provided DD to > c:\java\qfj-2.1.1-bloomberg-map\quickfixj-messages\quickfixj-messages-fix44\src\main\resources\FIX44.modified.xml > - do not modify FIX44.xml > - mvn clean package -Dmaven.javadoc.skip=true -DskipTests > -PskipBundlePlugin -DskipAT=true > > Directory of > c:\java\qfj-2.1.1-bloomberg-map\quickfixj-messages\quickfixj-messages-fix44\src\main\resources > 2019-07-11 09:16 AM 287,770 FIX44.modified.xml > 2018-11-12 02:11 PM 336,023 FIX44.xml > > I get warnings like these. In the past I was able to ignore then when > building for other counterparties. > > [WARNING] quickfixj-all-2.1.1.jar, quickfixj-messages-all-2.1.1.jar define > 7190 overlapping classes: > [WARNING] quickfixj-all-2.1.1.jar, quickfixj-codegenerator-2.1.1.jar > define 5 overlapping classes: > [WARNING] quickfixj-core-2.1.1.jar, quickfixj-all-2.1.1.jar define 238 > overlapping classes: > [WARNING] quickfixj-dictgenerator-2.1.1.jar, quickfixj-all-2.1.1.jar > define 13 overlapping classes: > [WARNING] quickfixj-core-2.1.1.jar, quickfixj-all-2.1.1.jar, > quickfixj-messages-all-2.1.1.jar define 2530 overlapping classes: > [WARNING] maven-shade-plugin has detected that some class files are > [WARNING] present in two or more JARs. When this happens, only one > [WARNING] single version of the class is copied to the uber jar. > [WARNING] Usually this is not harmful and you can skip these warnings, > [WARNING] otherwise try to manually exclude artifacts based on > [WARNING] mvn dependency:tree -Ddetail=true and the above output. > [WARNING] See http://maven.apache.org/plugins/maven-shade-plugin/ > > FIX44.modified.xml has: > > <message name="ExecutionReport" msgtype="8" > msgcat="SingleGeneralOrderHandling"> > ... > <component name="Notes" required="N"/> > </message> > > <component name="Notes"> > <group name="NoNotes" required="N"> > <field name="NoteType" required="N"/> > <field name="NoteLabel" required="N"/> > <field name="NoteText" required="N"/> > </group> > </component> > > <field number="9610" name="NoNotes" type="NUMINGROUP"/> > <field number="9611" name="NoteType" type="STRING"> > <value enum="C" description="CustomerNote"/> > <value enum="D" description="DealerNote"/> > <value enum="I" description="PrivateOrInternalNote"/> > </field> > <field number="9612" name="NoteLabel" type="STRING"/> > <field number="9613" name="NoteText" type="STRING"/> > > (cfg file) > [DEFAULT] > AllowUnknownMsgFields=Y > UseDataDictionary=Y > AppDataDictionary=./etc/FIX44.modified.xml > ValidateFieldsOutOfOrder=Y > > I can successfully parse the ExecutionReport String they send to XML like > this: > > void parseSingleBlbExec(String data) throws InvalidMessage, ConfigError { > DataDictionary sessionDictionary = new > DataDictionary("c:\\temp\\FIX44.modified.xml"); > appDictionary = new DataDictionary("c:\\temp\\FIX44.modified.xml"); > appDictionary.setCheckFieldsOutOfOrder(true); > appDictionary.setAllowUnknownMessageFields(false); > appDictionary.setCheckUserDefinedFields(true); > appDictionary.setCheckUnorderedGroupFields(true); > quickfix.fix44.ExecutionReport message = new > quickfix.fix44.ExecutionReport(); > message.fromString(data, sessionDictionary, appDictionary, true); > System.out.println(message.toXML(appDictionary)); > } > > But when the message arrives on a live session I generate a reject. > > Messages are like this: > > 8=FIX.4.4|9=1400|35=8|49=BLP_MAP_PROD3|56=XXX_PROD3|34=780|128=914171|347=UTF-8|142=Voice|144=FI|115=DCSVC_278_4|43=Y|122=20190711-11:18:25|52=20190711-14:10:12|30=XOFF|60=20190710-21:38:48.671|150=F|1950=8|31=123.456|151=0|541=20290515|32=99999|423=1|64=20190712|6=123.456|37=VCON:20190710:9999:9|157=58|38=99999|39=2|159=99999.99|669=123.456|460=6|223=0.123|14=999999|854=0|15=USD|75=20190710|106=US > TREASURY > N/B|17=VCON:20190710:xxxx:x:xx|167=XXXXXX|48=XXXXX86T2|198=3739:20190710:XXXXX:X|470=US|1430=V|381=123456.31|22=1|1913=0|54=2|7014=21|55=[N/A]|236=0.99|118=9999999.49|453=6|448=GS|447=D|452=1|802=2|523=3788|803=4014|523=N|803=4069|448=XXXXXXXXXXX:99999999|447=D|452=11|802=4|523=14|803=4|523=XXX > XXXXX|803=9|523=NEW > YORK|803=34|523=US|803=38|448=XXXXXXXXX:99999999|447=D|452=12|802=3|523=XXX > XX|803=9|523=NEW > YORK|803=34|523=US|803=38|448=XXXX|447=D|452=13|802=2|523=99999|803=9999|523=N|803=9999|448=BXT|447=D|452=16|448=XXXXXX:9999999|447=D|452=36|802=3|523=XXXX > XXXX|803=9|523=NEW > YORK|803=34|523=US|803=38|9610=3|9611=C|9612=Group|9613=XXX.XXX|9611=C|9612=Spread|9613=0|9611=C|9612=Prime|9613=XXX|454=4|455=USXXXXXXXXX|456=4|455=999999999|456=1|455=999999999|456=A|455=T|456=8|768=3|769=20190710-21:38:48.671|770=1|769=20190710-21:39:54.335|770=2|769=20190711-11:18:25.539|770=113|2529=1|2530=100|2531=9.9999999|10=210 > > 8=FIX.4.4|9=195|35=3|34=4|49=XXX_PROD3|52=20190711-14:10:12.422|56=BLP_MAP_PROD3|115=914171|128=DCSVC_278_4|143=Voice|145=FI|45=780|58=Tag > not defined for this message type, field=9610|371=9610|372=8|373=2|10=237| > > Must <component> blocks in the dictionary's message definition appear in > the same order that the repeating groups arrive in? > > What am I overlooking here? > > Thanks > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > |
|
From: Grant B. <gbi...@co...> - 2019-07-11 16:33:49
|
Regarding your question about components, please read my SO answer here: https://stackoverflow.com/a/29774713/650475 I think that will clarify the concept. I don't see anything obviously wrong in your message or DD definitions. 9610 is ok to appear in any top-level (not in another group) part of the message, and must be immediately followed by 9611 and then optionally 9612/13 (I'm sure you know all this already). My gut says your engine isn't reading the right config. I mean, what you've posted all looks right. Are you sure you copied the new DD to /etc/FIX44.modified.xml ? On Thu, Jul 11, 2019 at 10:22 AM Andrew Munn <mun...@gm...> wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support: > http://www.quickfixj.org/support/ > > > Adding subject > > > On Thu, Jul 11, 2019 at 11:05 AM Andrew Munn <mun...@gm...> wrote: > >> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ >> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support: >> http://www.quickfixj.org/support/ >> >> >> I'm receiving FIX 4.4 ExecutionReport msgs from Bloomberg and rejecting >> them with: >> >> "Rejecting invalid message: quickfix.FieldException: Tag not defined for >> this message type, field=9610" >> >> I'm using the DataDictionary Bloomberg provided. >> >> I've rebuilt QF/J 2.1.1 on Windows using the provided DD. My process to >> rebuild is: >> - delete all instances of FIX44.modified.xml in the QF directory tree >> - copy the provided DD to >> c:\java\qfj-2.1.1-bloomberg-map\quickfixj-messages\quickfixj-messages-fix44\src\main\resources\FIX44.modified.xml >> - do not modify FIX44.xml >> - mvn clean package -Dmaven.javadoc.skip=true -DskipTests >> -PskipBundlePlugin -DskipAT=true >> >> Directory of >> c:\java\qfj-2.1.1-bloomberg-map\quickfixj-messages\quickfixj-messages-fix44\src\main\resources >> 2019-07-11 09:16 AM 287,770 FIX44.modified.xml >> 2018-11-12 02:11 PM 336,023 FIX44.xml >> >> I get warnings like these. In the past I was able to ignore then when >> building for other counterparties. >> >> [WARNING] quickfixj-all-2.1.1.jar, quickfixj-messages-all-2.1.1.jar >> define 7190 overlapping classes: >> [WARNING] quickfixj-all-2.1.1.jar, quickfixj-codegenerator-2.1.1.jar >> define 5 overlapping classes: >> [WARNING] quickfixj-core-2.1.1.jar, quickfixj-all-2.1.1.jar define 238 >> overlapping classes: >> [WARNING] quickfixj-dictgenerator-2.1.1.jar, quickfixj-all-2.1.1.jar >> define 13 overlapping classes: >> [WARNING] quickfixj-core-2.1.1.jar, quickfixj-all-2.1.1.jar, >> quickfixj-messages-all-2.1.1.jar define 2530 overlapping classes: >> [WARNING] maven-shade-plugin has detected that some class files are >> [WARNING] present in two or more JARs. When this happens, only one >> [WARNING] single version of the class is copied to the uber jar. >> [WARNING] Usually this is not harmful and you can skip these warnings, >> [WARNING] otherwise try to manually exclude artifacts based on >> [WARNING] mvn dependency:tree -Ddetail=true and the above output. >> [WARNING] See http://maven.apache.org/plugins/maven-shade-plugin/ >> >> FIX44.modified.xml has: >> >> <message name="ExecutionReport" msgtype="8" >> msgcat="SingleGeneralOrderHandling"> >> ... >> <component name="Notes" required="N"/> >> </message> >> >> <component name="Notes"> >> <group name="NoNotes" required="N"> >> <field name="NoteType" required="N"/> >> <field name="NoteLabel" required="N"/> >> <field name="NoteText" required="N"/> >> </group> >> </component> >> >> <field number="9610" name="NoNotes" type="NUMINGROUP"/> >> <field number="9611" name="NoteType" type="STRING"> >> <value enum="C" description="CustomerNote"/> >> <value enum="D" description="DealerNote"/> >> <value enum="I" description="PrivateOrInternalNote"/> >> </field> >> <field number="9612" name="NoteLabel" type="STRING"/> >> <field number="9613" name="NoteText" type="STRING"/> >> >> (cfg file) >> [DEFAULT] >> AllowUnknownMsgFields=Y >> UseDataDictionary=Y >> AppDataDictionary=./etc/FIX44.modified.xml >> ValidateFieldsOutOfOrder=Y >> >> I can successfully parse the ExecutionReport String they send to XML like >> this: >> >> void parseSingleBlbExec(String data) throws InvalidMessage, ConfigError { >> DataDictionary sessionDictionary = new >> DataDictionary("c:\\temp\\FIX44.modified.xml"); >> appDictionary = new >> DataDictionary("c:\\temp\\FIX44.modified.xml"); >> appDictionary.setCheckFieldsOutOfOrder(true); >> appDictionary.setAllowUnknownMessageFields(false); >> appDictionary.setCheckUserDefinedFields(true); >> appDictionary.setCheckUnorderedGroupFields(true); >> quickfix.fix44.ExecutionReport message = new >> quickfix.fix44.ExecutionReport(); >> message.fromString(data, sessionDictionary, appDictionary, true); >> System.out.println(message.toXML(appDictionary)); >> } >> >> But when the message arrives on a live session I generate a reject. >> >> Messages are like this: >> >> 8=FIX.4.4|9=1400|35=8|49=BLP_MAP_PROD3|56=XXX_PROD3|34=780|128=914171|347=UTF-8|142=Voice|144=FI|115=DCSVC_278_4|43=Y|122=20190711-11:18:25|52=20190711-14:10:12|30=XOFF|60=20190710-21:38:48.671|150=F|1950=8|31=123.456|151=0|541=20290515|32=99999|423=1|64=20190712|6=123.456|37=VCON:20190710:9999:9|157=58|38=99999|39=2|159=99999.99|669=123.456|460=6|223=0.123|14=999999|854=0|15=USD|75=20190710|106=US >> TREASURY >> N/B|17=VCON:20190710:xxxx:x:xx|167=XXXXXX|48=XXXXX86T2|198=3739:20190710:XXXXX:X|470=US|1430=V|381=123456.31|22=1|1913=0|54=2|7014=21|55=[N/A]|236=0.99|118=9999999.49|453=6|448=GS|447=D|452=1|802=2|523=3788|803=4014|523=N|803=4069|448=XXXXXXXXXXX:99999999|447=D|452=11|802=4|523=14|803=4|523=XXX >> XXXXX|803=9|523=NEW >> YORK|803=34|523=US|803=38|448=XXXXXXXXX:99999999|447=D|452=12|802=3|523=XXX >> XX|803=9|523=NEW >> YORK|803=34|523=US|803=38|448=XXXX|447=D|452=13|802=2|523=99999|803=9999|523=N|803=9999|448=BXT|447=D|452=16|448=XXXXXX:9999999|447=D|452=36|802=3|523=XXXX >> XXXX|803=9|523=NEW >> YORK|803=34|523=US|803=38|9610=3|9611=C|9612=Group|9613=XXX.XXX|9611=C|9612=Spread|9613=0|9611=C|9612=Prime|9613=XXX|454=4|455=USXXXXXXXXX|456=4|455=999999999|456=1|455=999999999|456=A|455=T|456=8|768=3|769=20190710-21:38:48.671|770=1|769=20190710-21:39:54.335|770=2|769=20190711-11:18:25.539|770=113|2529=1|2530=100|2531=9.9999999|10=210 >> >> 8=FIX.4.4|9=195|35=3|34=4|49=XXX_PROD3|52=20190711-14:10:12.422|56=BLP_MAP_PROD3|115=914171|128=DCSVC_278_4|143=Voice|145=FI|45=780|58=Tag >> not defined for this message type, field=9610|371=9610|372=8|373=2|10=237| >> >> Must <component> blocks in the dictionary's message definition appear in >> the same order that the repeating groups arrive in? >> >> What am I overlooking here? >> >> Thanks >> _______________________________________________ >> Quickfixj-users mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfixj-users >> > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > -- Grant Birchmeier *Connamara Systems, LLC* *Made-To-Measure Trading Solutions.* Exactly what you need. No more. No less. http://connamara.com |
|
From: Andrew M. <mun...@gm...> - 2019-07-11 17:46:40
|
The DD is the one being used. If I rename it temporarily I get
Exception in thread "main" quickfix.ConfigError: Could not find data
dictionary: ./etc/FIX44.modified.xml
tags are present:
$ grep NoNotes2 FIX44.modified.xml
<group name="NoNotes2" required="N">
<field number="9610" name="NoNotes2" type="NUMINGROUP"/>
I tried renaming the group to NoNotes2 in case there was some naming
collision. Could this error be caused by some other field or group naming
collision elsewhere in the DD I was given?
Everything looks ok but I must be overlooking something.
Can I just in-line the Group into the ExecutionReport msg definition or
must Groups live in Components?
On Thu, Jul 11, 2019 at 12:35 PM Grant Birchmeier <gbi...@co...>
wrote:
> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support:
> http://www.quickfixj.org/support/
>
>
> Regarding your question about components, please read my SO answer here:
> https://stackoverflow.com/a/29774713/650475
> I think that will clarify the concept.
>
> I don't see anything obviously wrong in your message or DD definitions.
> 9610 is ok to appear in any top-level (not in another group) part of the
> message, and must be immediately followed by 9611 and then optionally
> 9612/13 (I'm sure you know all this already).
>
> My gut says your engine isn't reading the right config. I mean, what
> you've posted all looks right. Are you sure you copied the new DD to /etc/FIX44.modified.xml
> ?
>
>
> On Thu, Jul 11, 2019 at 10:22 AM Andrew Munn <mun...@gm...> wrote:
>
>> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
>> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support:
>> http://www.quickfixj.org/support/
>>
>>
>> Adding subject
>>
>>
>> On Thu, Jul 11, 2019 at 11:05 AM Andrew Munn <mun...@gm...> wrote:
>>
>>> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
>>> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support:
>>> http://www.quickfixj.org/support/
>>>
>>>
>>> I'm receiving FIX 4.4 ExecutionReport msgs from Bloomberg and rejecting
>>> them with:
>>>
>>> "Rejecting invalid message: quickfix.FieldException: Tag not defined for
>>> this message type, field=9610"
>>>
>>> I'm using the DataDictionary Bloomberg provided.
>>>
>>> I've rebuilt QF/J 2.1.1 on Windows using the provided DD. My process to
>>> rebuild is:
>>> - delete all instances of FIX44.modified.xml in the QF directory tree
>>> - copy the provided DD to
>>> c:\java\qfj-2.1.1-bloomberg-map\quickfixj-messages\quickfixj-messages-fix44\src\main\resources\FIX44.modified.xml
>>> - do not modify FIX44.xml
>>> - mvn clean package -Dmaven.javadoc.skip=true -DskipTests
>>> -PskipBundlePlugin -DskipAT=true
>>>
>>> Directory of
>>> c:\java\qfj-2.1.1-bloomberg-map\quickfixj-messages\quickfixj-messages-fix44\src\main\resources
>>> 2019-07-11 09:16 AM 287,770 FIX44.modified.xml
>>> 2018-11-12 02:11 PM 336,023 FIX44.xml
>>>
>>> I get warnings like these. In the past I was able to ignore then when
>>> building for other counterparties.
>>>
>>> [WARNING] quickfixj-all-2.1.1.jar, quickfixj-messages-all-2.1.1.jar
>>> define 7190 overlapping classes:
>>> [WARNING] quickfixj-all-2.1.1.jar, quickfixj-codegenerator-2.1.1.jar
>>> define 5 overlapping classes:
>>> [WARNING] quickfixj-core-2.1.1.jar, quickfixj-all-2.1.1.jar define 238
>>> overlapping classes:
>>> [WARNING] quickfixj-dictgenerator-2.1.1.jar, quickfixj-all-2.1.1.jar
>>> define 13 overlapping classes:
>>> [WARNING] quickfixj-core-2.1.1.jar, quickfixj-all-2.1.1.jar,
>>> quickfixj-messages-all-2.1.1.jar define 2530 overlapping classes:
>>> [WARNING] maven-shade-plugin has detected that some class files are
>>> [WARNING] present in two or more JARs. When this happens, only one
>>> [WARNING] single version of the class is copied to the uber jar.
>>> [WARNING] Usually this is not harmful and you can skip these warnings,
>>> [WARNING] otherwise try to manually exclude artifacts based on
>>> [WARNING] mvn dependency:tree -Ddetail=true and the above output.
>>> [WARNING] See http://maven.apache.org/plugins/maven-shade-plugin/
>>>
>>> FIX44.modified.xml has:
>>>
>>> <message name="ExecutionReport" msgtype="8"
>>> msgcat="SingleGeneralOrderHandling">
>>> ...
>>> <component name="Notes" required="N"/>
>>> </message>
>>>
>>> <component name="Notes">
>>> <group name="NoNotes" required="N">
>>> <field name="NoteType" required="N"/>
>>> <field name="NoteLabel" required="N"/>
>>> <field name="NoteText" required="N"/>
>>> </group>
>>> </component>
>>>
>>> <field number="9610" name="NoNotes" type="NUMINGROUP"/>
>>> <field number="9611" name="NoteType" type="STRING">
>>> <value enum="C" description="CustomerNote"/>
>>> <value enum="D" description="DealerNote"/>
>>> <value enum="I" description="PrivateOrInternalNote"/>
>>> </field>
>>> <field number="9612" name="NoteLabel" type="STRING"/>
>>> <field number="9613" name="NoteText" type="STRING"/>
>>>
>>> (cfg file)
>>> [DEFAULT]
>>> AllowUnknownMsgFields=Y
>>> UseDataDictionary=Y
>>> AppDataDictionary=./etc/FIX44.modified.xml
>>> ValidateFieldsOutOfOrder=Y
>>>
>>> I can successfully parse the ExecutionReport String they send to XML
>>> like this:
>>>
>>> void parseSingleBlbExec(String data) throws InvalidMessage, ConfigError {
>>> DataDictionary sessionDictionary = new
>>> DataDictionary("c:\\temp\\FIX44.modified.xml");
>>> appDictionary = new
>>> DataDictionary("c:\\temp\\FIX44.modified.xml");
>>> appDictionary.setCheckFieldsOutOfOrder(true);
>>> appDictionary.setAllowUnknownMessageFields(false);
>>> appDictionary.setCheckUserDefinedFields(true);
>>> appDictionary.setCheckUnorderedGroupFields(true);
>>> quickfix.fix44.ExecutionReport message = new
>>> quickfix.fix44.ExecutionReport();
>>> message.fromString(data, sessionDictionary, appDictionary, true);
>>> System.out.println(message.toXML(appDictionary));
>>> }
>>>
>>> But when the message arrives on a live session I generate a reject.
>>>
>>> Messages are like this:
>>>
>>> 8=FIX.4.4|9=1400|35=8|49=BLP_MAP_PROD3|56=XXX_PROD3|34=780|128=914171|347=UTF-8|142=Voice|144=FI|115=DCSVC_278_4|43=Y|122=20190711-11:18:25|52=20190711-14:10:12|30=XOFF|60=20190710-21:38:48.671|150=F|1950=8|31=123.456|151=0|541=20290515|32=99999|423=1|64=20190712|6=123.456|37=VCON:20190710:9999:9|157=58|38=99999|39=2|159=99999.99|669=123.456|460=6|223=0.123|14=999999|854=0|15=USD|75=20190710|106=US
>>> TREASURY
>>> N/B|17=VCON:20190710:xxxx:x:xx|167=XXXXXX|48=XXXXX86T2|198=3739:20190710:XXXXX:X|470=US|1430=V|381=123456.31|22=1|1913=0|54=2|7014=21|55=[N/A]|236=0.99|118=9999999.49|453=6|448=GS|447=D|452=1|802=2|523=3788|803=4014|523=N|803=4069|448=XXXXXXXXXXX:99999999|447=D|452=11|802=4|523=14|803=4|523=XXX
>>> XXXXX|803=9|523=NEW
>>> YORK|803=34|523=US|803=38|448=XXXXXXXXX:99999999|447=D|452=12|802=3|523=XXX
>>> XX|803=9|523=NEW
>>> YORK|803=34|523=US|803=38|448=XXXX|447=D|452=13|802=2|523=99999|803=9999|523=N|803=9999|448=BXT|447=D|452=16|448=XXXXXX:9999999|447=D|452=36|802=3|523=XXXX
>>> XXXX|803=9|523=NEW
>>> YORK|803=34|523=US|803=38|9610=3|9611=C|9612=Group|9613=XXX.XXX|9611=C|9612=Spread|9613=0|9611=C|9612=Prime|9613=XXX|454=4|455=USXXXXXXXXX|456=4|455=999999999|456=1|455=999999999|456=A|455=T|456=8|768=3|769=20190710-21:38:48.671|770=1|769=20190710-21:39:54.335|770=2|769=20190711-11:18:25.539|770=113|2529=1|2530=100|2531=9.9999999|10=210
>>>
>>> 8=FIX.4.4|9=195|35=3|34=4|49=XXX_PROD3|52=20190711-14:10:12.422|56=BLP_MAP_PROD3|115=914171|128=DCSVC_278_4|143=Voice|145=FI|45=780|58=Tag
>>> not defined for this message type, field=9610|371=9610|372=8|373=2|10=237|
>>>
>>> Must <component> blocks in the dictionary's message definition appear in
>>> the same order that the repeating groups arrive in?
>>>
>>> What am I overlooking here?
>>>
>>> Thanks
>>> _______________________________________________
>>> Quickfixj-users mailing list
>>> Qui...@li...
>>> https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>>>
>> _______________________________________________
>> Quickfixj-users mailing list
>> Qui...@li...
>> https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>>
>
>
> --
> Grant Birchmeier
> *Connamara Systems, LLC*
> *Made-To-Measure Trading Solutions.*
> Exactly what you need. No more. No less.
> http://connamara.com
> _______________________________________________
> Quickfixj-users mailing list
> Qui...@li...
> https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>
|
|
From: Andrew M. <mun...@gm...> - 2019-07-11 19:05:28
|
I have confirmed the user running the FIX initiator has read permission on
the FIX44.modified.xml file
Does FIX44.modified.xml completely replace FIX44.xml so I can delete
FIX44.xml or is FIX44.modified.xml just overrideing FIX44.xml?
I renamed a few fields in the DD and rebuild:
<message name="ExecutionReport" msgtype="8"
msgcat="SingleGeneralOrderHandling">
...
<component name="NotesSpecial" required="N"/>
...
</message>
<component name="NotesSpecial">
<group name="NoNotes2" required="N">
<field name="NoteType" required="N"/>
<field name="NoteLabel" required="N"/>
<field name="NoteText" required="N"/>
</group>
</component>
<field number="9610" name="NoNotes2" type="NUMINGROUP"/>
<field number="9611" name="NoteType" type="STRING">
<value enum="C" description="CustomerNote"/>
<value enum="D" description="DealerNote"/>
<value enum="I" description="PrivateOrInternalNote"/>
</field>
<field number="9612" name="NoteLabel" type="STRING"/>
<field number="9613" name="NoteText" type="STRING"/>
I believe my FIX44.modified.xml DD was found in the expected location
during compilation because when
decompiling c:\java\qfj-2.1.1-bloomberg-map\quickfixj-core\target\classes\quickfix\fix44\ExecutionReport.class
I see these methods:
import quickfix.fix44.component.NotesSpecial;
public void set(NotesSpecial component) {
this.setComponent(component);
}
public NotesSpecial get(NotesSpecial component) throws FieldNotFound {
this.getComponent(component);
return component;
}
public NotesSpecial getNotesSpecial() throws FieldNotFound {
return this.get(new NotesSpecial());
}
public void set(quickfix.field.NoNotes2 value) {
this.setField(value);
}
public quickfix.field.NoNotes2 get(quickfix.field.NoNotes2 value)
throws FieldNotFound {
this.getField(value);
return value;
}
public quickfix.field.NoNotes2 getNoNotes2() throws FieldNotFound {
return this.get(new quickfix.field.NoNotes2());
}
public boolean isSet(quickfix.field.NoNotes2 field) {
return this.isSetField(field);
}
public boolean isSetNoNotes2() {
return this.isSetField(9610);
}
And this class:
public static class NoNotes2 extends Group {
static final long serialVersionUID = 20050617L;
private static final int[] ORDER = new int[]{9611, 9612, 9613, 0};
public NoNotes2() {
super(9610, 9611, ORDER);
}
...
}
Does all that look correct?
It feels like my initiator is not reading my DD but it must or I would not
see the ConfigError exception when I remove the DD and restart, right?
A possible additional clue is I also see this reject on ExecutionReports
Rejecting invalid message: quickfix.FieldException: Tag appears more than
once, field=2669
DD has:
<message name="ExecutionReport" msgtype="8"
msgcat="SingleGeneralOrderHandling">
...
<component name="TrdRegPublicationGrp" required="N"/>
...
</message>
<field number="2668" name="NoTrdRegPublications" type="NUMINGROUP"/>
<field number="2669" name="TrdRegPublicationType" type="INT">
<value enum="0" description="PreTradeTransparencyWaiver"/>
<value enum="1" description="PostTradeDeferral"/>
<value enum="2" description="ExemptedFromPublication"/>
</field>
<component name="TrdRegPublicationGrp">
<group name="NoTrdRegPublications" required="N">
<field name="TrdRegPublicationType" required="N"/>
<field name="TrdRegPublicationReason" required="N"/>
</group>
</component>
On Thu, Jul 11, 2019 at 1:46 PM Andrew Munn <mun...@gm...> wrote:
> The DD is the one being used. If I rename it temporarily I get
> Exception in thread "main" quickfix.ConfigError: Could not find data
> dictionary: ./etc/FIX44.modified.xml
>
> tags are present:
>
> $ grep NoNotes2 FIX44.modified.xml
> <group name="NoNotes2" required="N">
> <field number="9610" name="NoNotes2" type="NUMINGROUP"/>
>
> I tried renaming the group to NoNotes2 in case there was some naming
> collision. Could this error be caused by some other field or group naming
> collision elsewhere in the DD I was given?
>
> Everything looks ok but I must be overlooking something.
>
> Can I just in-line the Group into the ExecutionReport msg definition or
> must Groups live in Components?
>
> On Thu, Jul 11, 2019 at 12:35 PM Grant Birchmeier <
> gbi...@co...> wrote:
>
>> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
>> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support:
>> http://www.quickfixj.org/support/
>>
>>
>> Regarding your question about components, please read my SO answer here:
>> https://stackoverflow.com/a/29774713/650475
>> I think that will clarify the concept.
>>
>> I don't see anything obviously wrong in your message or DD definitions.
>> 9610 is ok to appear in any top-level (not in another group) part of the
>> message, and must be immediately followed by 9611 and then optionally
>> 9612/13 (I'm sure you know all this already).
>>
>> My gut says your engine isn't reading the right config. I mean, what
>> you've posted all looks right. Are you sure you copied the new DD to /etc/FIX44.modified.xml
>> ?
>>
>>
>> On Thu, Jul 11, 2019 at 10:22 AM Andrew Munn <mun...@gm...> wrote:
>>
>>> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
>>> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support:
>>> http://www.quickfixj.org/support/
>>>
>>>
>>> Adding subject
>>>
>>>
>>> On Thu, Jul 11, 2019 at 11:05 AM Andrew Munn <mun...@gm...> wrote:
>>>
>>>> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
>>>> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J>
>>>> Support: http://www.quickfixj.org/support/
>>>>
>>>>
>>>> I'm receiving FIX 4.4 ExecutionReport msgs from Bloomberg and rejecting
>>>> them with:
>>>>
>>>> "Rejecting invalid message: quickfix.FieldException: Tag not defined
>>>> for this message type, field=9610"
>>>>
>>>> I'm using the DataDictionary Bloomberg provided.
>>>>
>>>> I've rebuilt QF/J 2.1.1 on Windows using the provided DD. My process
>>>> to rebuild is:
>>>> - delete all instances of FIX44.modified.xml in the QF directory tree
>>>> - copy the provided DD to
>>>> c:\java\qfj-2.1.1-bloomberg-map\quickfixj-messages\quickfixj-messages-fix44\src\main\resources\FIX44.modified.xml
>>>> - do not modify FIX44.xml
>>>> - mvn clean package -Dmaven.javadoc.skip=true -DskipTests
>>>> -PskipBundlePlugin -DskipAT=true
>>>>
>>>> Directory of
>>>> c:\java\qfj-2.1.1-bloomberg-map\quickfixj-messages\quickfixj-messages-fix44\src\main\resources
>>>> 2019-07-11 09:16 AM 287,770 FIX44.modified.xml
>>>> 2018-11-12 02:11 PM 336,023 FIX44.xml
>>>>
>>>> I get warnings like these. In the past I was able to ignore then when
>>>> building for other counterparties.
>>>>
>>>> [WARNING] quickfixj-all-2.1.1.jar, quickfixj-messages-all-2.1.1.jar
>>>> define 7190 overlapping classes:
>>>> [WARNING] quickfixj-all-2.1.1.jar, quickfixj-codegenerator-2.1.1.jar
>>>> define 5 overlapping classes:
>>>> [WARNING] quickfixj-core-2.1.1.jar, quickfixj-all-2.1.1.jar define 238
>>>> overlapping classes:
>>>> [WARNING] quickfixj-dictgenerator-2.1.1.jar, quickfixj-all-2.1.1.jar
>>>> define 13 overlapping classes:
>>>> [WARNING] quickfixj-core-2.1.1.jar, quickfixj-all-2.1.1.jar,
>>>> quickfixj-messages-all-2.1.1.jar define 2530 overlapping classes:
>>>> [WARNING] maven-shade-plugin has detected that some class files are
>>>> [WARNING] present in two or more JARs. When this happens, only one
>>>> [WARNING] single version of the class is copied to the uber jar.
>>>> [WARNING] Usually this is not harmful and you can skip these warnings,
>>>> [WARNING] otherwise try to manually exclude artifacts based on
>>>> [WARNING] mvn dependency:tree -Ddetail=true and the above output.
>>>> [WARNING] See http://maven.apache.org/plugins/maven-shade-plugin/
>>>>
>>>> FIX44.modified.xml has:
>>>>
>>>> <message name="ExecutionReport" msgtype="8"
>>>> msgcat="SingleGeneralOrderHandling">
>>>> ...
>>>> <component name="Notes" required="N"/>
>>>> </message>
>>>>
>>>> <component name="Notes">
>>>> <group name="NoNotes" required="N">
>>>> <field name="NoteType" required="N"/>
>>>> <field name="NoteLabel" required="N"/>
>>>> <field name="NoteText" required="N"/>
>>>> </group>
>>>> </component>
>>>>
>>>> <field number="9610" name="NoNotes" type="NUMINGROUP"/>
>>>> <field number="9611" name="NoteType" type="STRING">
>>>> <value enum="C" description="CustomerNote"/>
>>>> <value enum="D" description="DealerNote"/>
>>>> <value enum="I" description="PrivateOrInternalNote"/>
>>>> </field>
>>>> <field number="9612" name="NoteLabel" type="STRING"/>
>>>> <field number="9613" name="NoteText" type="STRING"/>
>>>>
>>>> (cfg file)
>>>> [DEFAULT]
>>>> AllowUnknownMsgFields=Y
>>>> UseDataDictionary=Y
>>>> AppDataDictionary=./etc/FIX44.modified.xml
>>>> ValidateFieldsOutOfOrder=Y
>>>>
>>>> I can successfully parse the ExecutionReport String they send to XML
>>>> like this:
>>>>
>>>> void parseSingleBlbExec(String data) throws InvalidMessage, ConfigError
>>>> {
>>>> DataDictionary sessionDictionary = new
>>>> DataDictionary("c:\\temp\\FIX44.modified.xml");
>>>> appDictionary = new
>>>> DataDictionary("c:\\temp\\FIX44.modified.xml");
>>>> appDictionary.setCheckFieldsOutOfOrder(true);
>>>> appDictionary.setAllowUnknownMessageFields(false);
>>>> appDictionary.setCheckUserDefinedFields(true);
>>>> appDictionary.setCheckUnorderedGroupFields(true);
>>>> quickfix.fix44.ExecutionReport message = new
>>>> quickfix.fix44.ExecutionReport();
>>>> message.fromString(data, sessionDictionary, appDictionary,
>>>> true);
>>>> System.out.println(message.toXML(appDictionary));
>>>> }
>>>>
>>>> But when the message arrives on a live session I generate a reject.
>>>>
>>>> Messages are like this:
>>>>
>>>> 8=FIX.4.4|9=1400|35=8|49=BLP_MAP_PROD3|56=XXX_PROD3|34=780|128=914171|347=UTF-8|142=Voice|144=FI|115=DCSVC_278_4|43=Y|122=20190711-11:18:25|52=20190711-14:10:12|30=XOFF|60=20190710-21:38:48.671|150=F|1950=8|31=123.456|151=0|541=20290515|32=99999|423=1|64=20190712|6=123.456|37=VCON:20190710:9999:9|157=58|38=99999|39=2|159=99999.99|669=123.456|460=6|223=0.123|14=999999|854=0|15=USD|75=20190710|106=US
>>>> TREASURY
>>>> N/B|17=VCON:20190710:xxxx:x:xx|167=XXXXXX|48=XXXXX86T2|198=3739:20190710:XXXXX:X|470=US|1430=V|381=123456.31|22=1|1913=0|54=2|7014=21|55=[N/A]|236=0.99|118=9999999.49|453=6|448=GS|447=D|452=1|802=2|523=3788|803=4014|523=N|803=4069|448=XXXXXXXXXXX:99999999|447=D|452=11|802=4|523=14|803=4|523=XXX
>>>> XXXXX|803=9|523=NEW
>>>> YORK|803=34|523=US|803=38|448=XXXXXXXXX:99999999|447=D|452=12|802=3|523=XXX
>>>> XX|803=9|523=NEW
>>>> YORK|803=34|523=US|803=38|448=XXXX|447=D|452=13|802=2|523=99999|803=9999|523=N|803=9999|448=BXT|447=D|452=16|448=XXXXXX:9999999|447=D|452=36|802=3|523=XXXX
>>>> XXXX|803=9|523=NEW
>>>> YORK|803=34|523=US|803=38|9610=3|9611=C|9612=Group|9613=XXX.XXX|9611=C|9612=Spread|9613=0|9611=C|9612=Prime|9613=XXX|454=4|455=USXXXXXXXXX|456=4|455=999999999|456=1|455=999999999|456=A|455=T|456=8|768=3|769=20190710-21:38:48.671|770=1|769=20190710-21:39:54.335|770=2|769=20190711-11:18:25.539|770=113|2529=1|2530=100|2531=9.9999999|10=210
>>>>
>>>> 8=FIX.4.4|9=195|35=3|34=4|49=XXX_PROD3|52=20190711-14:10:12.422|56=BLP_MAP_PROD3|115=914171|128=DCSVC_278_4|143=Voice|145=FI|45=780|58=Tag
>>>> not defined for this message type, field=9610|371=9610|372=8|373=2|10=237|
>>>>
>>>> Must <component> blocks in the dictionary's message definition appear
>>>> in the same order that the repeating groups arrive in?
>>>>
>>>> What am I overlooking here?
>>>>
>>>> Thanks
>>>> _______________________________________________
>>>> Quickfixj-users mailing list
>>>> Qui...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>>>>
>>> _______________________________________________
>>> Quickfixj-users mailing list
>>> Qui...@li...
>>> https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>>>
>>
>>
>> --
>> Grant Birchmeier
>> *Connamara Systems, LLC*
>> *Made-To-Measure Trading Solutions.*
>> Exactly what you need. No more. No less.
>> http://connamara.com
>> _______________________________________________
>> Quickfixj-users mailing list
>> Qui...@li...
>> https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>>
>
|
|
From: Grant B. <gbi...@co...> - 2019-07-11 19:50:21
|
"A possible additional clue is I also see this reject on ExecutionReports Rejecting invalid message: quickfix.FieldException: Tag appears more than once, field=2669" Oh, man, investigate that one first. To me, this says that there is likely an error in Bloomberg's DD regarding a repeating group. The parser is terminating the group early because it found a field that didn't belong in it, and it screws up everything it parses after. I think your only choice is to take that message and manually parse it against your modified DD to find what's wrong. By the way, this is normal. Don't blindly trust counterparty-supplied DDs. Always suspect them of having errors. On Thu, Jul 11, 2019 at 2:05 PM Andrew Munn <mun...@gm...> wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support: > http://www.quickfixj.org/support/ > > > I have confirmed the user running the FIX initiator has read permission on > the FIX44.modified.xml file > > Does FIX44.modified.xml completely replace FIX44.xml so I can delete > FIX44.xml or is FIX44.modified.xml just overrideing FIX44.xml? > > I renamed a few fields in the DD and rebuild: > > <message name="ExecutionReport" msgtype="8" > msgcat="SingleGeneralOrderHandling"> > ... > <component name="NotesSpecial" required="N"/> > ... > </message> > > <component name="NotesSpecial"> > <group name="NoNotes2" required="N"> > <field name="NoteType" required="N"/> > <field name="NoteLabel" required="N"/> > <field name="NoteText" required="N"/> > </group> > </component> > > <field number="9610" name="NoNotes2" type="NUMINGROUP"/> > <field number="9611" name="NoteType" type="STRING"> > <value enum="C" description="CustomerNote"/> > <value enum="D" description="DealerNote"/> > <value enum="I" description="PrivateOrInternalNote"/> > </field> > <field number="9612" name="NoteLabel" type="STRING"/> > <field number="9613" name="NoteText" type="STRING"/> > > I believe my FIX44.modified.xml DD was found in the expected location > during compilation because when > decompiling c:\java\qfj-2.1.1-bloomberg-map\quickfixj-core\target\classes\quickfix\fix44\ExecutionReport.class > I see these methods: > > import quickfix.fix44.component.NotesSpecial; > public void set(NotesSpecial component) { > this.setComponent(component); > } > > public NotesSpecial get(NotesSpecial component) throws FieldNotFound { > this.getComponent(component); > return component; > } > > public NotesSpecial getNotesSpecial() throws FieldNotFound { > return this.get(new NotesSpecial()); > } > > public void set(quickfix.field.NoNotes2 value) { > this.setField(value); > } > > public quickfix.field.NoNotes2 get(quickfix.field.NoNotes2 value) > throws FieldNotFound { > this.getField(value); > return value; > } > > public quickfix.field.NoNotes2 getNoNotes2() throws FieldNotFound { > return this.get(new quickfix.field.NoNotes2()); > } > > public boolean isSet(quickfix.field.NoNotes2 field) { > return this.isSetField(field); > } > > public boolean isSetNoNotes2() { > return this.isSetField(9610); > } > > And this class: > > public static class NoNotes2 extends Group { > static final long serialVersionUID = 20050617L; > private static final int[] ORDER = new int[]{9611, 9612, 9613, 0}; > > public NoNotes2() { > super(9610, 9611, ORDER); > } > ... > } > > Does all that look correct? > > It feels like my initiator is not reading my DD but it must or I would not > see the ConfigError exception when I remove the DD and restart, right? > > A possible additional clue is I also see this reject on ExecutionReports > > Rejecting invalid message: quickfix.FieldException: Tag appears more > than once, field=2669 > > DD has: > > <message name="ExecutionReport" msgtype="8" > msgcat="SingleGeneralOrderHandling"> > ... > <component name="TrdRegPublicationGrp" required="N"/> > ... > </message> > > <field number="2668" name="NoTrdRegPublications" type="NUMINGROUP"/> > <field number="2669" name="TrdRegPublicationType" type="INT"> > <value enum="0" description="PreTradeTransparencyWaiver"/> > <value enum="1" description="PostTradeDeferral"/> > <value enum="2" description="ExemptedFromPublication"/> > </field> > > <component name="TrdRegPublicationGrp"> > <group name="NoTrdRegPublications" required="N"> > <field name="TrdRegPublicationType" required="N"/> > <field name="TrdRegPublicationReason" required="N"/> > </group> > </component> > > > > > > On Thu, Jul 11, 2019 at 1:46 PM Andrew Munn <mun...@gm...> wrote: > >> The DD is the one being used. If I rename it temporarily I get >> Exception in thread "main" quickfix.ConfigError: Could not find data >> dictionary: ./etc/FIX44.modified.xml >> >> tags are present: >> >> $ grep NoNotes2 FIX44.modified.xml >> <group name="NoNotes2" required="N"> >> <field number="9610" name="NoNotes2" type="NUMINGROUP"/> >> >> I tried renaming the group to NoNotes2 in case there was some naming >> collision. Could this error be caused by some other field or group naming >> collision elsewhere in the DD I was given? >> >> Everything looks ok but I must be overlooking something. >> >> Can I just in-line the Group into the ExecutionReport msg definition or >> must Groups live in Components? >> >> On Thu, Jul 11, 2019 at 12:35 PM Grant Birchmeier < >> gbi...@co...> wrote: >> >>> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ >>> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support: >>> http://www.quickfixj.org/support/ >>> >>> >>> Regarding your question about components, please read my SO answer here: >>> https://stackoverflow.com/a/29774713/650475 >>> I think that will clarify the concept. >>> >>> I don't see anything obviously wrong in your message or DD definitions. >>> 9610 is ok to appear in any top-level (not in another group) part of the >>> message, and must be immediately followed by 9611 and then optionally >>> 9612/13 (I'm sure you know all this already). >>> >>> My gut says your engine isn't reading the right config. I mean, what >>> you've posted all looks right. Are you sure you copied the new DD to /etc/FIX44.modified.xml >>> ? >>> >>> >>> On Thu, Jul 11, 2019 at 10:22 AM Andrew Munn <mun...@gm...> wrote: >>> >>>> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ >>>> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> >>>> Support: http://www.quickfixj.org/support/ >>>> >>>> >>>> Adding subject >>>> >>>> >>>> On Thu, Jul 11, 2019 at 11:05 AM Andrew Munn <mun...@gm...> >>>> wrote: >>>> >>>>> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ >>>>> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> >>>>> Support: http://www.quickfixj.org/support/ >>>>> >>>>> >>>>> I'm receiving FIX 4.4 ExecutionReport msgs from Bloomberg and >>>>> rejecting them with: >>>>> >>>>> "Rejecting invalid message: quickfix.FieldException: Tag not defined >>>>> for this message type, field=9610" >>>>> >>>>> I'm using the DataDictionary Bloomberg provided. >>>>> >>>>> I've rebuilt QF/J 2.1.1 on Windows using the provided DD. My process >>>>> to rebuild is: >>>>> - delete all instances of FIX44.modified.xml in the QF directory tree >>>>> - copy the provided DD to >>>>> c:\java\qfj-2.1.1-bloomberg-map\quickfixj-messages\quickfixj-messages-fix44\src\main\resources\FIX44.modified.xml >>>>> - do not modify FIX44.xml >>>>> - mvn clean package -Dmaven.javadoc.skip=true -DskipTests >>>>> -PskipBundlePlugin -DskipAT=true >>>>> >>>>> Directory of >>>>> c:\java\qfj-2.1.1-bloomberg-map\quickfixj-messages\quickfixj-messages-fix44\src\main\resources >>>>> 2019-07-11 09:16 AM 287,770 FIX44.modified.xml >>>>> 2018-11-12 02:11 PM 336,023 FIX44.xml >>>>> >>>>> I get warnings like these. In the past I was able to ignore then when >>>>> building for other counterparties. >>>>> >>>>> [WARNING] quickfixj-all-2.1.1.jar, quickfixj-messages-all-2.1.1.jar >>>>> define 7190 overlapping classes: >>>>> [WARNING] quickfixj-all-2.1.1.jar, quickfixj-codegenerator-2.1.1.jar >>>>> define 5 overlapping classes: >>>>> [WARNING] quickfixj-core-2.1.1.jar, quickfixj-all-2.1.1.jar define 238 >>>>> overlapping classes: >>>>> [WARNING] quickfixj-dictgenerator-2.1.1.jar, quickfixj-all-2.1.1.jar >>>>> define 13 overlapping classes: >>>>> [WARNING] quickfixj-core-2.1.1.jar, quickfixj-all-2.1.1.jar, >>>>> quickfixj-messages-all-2.1.1.jar define 2530 overlapping classes: >>>>> [WARNING] maven-shade-plugin has detected that some class files are >>>>> [WARNING] present in two or more JARs. When this happens, only one >>>>> [WARNING] single version of the class is copied to the uber jar. >>>>> [WARNING] Usually this is not harmful and you can skip these warnings, >>>>> [WARNING] otherwise try to manually exclude artifacts based on >>>>> [WARNING] mvn dependency:tree -Ddetail=true and the above output. >>>>> [WARNING] See http://maven.apache.org/plugins/maven-shade-plugin/ >>>>> >>>>> FIX44.modified.xml has: >>>>> >>>>> <message name="ExecutionReport" msgtype="8" >>>>> msgcat="SingleGeneralOrderHandling"> >>>>> ... >>>>> <component name="Notes" required="N"/> >>>>> </message> >>>>> >>>>> <component name="Notes"> >>>>> <group name="NoNotes" required="N"> >>>>> <field name="NoteType" required="N"/> >>>>> <field name="NoteLabel" required="N"/> >>>>> <field name="NoteText" required="N"/> >>>>> </group> >>>>> </component> >>>>> >>>>> <field number="9610" name="NoNotes" type="NUMINGROUP"/> >>>>> <field number="9611" name="NoteType" type="STRING"> >>>>> <value enum="C" description="CustomerNote"/> >>>>> <value enum="D" description="DealerNote"/> >>>>> <value enum="I" description="PrivateOrInternalNote"/> >>>>> </field> >>>>> <field number="9612" name="NoteLabel" type="STRING"/> >>>>> <field number="9613" name="NoteText" type="STRING"/> >>>>> >>>>> (cfg file) >>>>> [DEFAULT] >>>>> AllowUnknownMsgFields=Y >>>>> UseDataDictionary=Y >>>>> AppDataDictionary=./etc/FIX44.modified.xml >>>>> ValidateFieldsOutOfOrder=Y >>>>> >>>>> I can successfully parse the ExecutionReport String they send to XML >>>>> like this: >>>>> >>>>> void parseSingleBlbExec(String data) throws InvalidMessage, >>>>> ConfigError { >>>>> DataDictionary sessionDictionary = new >>>>> DataDictionary("c:\\temp\\FIX44.modified.xml"); >>>>> appDictionary = new >>>>> DataDictionary("c:\\temp\\FIX44.modified.xml"); >>>>> appDictionary.setCheckFieldsOutOfOrder(true); >>>>> appDictionary.setAllowUnknownMessageFields(false); >>>>> appDictionary.setCheckUserDefinedFields(true); >>>>> appDictionary.setCheckUnorderedGroupFields(true); >>>>> quickfix.fix44.ExecutionReport message = new >>>>> quickfix.fix44.ExecutionReport(); >>>>> message.fromString(data, sessionDictionary, appDictionary, >>>>> true); >>>>> System.out.println(message.toXML(appDictionary)); >>>>> } >>>>> >>>>> But when the message arrives on a live session I generate a reject. >>>>> >>>>> Messages are like this: >>>>> >>>>> 8=FIX.4.4|9=1400|35=8|49=BLP_MAP_PROD3|56=XXX_PROD3|34=780|128=914171|347=UTF-8|142=Voice|144=FI|115=DCSVC_278_4|43=Y|122=20190711-11:18:25|52=20190711-14:10:12|30=XOFF|60=20190710-21:38:48.671|150=F|1950=8|31=123.456|151=0|541=20290515|32=99999|423=1|64=20190712|6=123.456|37=VCON:20190710:9999:9|157=58|38=99999|39=2|159=99999.99|669=123.456|460=6|223=0.123|14=999999|854=0|15=USD|75=20190710|106=US >>>>> TREASURY >>>>> N/B|17=VCON:20190710:xxxx:x:xx|167=XXXXXX|48=XXXXX86T2|198=3739:20190710:XXXXX:X|470=US|1430=V|381=123456.31|22=1|1913=0|54=2|7014=21|55=[N/A]|236=0.99|118=9999999.49|453=6|448=GS|447=D|452=1|802=2|523=3788|803=4014|523=N|803=4069|448=XXXXXXXXXXX:99999999|447=D|452=11|802=4|523=14|803=4|523=XXX >>>>> XXXXX|803=9|523=NEW >>>>> YORK|803=34|523=US|803=38|448=XXXXXXXXX:99999999|447=D|452=12|802=3|523=XXX >>>>> XX|803=9|523=NEW >>>>> YORK|803=34|523=US|803=38|448=XXXX|447=D|452=13|802=2|523=99999|803=9999|523=N|803=9999|448=BXT|447=D|452=16|448=XXXXXX:9999999|447=D|452=36|802=3|523=XXXX >>>>> XXXX|803=9|523=NEW >>>>> YORK|803=34|523=US|803=38|9610=3|9611=C|9612=Group|9613=XXX.XXX|9611=C|9612=Spread|9613=0|9611=C|9612=Prime|9613=XXX|454=4|455=USXXXXXXXXX|456=4|455=999999999|456=1|455=999999999|456=A|455=T|456=8|768=3|769=20190710-21:38:48.671|770=1|769=20190710-21:39:54.335|770=2|769=20190711-11:18:25.539|770=113|2529=1|2530=100|2531=9.9999999|10=210 >>>>> >>>>> 8=FIX.4.4|9=195|35=3|34=4|49=XXX_PROD3|52=20190711-14:10:12.422|56=BLP_MAP_PROD3|115=914171|128=DCSVC_278_4|143=Voice|145=FI|45=780|58=Tag >>>>> not defined for this message type, field=9610|371=9610|372=8|373=2|10=237| >>>>> >>>>> Must <component> blocks in the dictionary's message definition appear >>>>> in the same order that the repeating groups arrive in? >>>>> >>>>> What am I overlooking here? >>>>> >>>>> Thanks >>>>> _______________________________________________ >>>>> Quickfixj-users mailing list >>>>> Qui...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/quickfixj-users >>>>> >>>> _______________________________________________ >>>> Quickfixj-users mailing list >>>> Qui...@li... >>>> https://lists.sourceforge.net/lists/listinfo/quickfixj-users >>>> >>> >>> >>> -- >>> Grant Birchmeier >>> *Connamara Systems, LLC* >>> *Made-To-Measure Trading Solutions.* >>> Exactly what you need. No more. No less. >>> http://connamara.com >>> _______________________________________________ >>> Quickfixj-users mailing list >>> Qui...@li... >>> https://lists.sourceforge.net/lists/listinfo/quickfixj-users >>> >> _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > -- Grant Birchmeier *Connamara Systems, LLC* *Made-To-Measure Trading Solutions.* Exactly what you need. No more. No less. http://connamara.com |
|
From: Pavel T. <pav...@wh...> - 2019-10-01 08:46:10
|
Hi, I use Quickfix/J to send requests to LMAX. Right after openning a new order LMAX disconnects me. According to their support, my server sends TCP FIN. Here is a log from their server: 2019-09-27 UTC 12:54:39.830189 MY_IP ADDRESS > THEIR_IP_ADDRESS 8=TCP|35=FIN Why Quickfix/J (installed on my machine) sends a message of type FIN? Regards, Pavel |
|
From: Christoph J. <chr...@ma...> - 2019-10-01 09:30:05
|
Hi, looking at that log output it looks like an application problem. Usually FIX messages start with 8=FIX. I don't know where 8=TCP is coming from but am pretty sure that QFJ itself is not sending this. How do you send your order? Which method are you calling? Cheers, Chris. On 01.10.19 10:45, Pavel Tashev wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Hi, > > I use Quickfix/J to send requests to LMAX. Right after openning a new order LMAX disconnects me. > According to their support, my server sends TCP FIN. Here is a log from their server: > > 2019-09-27 UTC 12:54:39.830189 MY_IP ADDRESS > THEIR_IP_ADDRESS 8=TCP|35=FIN > > Why Quickfix/J (installed on my machine) sends a message of type FIN? > > Regards, > Pavel > > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users -- Christoph John Software Engineering T +49 241 557080-28 chr...@ma... MACD GmbH Oppenhoffallee 103 52066 Aachen, Germany www.macd.com Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald |