You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(13) |
Jun
(21) |
Jul
(14) |
Aug
(29) |
Sep
(39) |
Oct
(47) |
Nov
(70) |
Dec
(27) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(43) |
Feb
(50) |
Mar
(90) |
Apr
(96) |
May
(84) |
Jun
(40) |
Jul
(58) |
Aug
(55) |
Sep
(55) |
Oct
(52) |
Nov
(38) |
Dec
(75) |
2008 |
Jan
(49) |
Feb
(72) |
Mar
(49) |
Apr
(55) |
May
(21) |
Jun
(31) |
Jul
(47) |
Aug
(59) |
Sep
(59) |
Oct
(77) |
Nov
(51) |
Dec
(54) |
2009 |
Jan
(52) |
Feb
(57) |
Mar
(17) |
Apr
(27) |
May
(44) |
Jun
(46) |
Jul
(69) |
Aug
(38) |
Sep
(39) |
Oct
(45) |
Nov
(38) |
Dec
(37) |
2010 |
Jan
(49) |
Feb
(35) |
Mar
(21) |
Apr
(33) |
May
(52) |
Jun
(28) |
Jul
(39) |
Aug
(34) |
Sep
(21) |
Oct
(82) |
Nov
(36) |
Dec
(20) |
2011 |
Jan
(28) |
Feb
(64) |
Mar
(93) |
Apr
(75) |
May
(151) |
Jun
(77) |
Jul
(35) |
Aug
(53) |
Sep
(56) |
Oct
(36) |
Nov
(94) |
Dec
(59) |
2012 |
Jan
(105) |
Feb
(43) |
Mar
(68) |
Apr
(91) |
May
(45) |
Jun
(18) |
Jul
(103) |
Aug
(77) |
Sep
(45) |
Oct
(59) |
Nov
(58) |
Dec
(43) |
2013 |
Jan
(48) |
Feb
(65) |
Mar
(63) |
Apr
(22) |
May
(41) |
Jun
(60) |
Jul
(43) |
Aug
(17) |
Sep
(20) |
Oct
(20) |
Nov
(42) |
Dec
(43) |
2014 |
Jan
(54) |
Feb
(34) |
Mar
(34) |
Apr
(20) |
May
(31) |
Jun
(39) |
Jul
(66) |
Aug
(22) |
Sep
(52) |
Oct
(22) |
Nov
(67) |
Dec
(70) |
2015 |
Jan
(18) |
Feb
(5) |
Mar
(40) |
Apr
(32) |
May
(62) |
Jun
(28) |
Jul
(86) |
Aug
(44) |
Sep
(61) |
Oct
(65) |
Nov
(8) |
Dec
(19) |
2016 |
Jan
(50) |
Feb
(22) |
Mar
(38) |
Apr
(55) |
May
(30) |
Jun
(42) |
Jul
(11) |
Aug
(9) |
Sep
(4) |
Oct
(51) |
Nov
(38) |
Dec
(31) |
2017 |
Jan
(40) |
Feb
(40) |
Mar
(23) |
Apr
(35) |
May
(121) |
Jun
(55) |
Jul
(37) |
Aug
(16) |
Sep
(27) |
Oct
(109) |
Nov
(67) |
Dec
(23) |
2018 |
Jan
(52) |
Feb
(6) |
Mar
(23) |
Apr
(28) |
May
(32) |
Jun
(20) |
Jul
(20) |
Aug
(22) |
Sep
(8) |
Oct
(33) |
Nov
(32) |
Dec
(13) |
2019 |
Jan
(16) |
Feb
(29) |
Mar
(17) |
Apr
(16) |
May
(1) |
Jun
(2) |
Jul
(25) |
Aug
(50) |
Sep
(17) |
Oct
(29) |
Nov
(16) |
Dec
(7) |
2020 |
Jan
|
Feb
|
Mar
(29) |
Apr
(64) |
May
(25) |
Jun
(49) |
Jul
(15) |
Aug
(10) |
Sep
(37) |
Oct
(20) |
Nov
(19) |
Dec
(9) |
2021 |
Jan
(33) |
Feb
(10) |
Mar
(67) |
Apr
(40) |
May
(70) |
Jun
(33) |
Jul
(14) |
Aug
(10) |
Sep
|
Oct
(7) |
Nov
(6) |
Dec
(16) |
2022 |
Jan
(27) |
Feb
(2) |
Mar
(5) |
Apr
(3) |
May
|
Jun
(2) |
Jul
|
Aug
(1) |
Sep
(6) |
Oct
(2) |
Nov
|
Dec
(10) |
2023 |
Jan
(1) |
Feb
(2) |
Mar
(21) |
Apr
(3) |
May
(15) |
Jun
(3) |
Jul
(4) |
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
(1) |
2024 |
Jan
(7) |
Feb
(2) |
Mar
(8) |
Apr
(11) |
May
(6) |
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
2025 |
Jan
(10) |
Feb
(4) |
Mar
(9) |
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Christoph J. <chr...@ma...> - 2025-01-10 15:12:42
|
This is a bug fix release. It contains only few bug fixes and upgrades the MINA library to 2.2.4 since prior versions are vulnerable to RCE: https://www.cve.org/CVERecord?id=CVE-2024-52046 . However, QFJ is not directly affected by this since it does not use the affected ObjectSerializationCodecFactory. Libraries are available on Sonatype Central or https://github.com/quickfix-j/quickfixj/releases/tag/QFJ_RELEASE_2_3_2 Cheers Chris -- Christoph John Software Engineering D +49 241 557080 28 chr...@ma...<mailto:chr...@ma...> [cid:image001.png@01DB6365.43DB64E0] MACD GmbH Oppenhoffallee 103 52066 Aachen, Germany www.macd.com<http://www.macd.com/> [cid:image002.png@01DB6365.43DB64E0]<https://www.linkedin.com/company/macd/> [cid:image003.png@01DB6365.43DB64E0] <https://www.xing.com/pages/macd> Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald |
From: Felipe W. <fel...@gm...> - 2024-10-20 15:43:17
|
Dear QuickFIX/J Community, I hope this message finds you well. I'm currently using Tibco Spotfire and direct SQL instructions to analyze session events and message logs stored in QuickFIX/J. In my setup, I have separate messages_log tables for incoming and outgoing messages, along with an event_log table. While this approach works, I'm curious if there's an existing open-source tool specifically designed to read these tables and provide a more streamlined interface for data analysis. If not, I'm considering building a solution to address this need. Any suggestions or insights would be greatly appreciated. Thank you for your assistance. Best regards, Felipe Windmoller |
From: Grant B. <gbi...@co...> - 2024-10-10 21:16:52
|
I did end up solving this, but I feel like it should have been simpler. Details in my self-answer to my StackOverflow question here: https://stackoverflow.com/questions/79071860/how-to-regenerate-quickfix-j-sources-from-my-custom-datadictionary On Wed, Oct 9, 2024 at 2:12 PM Grant Birchmeier <gbi...@co...> wrote: > How do I regenerate the message/field sources based on my custom data > dictionary? > > I used to know how to do it back in the `ant` days, but it seems a lot has > changed. I have so far been unable to find any documentation that tells me > what command or task to actually run. > > The readme says to use "mvnw clean install", but I'm not seeing any code > for my new custom fields/messages after I run it. > > Here's what I've done to set it up. > * I added my custom DD xml file > to quickfixj-messages/quickfixj-messages-fix50sp2/src/main/resources > * I updated quickfixj-messages/quickfixj-messages-fix50sp2/pom.xml to > only include my custom DD, and exclude the others > > What do I need to do to actually run the generator? > > Thanks > -Grant > > > > > > -- > <https://www.connamara.com> > > Grant Birchmeier > > Director of Engineering, Connamara > > gbi...@co... > -- <https://www.connamara.com> Grant Birchmeier Director of Engineering, Connamara gbi...@co... -- This email, along with any attachments, is confidential. If you believe you received this message in error, please contact the sender immediately and delete all copies of the message. Thank you from Connamara Systems, LLC. |
From: Grant B. <gbi...@co...> - 2024-10-09 20:20:09
|
How do I regenerate the message/field sources based on my custom data dictionary? I used to know how to do it back in the `ant` days, but it seems a lot has changed. I have so far been unable to find any documentation that tells me what command or task to actually run. The readme says to use "mvnw clean install", but I'm not seeing any code for my new custom fields/messages after I run it. Here's what I've done to set it up. * I added my custom DD xml file to quickfixj-messages/quickfixj-messages-fix50sp2/src/main/resources * I updated quickfixj-messages/quickfixj-messages-fix50sp2/pom.xml to only include my custom DD, and exclude the others What do I need to do to actually run the generator? Thanks -Grant -- <https://www.connamara.com> Grant Birchmeier Director of Engineering, Connamara gbi...@co... -- This email, along with any attachments, is confidential. If you believe you received this message in error, please contact the sender immediately and delete all copies of the message. Thank you from Connamara Systems, LLC. |
From: Christoph J. <chr...@ma...> - 2024-06-02 21:39:13
|
This is the body of the mail |
From: Felipe W. <fel...@gm...> - 2024-06-02 16:37:04
|
Hi Chris, I really appreciate your advices. Thanks a lot! Felipe Windmoller Em dom., 2 de jun. de 2024 13:12, Christoph John <chr...@ma...> escreveu: > QFJ Documentation: http://www.quickfixj.org/documentation/ > QFJ Support: http://www.quickfixj.org/support/ > > > Hi Felipe, > > at first I would advise to use the most current version 2.3.1 but I assume > you are doing that anyway. Former versions contain a nasty bug which an > attacker could use to DOS your FIX connection. > > There also is the AllowedRemoteAddresses config but since you are using a > firewall it probably is not needed. > > And last not least there is a white paper which I recommend reading: > https://www.fixtrading.org/packages/fix-security-white-paper-v1-9/ > But from what I remember you are planning to do the best practices from > that document already. > > Best regards > Chris > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > |
From: Christoph J. <chr...@ma...> - 2024-06-02 16:17:26
|
Hi, That message type was added in FIX5.0SP2 *EP105*, so is not part of the original SP2. You need to alter you data dictionary to contain that message type (or take the dictionary from FIX.Latest) and rebuild QFJ. Instructions on building are on the github site: https://github.com/quickfix-j/quickfixj Or if you are using 3.0.0-SNAPSHOT there is a doc specifically on building custom message builds here: https://github.com/quickfix-j/quickfixj/tree/master/quickfixj-messages Cheers Chris Original mail: >Hi, > >I would like to process PartyRiskLimitsRequest and send back PartyRiskLimitsReportAck. I believe these are part of the FIX 5.0 SP2 message types. > >I do not find them in the quickfixJ 5.0 SP2 package. > >May I ask what the best way for me to support these message types using quickfixJ? > >Thank you! > >Eric -- Christoph John Software Engineering D +49 241 557080 28 chr...@ma...<mailto:chr...@ma...> [cid:image001.png@01DAB036.54707670] MACD GmbH Oppenhoffallee 103 52066 Aachen, Germany www.macd.com<http://www.macd.com/> [cid:image002.png@01DAB036.54707670]<https://www.linkedin.com/company/macd/> [cid:image003.png@01DAB036.54707670] <https://www.xing.com/pages/macd> Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald From: mare_delis_0h--- via Quickfixj-users <qui...@li...<mailto:qui...@li...>> Sent: 14 May 2024 11:51 To: qui...@li...<mailto:qui...@li...> Cc: mar...@ic...<mailto:mar...@ic...> Subject: [Quickfixj-users] PartyRiskLimitsRequest QFJ Documentation: http://www.quickfixj.org/documentation/ QFJ Support: http://www.quickfixj.org/support/ _______________________________________________ Quickfixj-users mailing list Qui...@li...<mailto:Qui...@li...> https://lists.sourceforge.net/lists/listinfo/quickfixj-users |
From: Christoph J. <chr...@ma...> - 2024-06-02 16:11:14
|
Hi Felipe, at first I would advise to use the most current version 2.3.1 but I assume you are doing that anyway. Former versions contain a nasty bug which an attacker could use to DOS your FIX connection. There also is the AllowedRemoteAddresses config but since you are using a firewall it probably is not needed. And last not least there is a white paper which I recommend reading: https://www.fixtrading.org/packages/fix-security-white-paper-v1-9/ But from what I remember you are planning to do the best practices from that document already. Best regards Chris |
From: Felipe W. <fel...@gm...> - 2024-05-30 22:14:55
|
Dear QFJ Community, I hope this message finds you well. I am currently exploring the possibility of configuring a QuickFIX/J (QFJ) acceptor that allows connections over the internet. Given the security implications, I would greatly appreciate your guidance on best practices and any suggestions you might have. Here is the approach I am considering: 1. Firewall Configuration: Only allow connections from whitelisted IP addresses to ensure that only trusted clients can reach the acceptor application. 2. Mutual TLS (mTLS): Implement mTLS for client and server authentication, ensuring that both parties are verified via certificates. 3. Encrypted Data: Use SSL/TLS to encrypt all data transmitted over the FIX session. 4. Session Password: Require a password for the FIX session to add an additional layer of security. I believe that combining these measures will provide a robust security framework for our QFJ acceptor. However, I am seeking confirmation from the community and any additional recommendations you might have. Thank you in advance for your time and assistance. Best regards, Felipe Windmoller |
From: <mar...@ic...> - 2024-05-14 09:50:58
|
Hi, I would like to process PartyRiskLimitsRequest and send back PartyRiskLimitsReportAck. I believe these are part of the FIX 5.0 SP2 message types. I do not find them in the quickfixJ 5.0 SP2 package. May I ask what the best way for me to support these message types using quickfixJ? Thank you! Eric |
From: Grant B. <gbi...@co...> - 2024-05-08 16:19:03
|
You could pretty easily implement your own custom LogFactory to implement asynchronous logging. I see no reason why it wouldn't work, but if the app crashes I might be a little concerned about missed logging during the lag between message received and asynch-log handling. But you can probably code to account for that. On Wed, May 8, 2024 at 11:13 AM Ankit Mehta <ank...@gm...> wrote: > QFJ Documentation: http://www.quickfixj.org/documentation/ > QFJ Support: http://www.quickfixj.org/support/ > > > Sorry, yes the store manages the sequence numbers so it should be logged > synchronously to maintain the order. > But the FileLogPath , that logs the messages and events, do those have to > be mandatorily synchronously logged as well? If not, is there a way to > write those asynchronously? > > Regards, > Ankit > > On Wed, May 8, 2024 at 8:12 PM Grant Birchmeier <gbi...@co...> > wrote: > >> QFJ Documentation: http://www.quickfixj.org/documentation/ >> QFJ Support: http://www.quickfixj.org/support/ >> >> >> The *store* should not be asynchronous -- it literally reflects the state >> of your connection! >> >> Unless I'm missing something...? >> >> On Wed, May 8, 2024 at 6:16 AM Ankit Mehta <ank...@gm...> >> wrote: >> >>> QFJ Documentation: http://www.quickfixj.org/documentation/ >>> QFJ Support: http://www.quickfixj.org/support/ >>> >>> >>> hello team, >>> >>> We have recently moved over to Asynchronous logging using log4j2 for our >>> application to improve the performance during high volume days. >>> >>> While our application is logging asynchronously, we were wondering if >>> there is a way we can get the quickfixj FileStorePath and FileStorePath >>> logging to be switched over to Asynchronous as well? >>> >>> Regards, >>> Ankit >>> _______________________________________________ >>> Quickfixj-users mailing list >>> Qui...@li... >>> https://lists.sourceforge.net/lists/listinfo/quickfixj-users >>> >> >> >> -- >> <https://www.connamara.com> >> >> Grant Birchmeier >> >> Sr. Software Engineer, Connamara >> >> gbi...@co... >> >> This email, along with any attachments, is confidential. If you believe >> you received this message in error, please contact the sender immediately >> and delete all copies of the message. Thank you from Connamara Systems, LLC. >> _______________________________________________ >> 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 > -- <https://www.connamara.com> Grant Birchmeier Sr. Software Engineer, Connamara gbi...@co... -- This email, along with any attachments, is confidential. If you believe you received this message in error, please contact the sender immediately and delete all copies of the message. Thank you from Connamara Systems, LLC. |
From: Ankit M. <ank...@gm...> - 2024-05-08 16:12:43
|
Sorry, yes the store manages the sequence numbers so it should be logged synchronously to maintain the order. But the FileLogPath , that logs the messages and events, do those have to be mandatorily synchronously logged as well? If not, is there a way to write those asynchronously? Regards, Ankit On Wed, May 8, 2024 at 8:12 PM Grant Birchmeier <gbi...@co...> wrote: > QFJ Documentation: http://www.quickfixj.org/documentation/ > QFJ Support: http://www.quickfixj.org/support/ > > > The *store* should not be asynchronous -- it literally reflects the state > of your connection! > > Unless I'm missing something...? > > On Wed, May 8, 2024 at 6:16 AM Ankit Mehta <ank...@gm...> > wrote: > >> QFJ Documentation: http://www.quickfixj.org/documentation/ >> QFJ Support: http://www.quickfixj.org/support/ >> >> >> hello team, >> >> We have recently moved over to Asynchronous logging using log4j2 for our >> application to improve the performance during high volume days. >> >> While our application is logging asynchronously, we were wondering if >> there is a way we can get the quickfixj FileStorePath and FileStorePath >> logging to be switched over to Asynchronous as well? >> >> Regards, >> Ankit >> _______________________________________________ >> Quickfixj-users mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfixj-users >> > > > -- > <https://www.connamara.com> > > Grant Birchmeier > > Sr. Software Engineer, Connamara > > gbi...@co... > > This email, along with any attachments, is confidential. If you believe > you received this message in error, please contact the sender immediately > and delete all copies of the message. Thank you from Connamara Systems, LLC. > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > |
From: Grant B. <gbi...@co...> - 2024-05-08 14:41:09
|
The *store* should not be asynchronous -- it literally reflects the state of your connection! Unless I'm missing something...? On Wed, May 8, 2024 at 6:16 AM Ankit Mehta <ank...@gm...> wrote: > QFJ Documentation: http://www.quickfixj.org/documentation/ > QFJ Support: http://www.quickfixj.org/support/ > > > hello team, > > We have recently moved over to Asynchronous logging using log4j2 for our > application to improve the performance during high volume days. > > While our application is logging asynchronously, we were wondering if > there is a way we can get the quickfixj FileStorePath and FileStorePath > logging to be switched over to Asynchronous as well? > > Regards, > Ankit > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > -- <https://www.connamara.com> Grant Birchmeier Sr. Software Engineer, Connamara gbi...@co... -- This email, along with any attachments, is confidential. If you believe you received this message in error, please contact the sender immediately and delete all copies of the message. Thank you from Connamara Systems, LLC. |
From: Ankit M. <ank...@gm...> - 2024-05-08 11:15:44
|
hello team, We have recently moved over to Asynchronous logging using log4j2 for our application to improve the performance during high volume days. While our application is logging asynchronously, we were wondering if there is a way we can get the quickfixj FileStorePath and FileStorePath logging to be switched over to Asynchronous as well? Regards, Ankit |
From: Philip W. <Phi...@fl...> - 2024-04-10 19:02:42
|
You can find the default dictionary for FIX 5.0 here: https://github.com/quickfix-j/quickfixj/blob/master/quickfixj-messages/quickfixj-messages-fix50/src/main/resources/FIX50.xml Philip Whitehouse Senior Software Engineer, FIX Platform Team, FlexTrade Systems -----Original Message----- From: Gaurav Kumar <kum...@gm...> Sent: Wednesday, April 10, 2024 5:07 PM To: qui...@li... Subject: [Quickfixj-users] FIX 5.0 data dictionary ATTENTION: This email was sent from someone outside of FlexTrade. Always use caution when opening attachments or clicking links. QFJ Documentation: http://www.quickfixj.org/documentation/ QFJ Support: http://www.quickfixj.org/support/ This communication is for informational purposes only. The contents of this transmission are confidential and are intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error, please notify the sender by return email and delete this message from your system. FlexTrade Systems Inc., its subsidiaries and affiliates do not guarantee the completeness and accuracy of this transmission's contents. Moreover, FlexTrade Systems Inc., its subsidiaries and affiliates do not guarantee this communication to be free of viruses and accept no liability for any damage caused thereof. |
From: Colin D. <co...@ma...> - 2024-04-10 18:15:18
|
Quickfix has several FIX 5.0 dictionaries: FIX50.xml, FIX50SP1.xml, and FIX50SP2.xml. Starting with FIX 5.0, though, the dictionaries are split into transport and data, so, you’ll also find FIXT 1.1, which you could consider to be part of the 5.0 spec. > On Apr 10, 2024, at 9:06 AM, Gaurav Kumar <kum...@gm...> wrote: > > QFJ Documentation: http://www.quickfixj.org/documentation/ > QFJ Support: http://www.quickfixj.org/support/ > > > Hi All > > I am new to the FIX, working on FIX 5.0 but I am unable to find the standard data dictionary for the same. > > Does Quickfix uses any default data dictionary for 5.0? Or I need to create one by myself. > > Regards > Gaurav > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users |
From: Grant B. <gbi...@co...> - 2024-04-10 17:10:32
|
You mean this one? https://github.com/quickfix-j/quickfixj/blob/master/quickfixj-messages/quickfixj-messages-fix50/src/main/resources/FIX50.xml And you also need the FIXT11 DD: https://github.com/quickfix-j/quickfixj/blob/master/quickfixj-messages/quickfixj-messages-fixt11/src/main/resources/FIXT11.xml On Wed, Apr 10, 2024 at 11:07 AM Gaurav Kumar <kum...@gm...> wrote: > QFJ Documentation: http://www.quickfixj.org/documentation/ > QFJ Support: http://www.quickfixj.org/support/ > > > Hi All > > I am new to the FIX, working on FIX 5.0 but I am unable to find the > standard data dictionary for the same. > > Does Quickfix uses any default data dictionary for 5.0? Or I need to > create one by myself. > > Regards > Gaurav > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > -- <https://www.connamara.com> Grant Birchmeier Sr. Software Engineer, Connamara gbi...@co... -- This email, along with any attachments, is confidential. If you believe you received this message in error, please contact the sender immediately and delete all copies of the message. Thank you from Connamara Systems, LLC. |
From: Gaurav K. <kum...@gm...> - 2024-04-10 16:07:01
|
Hi All I am new to the FIX, working on FIX 5.0 but I am unable to find the standard data dictionary for the same. Does Quickfix uses any default data dictionary for 5.0? Or I need to create one by myself. Regards Gaurav |
From: Ankit M. <ank...@gm...> - 2024-04-09 08:46:26
|
Thanks Chris Yes , we are evaluating the add on time this is going to introduce with some load testing. Regards, Ankit On Mon, Apr 8, 2024 at 3:44 PM Christoph John <chr...@ma...> wrote: > QFJ Documentation: http://www.quickfixj.org/documentation/ > QFJ Support: http://www.quickfixj.org/support/ > > > Hi Ankit, > > I was not suggesting to use LoggingFilter but just to build your own > filter and take LoggingFilter as an example. 😊 > > I did not use AspectJ yet. But your approach with the hash map should > work. Just bear in mind that you have to treat the message as a String and > need to parse it to find the ID which itself will also cost time. > > Cheers > Chris > > > -- > Christoph John > Software Engineering > > D +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 > > > > Hey Chris, > > > > Following up on this - we are now thinking of using LoggingFilter and > > manage a hash map that will store the trade execution ID as key and the > > receive timestamp as its value. > > Will access the same time then during the actual message translation > layer > > and do further calculations to get network latencies. > > > > AspectJ load weaver option is still open and we might explore that as > well. > > > > Just running by you to see if you could share some expert advice or opine > > on a better way to achieve the same. > > > > Thanks, > > Ankit > > > On Thu, 4 Apr 2024 at 11:42 PM, Ankit Mehta <ank...@gm...> > wrote: > > > Thanks for a reply Chris. > > But I am not sure if this will solve what we were looking for. > > For example, I can think of below implementation of the LoggingFilter - > > Note: We are initiators and use SocketInitiator class for the same. > > As soon as we have initialized the SocketInitiator, it can be followed by > > below piece of code - > > > > DefaultIoFilterChainBuilder builderChain = new > DefaultIoFilterChainBuilder(); > > > > builderCHain.addFirst("logging", new LoggingFilter()); > > > > initiator.setIoFilterChainBuilder(builderChain); > > > > > > But from what I understand - all this will do is just start logging in > the > > logs, whenever a message is received. > > What we were looking for instead is to capture that time somewhere in the > > message itself, which can be later utilized for some analysis (which we > do > > after doing calculations between tag 52 and this newly added field on the > > message, which at present we do inside the fromApp callback) > > > > Maybe my understanding is wrong and I am missing something from what you > > were proposing. Please correct me if that is the case. > > > > Another alternative to achieve this that we have been thinking about is > to > > use AspectJ and then do load weavering to amend the message and add the > new > > receive time field inside the EventStrategy class under the onMessage > > method. > > Appreciate your thoughts on this approach or if you can propose a better > > alternative for our requirement. > > > > Regards, > > Ankit > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > |
From: Christoph J. <chr...@ma...> - 2024-04-08 10:13:08
|
Hi Ankit, I was not suggesting to use LoggingFilter but just to build your own filter and take LoggingFilter as an example. 😊 I did not use AspectJ yet. But your approach with the hash map should work. Just bear in mind that you have to treat the message as a String and need to parse it to find the ID which itself will also cost time. Cheers Chris -- Christoph John Software Engineering D +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 > Hey Chris, > > Following up on this - we are now thinking of using LoggingFilter and > manage a hash map that will store the trade execution ID as key and the > receive timestamp as its value. > Will access the same time then during the actual message translation layer > and do further calculations to get network latencies. > > AspectJ load weaver option is still open and we might explore that as well. > > Just running by you to see if you could share some expert advice or opine > on a better way to achieve the same. > > Thanks, > Ankit On Thu, 4 Apr 2024 at 11:42 PM, Ankit Mehta <ank...@gm...> wrote: > Thanks for a reply Chris. > But I am not sure if this will solve what we were looking for. > For example, I can think of below implementation of the LoggingFilter - > Note: We are initiators and use SocketInitiator class for the same. > As soon as we have initialized the SocketInitiator, it can be followed by > below piece of code - > > DefaultIoFilterChainBuilder builderChain = new DefaultIoFilterChainBuilder(); > > builderCHain.addFirst("logging", new LoggingFilter()); > > initiator.setIoFilterChainBuilder(builderChain); > > > But from what I understand - all this will do is just start logging in the > logs, whenever a message is received. > What we were looking for instead is to capture that time somewhere in the > message itself, which can be later utilized for some analysis (which we do > after doing calculations between tag 52 and this newly added field on the > message, which at present we do inside the fromApp callback) > > Maybe my understanding is wrong and I am missing something from what you > were proposing. Please correct me if that is the case. > > Another alternative to achieve this that we have been thinking about is to > use AspectJ and then do load weavering to amend the message and add the new > receive time field inside the EventStrategy class under the onMessage > method. > Appreciate your thoughts on this approach or if you can propose a better > alternative for our requirement. > > Regards, > Ankit |
From: Ankit M. <ank...@gm...> - 2024-04-05 17:26:11
|
Hey Chris, Following up on this - we are now thinking of using LoggingFilter and manage a hash map that will store the trade execution ID as key and the receive timestamp as its value. Will access the same time then during the actual message translation layer and do further calculations to get network latencies. AspectJ load weaver option is still open and we might explore that as well. Just running by you to see if you could share some expert advice or opine on a better way to achieve the same. Thanks, Ankit On Thu, 4 Apr 2024 at 11:42 PM, Ankit Mehta <ank...@gm...> wrote: > Thanks for a reply Chris. > But I am not sure if this will solve what we were looking for. > For example, I can think of below implementation of the LoggingFilter - > Note: We are initiators and use SocketInitiator class for the same. > As soon as we have initialized the SocketInitiator, it can be followed by > below piece of code - > > DefaultIoFilterChainBuilder builderChain = new DefaultIoFilterChainBuilder(); > > builderCHain.addFirst("logging", new LoggingFilter()); > > initiator.setIoFilterChainBuilder(builderChain); > > > But from what I understand - all this will do is just start logging in the > logs, whenever a message is received. > What we were looking for instead is to capture that time somewhere in the > message itself, which can be later utilized for some analysis (which we do > after doing calculations between tag 52 and this newly added field on the > message, which at present we do inside the fromApp callback) > > Maybe my understanding is wrong and I am missing something from what you > were proposing. Please correct me if that is the case. > > Another alternative to achieve this that we have been thinking about is to > use AspectJ and then do load weavering to amend the message and add the new > receive time field inside the EventStrategy class under the onMessage > method. > Appreciate your thoughts on this approach or if you can propose a better > alternative for our requirement. > > Regards, > Ankit > > > On Thu, Apr 4, 2024 at 3:39 AM Christoph John <chr...@ma...> > wrote: > >> QFJ Documentation: http://www.quickfixj.org/documentation/ >> QFJ Support: http://www.quickfixj.org/support/ >> >> >> Hi >> >> You could try to implement it as a MINA filter and add it as first filter >> in the chain. >> >> >> https://mina.apache.org/mina-project/userguide/ch5-filters/ch5-filters.html >> >> Have a look at e.g. the logging filter. >> >> The filter can then be added to your connector via >> setIoFilterChainBuilder() on the connector. >> >> Hope that helps. >> >> Cheers >> Chris >> >> _______________________________________________ >> Quickfixj-users mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfixj-users >> > |
From: Ankit M. <ank...@gm...> - 2024-04-04 18:13:06
|
Thanks for a reply Chris. But I am not sure if this will solve what we were looking for. For example, I can think of below implementation of the LoggingFilter - Note: We are initiators and use SocketInitiator class for the same. As soon as we have initialized the SocketInitiator, it can be followed by below piece of code - DefaultIoFilterChainBuilder builderChain = new DefaultIoFilterChainBuilder(); builderCHain.addFirst("logging", new LoggingFilter()); initiator.setIoFilterChainBuilder(builderChain); But from what I understand - all this will do is just start logging in the logs, whenever a message is received. What we were looking for instead is to capture that time somewhere in the message itself, which can be later utilized for some analysis (which we do after doing calculations between tag 52 and this newly added field on the message, which at present we do inside the fromApp callback) Maybe my understanding is wrong and I am missing something from what you were proposing. Please correct me if that is the case. Another alternative to achieve this that we have been thinking about is to use AspectJ and then do load weavering to amend the message and add the new receive time field inside the EventStrategy class under the onMessage method. Appreciate your thoughts on this approach or if you can propose a better alternative for our requirement. Regards, Ankit On Thu, Apr 4, 2024 at 3:39 AM Christoph John <chr...@ma...> wrote: > QFJ Documentation: http://www.quickfixj.org/documentation/ > QFJ Support: http://www.quickfixj.org/support/ > > > Hi > > You could try to implement it as a MINA filter and add it as first filter > in the chain. > > https://mina.apache.org/mina-project/userguide/ch5-filters/ch5-filters.html > > Have a look at e.g. the logging filter. > > The filter can then be added to your connector via > setIoFilterChainBuilder() on the connector. > > Hope that helps. > > Cheers > Chris > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > |
From: Christoph J. <chr...@ma...> - 2024-04-03 22:08:01
|
Hi You could try to implement it as a MINA filter and add it as first filter in the chain. https://mina.apache.org/mina-project/userguide/ch5-filters/ch5-filters.html Have a look at e.g. the logging filter. The filter can then be added to your connector via setIoFilterChainBuilder() on the connector. Hope that helps. Cheers Chris |
From: Ankit M. <ank...@gm...> - 2024-04-03 17:28:46
|
hello, wondering if anyone got a chance to have a look at this. Thanks On Wed, Apr 3, 2024 at 12:24 AM Ankit Mehta <ank...@gm...> wrote: > Hello all, > We are using quickfixj to receive trade execution reports for various > venues. > We are interested in capturing certain network latency stats which is > ideally the difference between the venue sending time which is stamped in > tag 52 and the time message actually hit our application. > > Currently we stamp it under the fromApp method of the quickfixj > application. > > The question I have is whether there is a better alternate way to capture > the message received time somewhere in the socket layer, which can give us > a more accurate picture of network latency. > > When I ran the application in DEBUG mode, I noticed that in the > FixMesageDecoder class when the message is first parsed, the time at which > the parsed message is printed is much earlier than the time it hits the > fromApp method. > > That's why it's important for us to capture the receive time as early as > possible so that we can figure out the network latency much more > appropriately if not accurately. > > Eagerly looking forward to hearing some thoughts from you on this. > > Regards, > Ankit > |