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...> - 2019-09-12 10:21:36
|
Hi, you can safely use one SocketInitiator for multiple sessions. The default SocketInitiator has one thread for all sessions. You might want to use a ThreadedSocketInitiator then (has one thread per session) but it is not required. If you used one SocketInitiator per connection it is IMHO easier to start/stop dedicated sessions. You could then simply stop the whole SocketInitiator. I don't know how many sessions you want to handle. Cheers, Chris. On 12.09.19 11:51, Kodippili Arachchige, Asanka wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Hi, > > What is the correct usage of SocketInitiator ? Is it recommended to create a separate session > initiator object for each connection? I came across some code that follows this approach. Can’t > we safely use the same SocketInitiator for multiple connections in a multi-threaded application ? > The documentation suggests that this is possible. I wanted to check if there is might be any > reason to use the one SocketInitiator per connection approach instead. > > Thanks, > > Asanka > > ------------------------------------------------------------------------------------------------------------ > > Please read these warnings and restrictions: > > This e-mail transmission is strictly confidential and intended solely for the ordinary user of the > e-mail address to which it was addressed. It may contain legally privileged and/or CONFIDENTIAL > information. > > The unauthorised use, disclosure, distribution and/or copying of this e-mail or any information it > contains is prohibited and could, in certain circumstances, constitute a criminal offence. > > If you have received this e-mail in error or are not an intended recipient please inform London > Stock Exchange Group (“LSEG”) immediately by return e-mail or telephone 020 7797 1000. > > LSEG may collect, process and retain your personal information for its business purposes. For more > information please see our Privacy Policy <https://www.lseg.com/privacy-and-cookie-policy>. > > We advise that in keeping with good computing practice the recipient of this e-mail should ensure > that it is virus free. We do not accept responsibility for any virus that may be transferred by > way of this e-mail. > > E-mail may be susceptible to data corruption, interception and unauthorised amendment, and we do > not accept liability for any such corruption, interception or amendment or any consequences thereof. > > Calls to London Stock Exchange Group may be recorded to enable LSEG to carry out its regulatory > responsibilities. > > London Stock Exchange Group plc > > 10 Paternoster Square > London > EC4M 7LS > > Registered in England and Wales No 05369106 > > ------------------------------------------------------------------------------------------------------------ > > > > _______________________________________________ > 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 |
|
From: Kodippili A. A. <as...@ls...> - 2019-09-12 10:08:21
|
Hi, What is the correct usage of SocketInitiator ? Is it recommended to create a separate session initiator object for each connection? I came across some code that follows this approach. Can't we safely use the same SocketInitiator for multiple connections in a multi-threaded application ? The documentation suggests that this is possible. I wanted to check if there is might be any reason to use the one SocketInitiator per connection approach instead. Thanks, Asanka ------------------------------------------------------------------------------------------------------------ Please read these warnings and restrictions: This e-mail transmission is strictly confidential and intended solely for the ordinary user of the e-mail address to which it was addressed. It may contain legally privileged and/or CONFIDENTIAL information. The unauthorised use, disclosure, distribution and/or copying of this e-mail or any information it contains is prohibited and could, in certain circumstances, constitute a criminal offence. If you have received this e-mail in error or are not an intended recipient please inform the London Stock Exchange immediately by return e-mail or telephone 020 7797 1000. LSEG may collect, process and retain your personal information for its business purposes. For more information please see our Privacy Policy. We advise that in keeping with good computing practice the recipient of this e-mail should ensure that it is virus free. We do not accept responsibility for any virus that may be transferred by way of this e-mail. E-mail may be susceptible to data corruption, interception and unauthorised amendment, and we do not accept liability for any such corruption, interception or amendment or any consequences thereof. Calls to the London Stock Exchange may be recorded to enable the Exchange to carry out its regulatory responsibilities. London Stock Exchange plc 10 Paternoster Square London EC4M 7LS Registered in England and Wales No 2075721 ------------------------------------------------------------------------------------------------------------ |
|
From: Christoph J. <chr...@ma...> - 2019-09-12 08:13:39
|
Hi Vlad, oh well, yes. This is one of the things that were done to get the dependencies in Maven right IIRC. But I could be wrong, it was some years ago when this was done. However, please feel free the open a PR for this, very much appreciated. https://github.com/quickfix-j/quickfixj/pulls I think all users appreciate if QFJ could be used with a recent Java version without issues. Thanks in advance and best regards Chris. On 12.09.19 09:55, vlad manuel via Quickfixj-users wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Hi all, > > I'm trying to use quickfixj in a Java11 environment with the new java modules. > However, I'm facing some split package issues. > E.g., each version of quickfix messages contain the same "quickfix.fiels" package. > So if I'm using two versions of messages in my module, I'm facing a split package issue which is > no longer tolerated by the jvm. > > I would like to create a PR for this. Looking forward to hearing your opinion on this topic. > > Thanks, > Vlad Muresan > > > _______________________________________________ > 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 |
|
From: vlad m. <vla...@ya...> - 2019-09-12 08:06:04
|
Hi all, I'm trying to use quickfixj in a Java11 environment with the new java modules.However, I'm facing some split package issues.E.g., each version of quickfix messages contain the same "quickfix.fiels" package.So if I'm using two versions of messages in my module, I'm facing a split package issue which is no longer tolerated by the jvm. I would like to create a PR for this. Looking forward to hearing your opinion on this topic. Thanks,Vlad Muresan |
|
From: Aaron B. <aar...@gm...> - 2019-09-03 12:33:02
|
Thanks Chris! I was able to extract the information a few different ways. The one that made the most sense to my particular use case was to run the check during the onLogon callback. I was able to cleanly get the IoSession and extract the information from the filterChain. This was late enough to ensure the handshake had completed, and early enough that the connection won't be able to make any further actions. Really appreciate the pointers on this, they were quite helpful. On Mon, 2019-09-02 at 15:05 +0200, Christoph John wrote: > Or could maybe this method > be extended: > https://github.com/quickfix-j/quickfixj/blob/bab477e0959b7ab7338b6a37f20749bb0f0478c3/quickfixj-core/src/main/java/quickfix/mina/ssl/X509TrustManagerWrapper.java#L58 > > > > Cheers, > > Chris. > > > > On 29.08.19 19:09, Christoph John > wrote: > > > > > > > Maybe this helps a little: > > https://stackoverflow.com/questions/6813929/how-to-get-the-principal-after-a-successful-ssl-handshake-using-mina > > > > > > > > I cannot access the code currently but IIRC you could do > > something > > with a custom TrustManager. But do not remember exactly > > > > > > > > Cheers > > > > Chris > > > > > > > > Am 29. August 2019 16:41:59 MESZ schrieb > > Aaron Bedra <aar...@gm...>: > > > > > Thanks Chris. Yes, this is for the acceptor. > > > The goal is to obtain the client certificate subject > > > dn as > > > early as possible and verify that it is authorized, > > > killing > > > the connection if not. I'll dig further into the MINA > > > session to see if I can get a handle to the socket. > > > > > > > > > > > > On Tue, Aug 27, 2019 at > > > 3:25 PM Christoph John <chr...@ma...> > > > wrote: > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > I did not understand if you want to do this > > > > from client > > > > code or do you want to extend the acceptor? > > > > > > > > IMHO you can only get access to that lowlevel > > > > information using reflection. QFJ uses MINA for > > > > SSL > > > > communication and does not get notified if the > > > > handshake > > > > is completed. > > > > > > > > If I am not mistaken you can get access to the > > > > MINA > > > > SslSession via a session attribute. > > > > > > > > For an example see here: > > > > > > > > > > > > https://github.com/quickfix-j/quickfixj/blob/bab477e0959b7ab7338b6a37f20749bb0f0478c3/quickfixj-core/src/test/java/quickfix/mina/ssl/SSLCertificateTest.java#L470 > > > > > > > > > > > > > > > > I hope I did not misunderstand your question. > > > > > > > > > > > > > > > > Cheers, > > > > > > > > Chris. > > > > > > > > > > > > > > > > > > > > > > > > On > > > > 27.08.19 19:30, Aaron Bedra wrote: > > > > > > > > > > > > > > > > > QuickFIX/J Documentation: > > > > > http://www.quickfixj.org/documentation/QuickFIX/J Support: > > > > > http://www.quickfixj.org/support/ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hello, > > > > > > > > > > > > > > > > > > > > I've been digging through the source code > > > > > for > > > > > acceptors to figure out how to get a > > > > > handle to the > > > > > underlying socket as connections are > > > > > established. > > > > > I have two things I would like to do > > > > > with that > > > > > handle. In my case I am using SSL with > > > > > client > > > > > certificate authentication. All of that > > > > > is working > > > > > properly with the basic configuration > > > > > options. > > > > > > > > > > > > > > > > > > > > 1) Add a handshake completed listener. > > > > > The > > > > > basic structure looks like > > > > > > > > > > > > > > > > > > > > ((SSLSocket) > > > > > socket).addHandshakeCompletedListener(h > > > > > andshakeCompletedEvent > > > > > -> { > > > > > > > > > > try { > > > > > > > > > > X509Certificate cert = > > > > > (X509Certificate)handshakeCompletedEven > > > > > t.getPeerCertificates()[0]; > > > > > > > > > > > > > > > System.out.println(cert.getSubjectDN(). > > > > > getName()); > > > > > > > > > > } catch > > > > > (SSLPeerUnverifiedException e) > > > > > { > > > > > > > > > > e.printStackTrace(); > > > > > > > > > > } > > > > > > > > > > }); > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Ultimately there are some things I would > > > > > like > > > > > to extract from the client certificate > > > > > in order to > > > > > authorize a connection and potentially > > > > > kill it > > > > > once the certificate is available. > > > > > > > > > > > > > > > > > > > > 2) Extract a handle to the connection so > > > > > it can > > > > > be terminated. There may be a reason to > > > > > disable > > > > > connections belonging to a session and > > > > > I would > > > > > like to be able to wire up a mechanism > > > > > to do that > > > > > through the broader management > > > > > components of the > > > > > platform. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ___________________________________________ > > > > > ____Quickfixj-users mailing listQuickfixj- > > > > > us...@li... > > > > > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > > > > > > > > > > > > > > > > > > > > > > > > > -- Christoph JohnSoftware EngineeringT +49 241 > > > > 557...@ma... > > > > MACD GmbHOppenhoffallee 10352066 Aachen, Germanywww.macd.com > > > > Amtsgericht Aachen: HRB 8151 Ust.-Id: DE > > > > 813021663Geschäftsführer: George Macdonald > > > > > > > > > > > > > > > > > > > > > > > > > > > -- Christoph JohnSoftware EngineeringT +49 241 > 557...@ma... > MACD GmbHOppenhoffallee 10352066 Aachen, Germanywww.macd.com > Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663Geschäftsführer: > George Macdonald > > |
|
From: Christoph J. <chr...@ma...> - 2019-09-02 13:05:48
|
Or could maybe this method be extended: https://github.com/quickfix-j/quickfixj/blob/bab477e0959b7ab7338b6a37f20749bb0f0478c3/quickfixj-core/src/main/java/quickfix/mina/ssl/X509TrustManagerWrapper.java#L58 Cheers, Chris. On 29.08.19 19:09, Christoph John wrote: > Maybe this helps a little: > https://stackoverflow.com/questions/6813929/how-to-get-the-principal-after-a-successful-ssl-handshake-using-mina > > I cannot access the code currently but IIRC you could do something with a custom TrustManager. But > do not remember exactly > > Cheers > Chris > > Am 29. August 2019 16:41:59 MESZ schrieb Aaron Bedra <aar...@gm...>: > > Thanks Chris. Yes, this is for the acceptor. The goal is to obtain the client certificate > subject dn as early as possible and verify that it is authorized, killing the connection if > not. I'll dig further into the MINA session to see if I can get a handle to the socket. > > On Tue, Aug 27, 2019 at 3:25 PM Christoph John <chr...@ma... > <mailto:chr...@ma...>> wrote: > > Hi, > > I did not understand if you want to do this from client code or do you want to extend the > acceptor? > IMHO you can only get access to that lowlevel information using reflection. QFJ uses MINA > for SSL communication and does not get notified if the handshake is completed. > If I am not mistaken you can get access to the MINA SslSession via a session attribute. > For an example see here: > https://github.com/quickfix-j/quickfixj/blob/bab477e0959b7ab7338b6a37f20749bb0f0478c3/quickfixj-core/src/test/java/quickfix/mina/ssl/SSLCertificateTest.java#L470 > > I hope I did not misunderstand your question. > > Cheers, > Chris. > > > On 27.08.19 19:30, Aaron Bedra wrote: >> QuickFIX/J Documentation:http://www.quickfixj.org/documentation/ >> QuickFIX/J Support:http://www.quickfixj.org/support/ >> >> >> >> Hello, >> >> I've been digging through the source code for acceptors to figure out how to get a handle >> to the underlying socket as connections are established. I have two things I would like >> to do with that handle. In my case I am using SSL with client certificate authentication. >> All of that is working properly with the basic configuration options. >> >> 1) Add a handshake completed listener. The basic structure looks like >> >> ((SSLSocket) socket).addHandshakeCompletedListener(handshakeCompletedEvent -> { >> try { >> X509Certificate cert = >> (X509Certificate)handshakeCompletedEvent.getPeerCertificates()[0]; >> System.out.println(cert.getSubjectDN().getName()); >> } catch (SSLPeerUnverifiedException e) { >> e.printStackTrace(); >> } >> }); >> >> Ultimately there are some things I would like to extract from the client certificate in >> order to authorize a connection and potentially kill it once the certificate is available. >> >> 2) Extract a handle to the connection so it can be terminated. There may be a reason to >> disable connections belonging to a session and I would like to be able to wire up a >> mechanism to do that through the broader management components of the platform. >> >> >> _______________________________________________ >> Quickfixj-users mailing list >> Qui...@li... <mailto:Qui...@li...> >> https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > -- > Christoph John > Software Engineering > T +49 241 557080-28 > chr...@ma... <mailto:chr...@ma...> > > MACD GmbH > Oppenhoffallee 103 > 52066 Aachen, Germany > www.macd.com <http://www.macd.com> > > Amtsgericht Aachen: HRB 8151 > Ust.-Id: DE 813021663 > Geschäftsführer: George Macdonald > -- 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 |
|
From: Robert N. <rob...@gm...> - 2019-08-31 14:21:44
|
I mean that your dictionary doesn’t have a message type for “j” defined. > On Aug 27, 2019, at 9:48 AM, Pavel Tashev <pav...@wh...> wrote: > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > Now I have another issue. I sent a request to the client and the clients sends its response back to me. > > The question is that QuickfixJ reponds to the client's response with this: > > 8=FIX.4.4|9=106|35=j|34=3|49=SOMENAME|52=20190827-14:38:24.977|56=CLIENTNAME|45=2|58=Unsupported Message Type|372=W|380=3|10=198| > > What's that for? This causes issues because the client does not accept messages of type: "j" (35=j). > > On Tue, Aug 27, 2019 at 5:38 PM Pavel Tashev <pav...@wh... <mailto:pav...@wh...>> wrote: > Ok, that worked! Thanks. > > I was misleaded by: > https://rawgit.com/quickfix-j/quickfixj/master/quickfixj-core/src/main/doc/usermanual/usage/configuration.html <https://rawgit.com/quickfix-j/quickfixj/master/quickfixj-core/src/main/doc/usermanual/usage/configuration.html> > On Tue, Aug 27, 2019 at 5:31 PM Robert Nicholson <rob...@gm... <mailto:rob...@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/ <http://www.quickfixj.org/support/> > > > Have you tried setting your path using DataDictionary= ? > >> On Aug 27, 2019, at 9:25 AM, Pavel Tashev <pav...@wh... <mailto:pav...@wh...>> wrote: >> >> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ <http://www.quickfixj.org/documentation/> >> QuickFIX/J Support: http://www.quickfixj.org/support/ <http://www.quickfixj.org/support/> >> >> >> Hi, >> >> In my *.cfg file I have the following settings: >> >> [DEFAULT] >> ConnectionType=initiator >> BeginString=FIX.4.4 >> >> StartTime=08:30:00 >> EndTime=21:30:00 >> ReconnectInterval=5 >> HeartBtInt=5 >> LogonTimeout=60 >> >> FileStorePath=target/data/sessions/ >> FileLogPath=target/data/logs/ >> >> SenderCompID=SOMENAME >> SocketUseSSL=Y >> >> >> [SESSION] >> TargetCompID=CLIENTNAME >> SocketConnectHost=CLIENTURL >> SocketConnectPort=443 >> UseDataDictionary=Y >> DefaultApplVerID=FIX.4.4 >> AppDataDictionary=/var/quickfixj/automated/DICTIONARY-MARKET-DATA.xml >> >> >> #[SESSION] >> #TargetCompID= CLIENTNAME >> #SocketConnectHost= CLIENTURL >> #SocketConnectPort=443 >> #UseDataDictionary=Y >> #AppDataDictionary= DICTIONARY -TRADING.xml >> >> >> When I send MarketDataRequest the server (the client) returns a response which DOES NOT contain tag 55 and my DICTIONARY does not contain it too. BUT QuickifxJ returns an error saying that tag 55 is missing. I presume that QuickfixJ does not use my dictionary but the default one which contains and requires tag 55. >> >> The question is, what do I do wrong in my cfg file? Why QuickfixJ does not load the dictionary? >> >> Regards. >> >> On Tue, Aug 27, 2019 at 5:12 PM Pavel Tashev <pav...@wh... <mailto:pav...@wh...>> wrote: >> Hi, >> >> In my *.cfg file I have the following settings: >> >> [SESSION] >> TargetCompID=SOMENAME >> SocketConnectHost=SOMEURL >> SocketConnectPort=443 >> UseDataDictionary=Y >> DefaultApplVerID=FIX.4.4 >> AppDataDictionary=/var/quickfixj/automated/DICTIONARY.xml >> >> When I send MarketDataRequest the server (the client) returns a response which DOES NOT contain tag 55 and my DICTIONARY does not contain it too. BUT QuickifxJ returns an error saying that tag 55 is missing. I presume that QuickfixJ does not use my dictionary but the default one which contains and requires tag 55. >> >> The question is, what do I do wrong in my cfg file? Why QuickfixJ does not load the dictionary? >> >> Regards. >> _______________________________________________ >> Quickfixj-users mailing list >> Qui...@li... <mailto:Qui...@li...> >> https://lists.sourceforge.net/lists/listinfo/quickfixj-users <https://lists.sourceforge.net/lists/listinfo/quickfixj-users> > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... <mailto:Qui...@li...> > https://lists.sourceforge.net/lists/listinfo/quickfixj-users <https://lists.sourceforge.net/lists/listinfo/quickfixj-users> > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users |
|
From: Christoph J. <chr...@ma...> - 2019-08-29 17:09:37
|
Maybe this helps a little: https://stackoverflow.com/questions/6813929/how-to-get-the-principal-after-a-successful-ssl-handshake-using-mina I cannot access the code currently but IIRC you could do something with a custom TrustManager. But do not remember exactly Cheers Chris Am 29. August 2019 16:41:59 MESZ schrieb Aaron Bedra <aar...@gm...>: >Thanks Chris. Yes, this is for the acceptor. The goal is to obtain the >client certificate subject dn as early as possible and verify that it >is >authorized, killing the connection if not. I'll dig further into the >MINA >session to see if I can get a handle to the socket. > >On Tue, Aug 27, 2019 at 3:25 PM Christoph John ><chr...@ma...> >wrote: > >> Hi, >> >> I did not understand if you want to do this from client code or do >you >> want to extend the acceptor? >> IMHO you can only get access to that lowlevel information using >> reflection. QFJ uses MINA for SSL communication and does not get >notified >> if the handshake is completed. >> If I am not mistaken you can get access to the MINA SslSession via a >> session attribute. >> For an example see here: >> >> >https://github.com/quickfix-j/quickfixj/blob/bab477e0959b7ab7338b6a37f20749bb0f0478c3/quickfixj-core/src/test/java/quickfix/mina/ssl/SSLCertificateTest.java#L470 >> >> I hope I did not misunderstand your question. >> >> Cheers, >> Chris. >> >> >> On 27.08.19 19:30, Aaron Bedra wrote: >> >> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ >> QuickFIX/J Support: http://www.quickfixj.org/support/ >> >> >> Hello, >> >> I've been digging through the source code for acceptors to figure out >how >> to get a handle to the underlying socket as connections are >established. I >> have two things I would like to do with that handle. In my case I am >using >> SSL with client certificate authentication. All of that is working >properly >> with the basic configuration options. >> >> 1) Add a handshake completed listener. The basic structure looks like >> >> ((SSLSocket) >socket).addHandshakeCompletedListener(handshakeCompletedEvent >> -> { >> try { >> X509Certificate cert = >> (X509Certificate)handshakeCompletedEvent.getPeerCertificates()[0]; >> System.out.println(cert.getSubjectDN().getName()); >> } catch (SSLPeerUnverifiedException e) { >> e.printStackTrace(); >> } >> }); >> >> Ultimately there are some things I would like to extract from the >client >> certificate in order to authorize a connection and potentially kill >it once >> the certificate is available. >> >> 2) Extract a handle to the connection so it can be terminated. There >may >> be a reason to disable connections belonging to a session and I would >like >> to be able to wire up a mechanism to do that through the broader >management >> components of the platform. >> >> >> _______________________________________________ >> Quickfixj-users mailing >lis...@li...://lists.sourceforge.net/lists/listinfo/quickfixj-users >> >> >> -- >> Christoph John >> Software Engineering >> T +49 241 557...@ma... >> >> MACD GmbH >> Oppenhoffallee 103 >> 52066 Aachen, Germanywww.macd.com >> >> Amtsgericht Aachen: HRB 8151 >> Ust.-Id: DE 813021663 >> Geschäftsführer: George Macdonald >> >> |
|
From: Aaron B. <aar...@gm...> - 2019-08-29 14:42:18
|
Thanks Chris. Yes, this is for the acceptor. The goal is to obtain the client certificate subject dn as early as possible and verify that it is authorized, killing the connection if not. I'll dig further into the MINA session to see if I can get a handle to the socket. On Tue, Aug 27, 2019 at 3:25 PM Christoph John <chr...@ma...> wrote: > Hi, > > I did not understand if you want to do this from client code or do you > want to extend the acceptor? > IMHO you can only get access to that lowlevel information using > reflection. QFJ uses MINA for SSL communication and does not get notified > if the handshake is completed. > If I am not mistaken you can get access to the MINA SslSession via a > session attribute. > For an example see here: > > https://github.com/quickfix-j/quickfixj/blob/bab477e0959b7ab7338b6a37f20749bb0f0478c3/quickfixj-core/src/test/java/quickfix/mina/ssl/SSLCertificateTest.java#L470 > > I hope I did not misunderstand your question. > > Cheers, > Chris. > > > On 27.08.19 19:30, Aaron Bedra wrote: > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > Hello, > > I've been digging through the source code for acceptors to figure out how > to get a handle to the underlying socket as connections are established. I > have two things I would like to do with that handle. In my case I am using > SSL with client certificate authentication. All of that is working properly > with the basic configuration options. > > 1) Add a handshake completed listener. The basic structure looks like > > ((SSLSocket) socket).addHandshakeCompletedListener(handshakeCompletedEvent > -> { > try { > X509Certificate cert = > (X509Certificate)handshakeCompletedEvent.getPeerCertificates()[0]; > System.out.println(cert.getSubjectDN().getName()); > } catch (SSLPeerUnverifiedException e) { > e.printStackTrace(); > } > }); > > Ultimately there are some things I would like to extract from the client > certificate in order to authorize a connection and potentially kill it once > the certificate is available. > > 2) Extract a handle to the connection so it can be terminated. There may > be a reason to disable connections belonging to a session and I would like > to be able to wire up a mechanism to do that through the broader management > components of the platform. > > > _______________________________________________ > Quickfixj-users mailing lis...@li...://lists.sourceforge.net/lists/listinfo/quickfixj-users > > > -- > Christoph John > Software Engineering > T +49 241 557...@ma... > > MACD GmbH > Oppenhoffallee 103 > 52066 Aachen, Germanywww.macd.com > > Amtsgericht Aachen: HRB 8151 > Ust.-Id: DE 813021663 > Geschäftsführer: George Macdonald > > |
|
From: Christoph J. <chr...@ma...> - 2019-08-27 20:25:52
|
Hi, I did not understand if you want to do this from client code or do you want to extend the acceptor? IMHO you can only get access to that lowlevel information using reflection. QFJ uses MINA for SSL communication and does not get notified if the handshake is completed. If I am not mistaken you can get access to the MINA SslSession via a session attribute. For an example see here: https://github.com/quickfix-j/quickfixj/blob/bab477e0959b7ab7338b6a37f20749bb0f0478c3/quickfixj-core/src/test/java/quickfix/mina/ssl/SSLCertificateTest.java#L470 I hope I did not misunderstand your question. Cheers, Chris. On 27.08.19 19:30, Aaron Bedra wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Hello, > > I've been digging through the source code for acceptors to figure out how to get a handle to the > underlying socket as connections are established. I have two things I would like to do with that > handle. In my case I am using SSL with client certificate authentication. All of that is working > properly with the basic configuration options. > > 1) Add a handshake completed listener. The basic structure looks like > > ((SSLSocket) socket).addHandshakeCompletedListener(handshakeCompletedEvent -> { > try { > X509Certificate cert = > (X509Certificate)handshakeCompletedEvent.getPeerCertificates()[0]; > System.out.println(cert.getSubjectDN().getName()); > } catch (SSLPeerUnverifiedException e) { > e.printStackTrace(); > } > }); > > Ultimately there are some things I would like to extract from the client certificate in order to > authorize a connection and potentially kill it once the certificate is available. > > 2) Extract a handle to the connection so it can be terminated. There may be a reason to disable > connections belonging to a session and I would like to be able to wire up a mechanism to do that > through the broader management components of the platform. > > > _______________________________________________ > 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 |
|
From: Aaron B. <aar...@gm...> - 2019-08-27 17:31:14
|
Hello,
I've been digging through the source code for acceptors to figure out how
to get a handle to the underlying socket as connections are established. I
have two things I would like to do with that handle. In my case I am using
SSL with client certificate authentication. All of that is working properly
with the basic configuration options.
1) Add a handshake completed listener. The basic structure looks like
((SSLSocket) socket).addHandshakeCompletedListener(handshakeCompletedEvent
-> {
try {
X509Certificate cert =
(X509Certificate)handshakeCompletedEvent.getPeerCertificates()[0];
System.out.println(cert.getSubjectDN().getName());
} catch (SSLPeerUnverifiedException e) {
e.printStackTrace();
}
});
Ultimately there are some things I would like to extract from the client
certificate in order to authorize a connection and potentially kill it once
the certificate is available.
2) Extract a handle to the connection so it can be terminated. There may be
a reason to disable connections belonging to a session and I would like to
be able to wire up a mechanism to do that through the broader management
components of the platform.
|
|
From: Christoph J. <chr...@ma...> - 2019-08-27 14:53:22
|
Please read the following: https://github.com/quickfix-j/quickfixj#basics and especially https://github.com/quickfix-j/quickfixj#receiving-messages Then come back with questions you might have. Thanks, Chris. On 27.08.19 16:48, Pavel Tashev wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Now I have another issue. I sent a request to the client and the clients sends its response back > to me. > > The question is that QuickfixJ reponds to the client's response with this: > > 8=FIX.4.4|9=106|35=j|34=3|49=SOMENAME|52=20190827-14:38:24.977|56=CLIENTNAME|45=2|58=Unsupported > Message Type|372=W|380=3|10=198| > > What's that for? This causes issues because the client does not accept messages of type: "j" (35=j). > > On Tue, Aug 27, 2019 at 5:38 PM Pavel Tashev <pav...@wh... > <mailto:pav...@wh...>> wrote: > > Ok, that worked! Thanks. > > I was misleaded by: > https://rawgit.com/quickfix-j/quickfixj/master/quickfixj-core/src/main/doc/usermanual/usage/configuration.html > > On Tue, Aug 27, 2019 at 5:31 PM Robert Nicholson <rob...@gm... > <mailto:rob...@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/ > > > Have you tried setting your path using DataDictionary= ? > >> On Aug 27, 2019, at 9:25 AM, Pavel Tashev <pav...@wh... >> <mailto:pav...@wh...>> wrote: >> >> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ >> QuickFIX/J Support: http://www.quickfixj.org/support/ >> >> >> Hi, >> >> In my *.cfg file I have the following settings: >> >> [DEFAULT] >> ConnectionType=initiator >> BeginString=FIX.4.4 >> >> StartTime=08:30:00 >> EndTime=21:30:00 >> ReconnectInterval=5 >> HeartBtInt=5 >> LogonTimeout=60 >> >> FileStorePath=target/data/sessions/ >> FileLogPath=target/data/logs/ >> >> SenderCompID=SOMENAME >> SocketUseSSL=Y >> >> >> [SESSION] >> TargetCompID=CLIENTNAME >> SocketConnectHost=CLIENTURL >> SocketConnectPort=443 >> UseDataDictionary=Y >> DefaultApplVerID=FIX.4.4 >> AppDataDictionary=/var/quickfixj/automated/DICTIONARY-MARKET-DATA.xml >> >> >> #[SESSION] >> #TargetCompID= CLIENTNAME >> #SocketConnectHost= CLIENTURL >> #SocketConnectPort=443 >> #UseDataDictionary=Y >> #AppDataDictionary= DICTIONARY -TRADING.xml >> >> >> When I send MarketDataRequest the server (the client) returns a response which DOES NOT >> contain tag 55 and my DICTIONARY does not contain it too. BUT QuickifxJ returns an error >> saying that tag 55 is missing. I presume that QuickfixJ does not use my dictionary but >> the default one which contains and requires tag 55. >> >> The question is, what do I do wrong in my cfg file? Why QuickfixJ does not load the >> dictionary? >> >> Regards. >> >> On Tue, Aug 27, 2019 at 5:12 PM Pavel Tashev <pav...@wh... >> <mailto:pav...@wh...>> wrote: >> >> Hi, >> >> In my *.cfg file I have the following settings: >> >> [SESSION] >> TargetCompID=SOMENAME >> SocketConnectHost=SOMEURL >> SocketConnectPort=443 >> UseDataDictionary=Y >> DefaultApplVerID=FIX.4.4 >> AppDataDictionary=/var/quickfixj/automated/DICTIONARY.xml >> >> When I send MarketDataRequest the server (the client) returns a response which DOES >> NOT contain tag 55 and my DICTIONARY does not contain it too. BUT QuickifxJ returns >> an error saying that tag 55 is missing. I presume that QuickfixJ does not use my >> dictionary but the default one which contains and requires tag 55. >> >> The question is, what do I do wrong in my cfg file? Why QuickfixJ does not load the >> dictionary? >> >> Regards. >> >> _______________________________________________ >> Quickfixj-users mailing list >> Qui...@li... <mailto:Qui...@li...> >> https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... <mailto:Qui...@li...> > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > > > _______________________________________________ > 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 |
|
From: Pavel T. <pav...@wh...> - 2019-08-27 14:49:05
|
Now I have another issue. I sent a request to the client and the clients sends its response back to me. The question is that QuickfixJ reponds to the client's response with this: 8=FIX.4.4|9=106|35=j|34=3|49=SOMENAME|52=20190827-14:38:24.977|56=CLIENTNAME|45=2|58=Unsupported Message Type|372=W|380=3|10=198| What's that for? This causes issues because the client does not accept messages of type: "j" (35=j). On Tue, Aug 27, 2019 at 5:38 PM Pavel Tashev < pav...@wh...> wrote: > Ok, that worked! Thanks. > > I was misleaded by: > > https://rawgit.com/quickfix-j/quickfixj/master/quickfixj-core/src/main/doc/usermanual/usage/configuration.html > > On Tue, Aug 27, 2019 at 5:31 PM Robert Nicholson < > rob...@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/ >> >> >> Have you tried setting your path using DataDictionary= ? >> >> On Aug 27, 2019, at 9:25 AM, Pavel Tashev < >> pav...@wh...> wrote: >> >> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ >> QuickFIX/J Support: http://www.quickfixj.org/support/ >> >> >> Hi, >> >> In my *.cfg file I have the following settings: >> >> [DEFAULT] >> ConnectionType=initiator >> BeginString=FIX.4.4 >> >> StartTime=08:30:00 >> EndTime=21:30:00 >> ReconnectInterval=5 >> HeartBtInt=5 >> LogonTimeout=60 >> >> FileStorePath=target/data/sessions/ >> FileLogPath=target/data/logs/ >> >> SenderCompID=SOMENAME >> SocketUseSSL=Y >> >> >> [SESSION] >> TargetCompID=CLIENTNAME >> SocketConnectHost=CLIENTURL >> SocketConnectPort=443 >> UseDataDictionary=Y >> DefaultApplVerID=FIX.4.4 >> AppDataDictionary=/var/quickfixj/automated/DICTIONARY-MARKET-DATA.xml >> >> >> #[SESSION] >> #TargetCompID= CLIENTNAME >> #SocketConnectHost= CLIENTURL >> #SocketConnectPort=443 >> #UseDataDictionary=Y >> #AppDataDictionary= DICTIONARY -TRADING.xml >> >> >> When I send MarketDataRequest the server (the client) returns a response >> which DOES NOT contain tag 55 and my DICTIONARY does not contain it too. >> BUT QuickifxJ returns an error saying that tag 55 is missing. I presume >> that QuickfixJ does not use my dictionary but the default one which >> contains and requires tag 55. >> >> The question is, what do I do wrong in my cfg file? Why QuickfixJ does >> not load the dictionary? >> >> Regards. >> >> On Tue, Aug 27, 2019 at 5:12 PM Pavel Tashev < >> pav...@wh...> wrote: >> >>> Hi, >>> >>> In my *.cfg file I have the following settings: >>> >>> [SESSION] >>> TargetCompID=SOMENAME >>> SocketConnectHost=SOMEURL >>> SocketConnectPort=443 >>> UseDataDictionary=Y >>> DefaultApplVerID=FIX.4.4 >>> AppDataDictionary=/var/quickfixj/automated/DICTIONARY.xml >>> >>> When I send MarketDataRequest the server (the client) returns a response >>> which DOES NOT contain tag 55 and my DICTIONARY does not contain it too. >>> BUT QuickifxJ returns an error saying that tag 55 is missing. I presume >>> that QuickfixJ does not use my dictionary but the default one which >>> contains and requires tag 55. >>> >>> The question is, what do I do wrong in my cfg file? Why QuickfixJ does >>> not load the dictionary? >>> >>> Regards. >>> >> _______________________________________________ >> 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 >> > |
|
From: Pavel T. <pav...@wh...> - 2019-08-27 14:39:25
|
Ok, that worked! Thanks. I was misleaded by: https://rawgit.com/quickfix-j/quickfixj/master/quickfixj-core/src/main/doc/usermanual/usage/configuration.html On Tue, Aug 27, 2019 at 5:31 PM Robert Nicholson <rob...@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/ > > > Have you tried setting your path using DataDictionary= ? > > On Aug 27, 2019, at 9:25 AM, Pavel Tashev <pav...@wh...> > wrote: > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > Hi, > > In my *.cfg file I have the following settings: > > [DEFAULT] > ConnectionType=initiator > BeginString=FIX.4.4 > > StartTime=08:30:00 > EndTime=21:30:00 > ReconnectInterval=5 > HeartBtInt=5 > LogonTimeout=60 > > FileStorePath=target/data/sessions/ > FileLogPath=target/data/logs/ > > SenderCompID=SOMENAME > SocketUseSSL=Y > > > [SESSION] > TargetCompID=CLIENTNAME > SocketConnectHost=CLIENTURL > SocketConnectPort=443 > UseDataDictionary=Y > DefaultApplVerID=FIX.4.4 > AppDataDictionary=/var/quickfixj/automated/DICTIONARY-MARKET-DATA.xml > > > #[SESSION] > #TargetCompID= CLIENTNAME > #SocketConnectHost= CLIENTURL > #SocketConnectPort=443 > #UseDataDictionary=Y > #AppDataDictionary= DICTIONARY -TRADING.xml > > > When I send MarketDataRequest the server (the client) returns a response > which DOES NOT contain tag 55 and my DICTIONARY does not contain it too. > BUT QuickifxJ returns an error saying that tag 55 is missing. I presume > that QuickfixJ does not use my dictionary but the default one which > contains and requires tag 55. > > The question is, what do I do wrong in my cfg file? Why QuickfixJ does not > load the dictionary? > > Regards. > > On Tue, Aug 27, 2019 at 5:12 PM Pavel Tashev < > pav...@wh...> wrote: > >> Hi, >> >> In my *.cfg file I have the following settings: >> >> [SESSION] >> TargetCompID=SOMENAME >> SocketConnectHost=SOMEURL >> SocketConnectPort=443 >> UseDataDictionary=Y >> DefaultApplVerID=FIX.4.4 >> AppDataDictionary=/var/quickfixj/automated/DICTIONARY.xml >> >> When I send MarketDataRequest the server (the client) returns a response >> which DOES NOT contain tag 55 and my DICTIONARY does not contain it too. >> BUT QuickifxJ returns an error saying that tag 55 is missing. I presume >> that QuickfixJ does not use my dictionary but the default one which >> contains and requires tag 55. >> >> The question is, what do I do wrong in my cfg file? Why QuickfixJ does >> not load the dictionary? >> >> Regards. >> > _______________________________________________ > 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 > |
|
From: Robert N. <rob...@gm...> - 2019-08-27 14:30:56
|
Have you tried setting your path using DataDictionary= ? > On Aug 27, 2019, at 9:25 AM, Pavel Tashev <pav...@wh...> wrote: > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > Hi, > > In my *.cfg file I have the following settings: > > [DEFAULT] > ConnectionType=initiator > BeginString=FIX.4.4 > > StartTime=08:30:00 > EndTime=21:30:00 > ReconnectInterval=5 > HeartBtInt=5 > LogonTimeout=60 > > FileStorePath=target/data/sessions/ > FileLogPath=target/data/logs/ > > SenderCompID=SOMENAME > SocketUseSSL=Y > > > [SESSION] > TargetCompID=CLIENTNAME > SocketConnectHost=CLIENTURL > SocketConnectPort=443 > UseDataDictionary=Y > DefaultApplVerID=FIX.4.4 > AppDataDictionary=/var/quickfixj/automated/DICTIONARY-MARKET-DATA.xml > > > #[SESSION] > #TargetCompID= CLIENTNAME > #SocketConnectHost= CLIENTURL > #SocketConnectPort=443 > #UseDataDictionary=Y > #AppDataDictionary= DICTIONARY -TRADING.xml > > > When I send MarketDataRequest the server (the client) returns a response which DOES NOT contain tag 55 and my DICTIONARY does not contain it too. BUT QuickifxJ returns an error saying that tag 55 is missing. I presume that QuickfixJ does not use my dictionary but the default one which contains and requires tag 55. > > The question is, what do I do wrong in my cfg file? Why QuickfixJ does not load the dictionary? > > Regards. > > On Tue, Aug 27, 2019 at 5:12 PM Pavel Tashev <pav...@wh... <mailto:pav...@wh...>> wrote: > Hi, > > In my *.cfg file I have the following settings: > > [SESSION] > TargetCompID=SOMENAME > SocketConnectHost=SOMEURL > SocketConnectPort=443 > UseDataDictionary=Y > DefaultApplVerID=FIX.4.4 > AppDataDictionary=/var/quickfixj/automated/DICTIONARY.xml > > When I send MarketDataRequest the server (the client) returns a response which DOES NOT contain tag 55 and my DICTIONARY does not contain it too. BUT QuickifxJ returns an error saying that tag 55 is missing. I presume that QuickfixJ does not use my dictionary but the default one which contains and requires tag 55. > > The question is, what do I do wrong in my cfg file? Why QuickfixJ does not load the dictionary? > > Regards. > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users |
|
From: Christoph J. <chr...@ma...> - 2019-08-27 14:29:32
|
Hi, just realized that you need to set DataDictionary and not AppDataDictionary for FIX versions below 5.0. Chris. On 27.08.19 16:25, Pavel Tashev wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Hi, > > In my *.cfg file I have the following settings: > > [DEFAULT] > ConnectionType=initiator > BeginString=FIX.4.4 > > StartTime=08:30:00 > EndTime=21:30:00 > ReconnectInterval=5 > HeartBtInt=5 > LogonTimeout=60 > > FileStorePath=target/data/sessions/ > FileLogPath=target/data/logs/ > > SenderCompID=SOMENAME > SocketUseSSL=Y > > > [SESSION] > TargetCompID=CLIENTNAME > SocketConnectHost=CLIENTURL > SocketConnectPort=443 > UseDataDictionary=Y > DefaultApplVerID=FIX.4.4 > AppDataDictionary=/var/quickfixj/automated/DICTIONARY-MARKET-DATA.xml > > > #[SESSION] > #TargetCompID= CLIENTNAME > #SocketConnectHost= CLIENTURL > #SocketConnectPort=443 > #UseDataDictionary=Y > #AppDataDictionary= DICTIONARY -TRADING.xml > > > When I send MarketDataRequest the server (the client) returns a response which DOES NOT contain > tag 55 and my DICTIONARY does not contain it too. BUT QuickifxJ returns an error saying that tag > 55 is missing. I presume that QuickfixJ does not use my dictionary but the default one which > contains and requires tag 55. > > The question is, what do I do wrong in my cfg file? Why QuickfixJ does not load the dictionary? > > Regards. > > On Tue, Aug 27, 2019 at 5:12 PM Pavel Tashev <pav...@wh... > <mailto:pav...@wh...>> wrote: > > Hi, > > In my *.cfg file I have the following settings: > > [SESSION] > TargetCompID=SOMENAME > SocketConnectHost=SOMEURL > SocketConnectPort=443 > UseDataDictionary=Y > DefaultApplVerID=FIX.4.4 > AppDataDictionary=/var/quickfixj/automated/DICTIONARY.xml > > When I send MarketDataRequest the server (the client) returns a response which DOES NOT > contain tag 55 and my DICTIONARY does not contain it too. BUT QuickifxJ returns an error > saying that tag 55 is missing. I presume that QuickfixJ does not use my dictionary but the > default one which contains and requires tag 55. > > The question is, what do I do wrong in my cfg file? Why QuickfixJ does not load the dictionary? > > Regards. > > > > _______________________________________________ > 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 |
|
From: Pavel T. <pav...@wh...> - 2019-08-27 14:26:20
|
Hi, In my *.cfg file I have the following settings: [DEFAULT] ConnectionType=initiator BeginString=FIX.4.4 StartTime=08:30:00 EndTime=21:30:00 ReconnectInterval=5 HeartBtInt=5 LogonTimeout=60 FileStorePath=target/data/sessions/ FileLogPath=target/data/logs/ SenderCompID=SOMENAME SocketUseSSL=Y [SESSION] TargetCompID=CLIENTNAME SocketConnectHost=CLIENTURL SocketConnectPort=443 UseDataDictionary=Y DefaultApplVerID=FIX.4.4 AppDataDictionary=/var/quickfixj/automated/DICTIONARY-MARKET-DATA.xml #[SESSION] #TargetCompID= CLIENTNAME #SocketConnectHost= CLIENTURL #SocketConnectPort=443 #UseDataDictionary=Y #AppDataDictionary= DICTIONARY -TRADING.xml When I send MarketDataRequest the server (the client) returns a response which DOES NOT contain tag 55 and my DICTIONARY does not contain it too. BUT QuickifxJ returns an error saying that tag 55 is missing. I presume that QuickfixJ does not use my dictionary but the default one which contains and requires tag 55. The question is, what do I do wrong in my cfg file? Why QuickfixJ does not load the dictionary? Regards. On Tue, Aug 27, 2019 at 5:12 PM Pavel Tashev < pav...@wh...> wrote: > Hi, > > In my *.cfg file I have the following settings: > > [SESSION] > TargetCompID=SOMENAME > SocketConnectHost=SOMEURL > SocketConnectPort=443 > UseDataDictionary=Y > DefaultApplVerID=FIX.4.4 > AppDataDictionary=/var/quickfixj/automated/DICTIONARY.xml > > When I send MarketDataRequest the server (the client) returns a response > which DOES NOT contain tag 55 and my DICTIONARY does not contain it too. > BUT QuickifxJ returns an error saying that tag 55 is missing. I presume > that QuickfixJ does not use my dictionary but the default one which > contains and requires tag 55. > > The question is, what do I do wrong in my cfg file? Why QuickfixJ does not > load the dictionary? > > Regards. > |
|
From: Christoph J. <chr...@ma...> - 2019-08-27 14:21:19
|
Is this your complete config file? On 27.08.19 16:12, Pavel Tashev wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Hi, > > In my *.cfg file I have the following settings: > > [SESSION] > TargetCompID=SOMENAME > SocketConnectHost=SOMEURL > SocketConnectPort=443 > UseDataDictionary=Y > DefaultApplVerID=FIX.4.4 > AppDataDictionary=/var/quickfixj/automated/DICTIONARY.xml > > When I send MarketDataRequest the server (the client) returns a response which DOES NOT contain > tag 55 and my DICTIONARY does not contain it too. BUT QuickifxJ returns an error saying that tag > 55 is missing. I presume that QuickfixJ does not use my dictionary but the default one which > contains and requires tag 55. > > The question is, what do I do wrong in my cfg file? Why QuickfixJ does not load the dictionary? > > Regards. > > > _______________________________________________ > 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 |
|
From: Pavel T. <pav...@wh...> - 2019-08-27 14:12:41
|
Hi, In my *.cfg file I have the following settings: [SESSION] TargetCompID=SOMENAME SocketConnectHost=SOMEURL SocketConnectPort=443 UseDataDictionary=Y DefaultApplVerID=FIX.4.4 AppDataDictionary=/var/quickfixj/automated/DICTIONARY.xml When I send MarketDataRequest the server (the client) returns a response which DOES NOT contain tag 55 and my DICTIONARY does not contain it too. BUT QuickifxJ returns an error saying that tag 55 is missing. I presume that QuickfixJ does not use my dictionary but the default one which contains and requires tag 55. The question is, what do I do wrong in my cfg file? Why QuickfixJ does not load the dictionary? Regards. |
|
From: Colin D. <co...@ma...> - 2019-08-22 12:34:05
|
Pavel, Still not quite there when building symbol groups. MDReqGrp isn't really a tag (field), it's a conceptual grouping of fields. For each symbol, you need to do this: - Create a new field group for your message - Add the corresponding fields to the group (55 and 167, simple case, for equities, say) - Add the group to the message You also need to set the number of groups you've added. Take a look here: https://source.marketcetera.org/root/branches/4.0.x/core/src/main/java/org/marketcetera/quickfix/FIXMessageFactory.java lines 415-444 int numSymbols = 0; if(inInstruments != null) { numSymbols = inInstruments.size(); if(numSymbols == 0){ request.setInt(quickfix.field.NoRelatedSym.FIELD, numSymbols); } for(Instrument instrument : inInstruments) { if(instrument != null) { InstrumentToMessage<?> instrumentFunction = InstrumentToMessage.SELECTOR.forInstrument(instrument); Group symbolGroup = msgFactory.create(beginString, MsgType.MARKET_DATA_REQUEST, NoRelatedSym.FIELD); instrumentFunction.set(instrument, fixDictionary, quickfix.field.MsgType.ORDER_SINGLE, symbolGroup); // some weirdness for currencies symbolGroup.removeField(quickfix.field.Currency.FIELD); symbolGroup.removeField(quickfix.field.OrdType.FIELD); if(inExchange != null && !inExchange.isEmpty()) { symbolGroup.setField(new quickfix.field.SecurityExchange(inExchange)); } request.addGroup(symbolGroup); } } } else { request.setInt(quickfix.field.NoRelatedSym.FIELD, 0); } Some of this code is idiomatic, and won't translate directly to your application, but, the generate idea is there. Create the group, set the fields in the group, add the group to the message. On 8/22/19 2:33 AM, Pavel Tashev wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > cannot find symbol > symbol: class MDReqGrp > location: class quickfix.fix44.MarketDataRequest > > cannot find symbol > symbol: class MDReqGrp > location: class quickfix.fix44.MarketDataRequest > > On Thu, Aug 22, 2019 at 12:17 PM Pavel Tashev > <pav...@wh... > <mailto:pav...@wh...>> wrote: > > Ok, I change the code to this: > > charzero='0'; > charone='1'; > quickfix.fix44.MarketDataRequestmessage=newquickfix.fix44.MarketDataRequest(); > message.setField(newquickfix.field.MDReqID("EURUSD")); //262 > message.setField(newquickfix.field.SubscriptionRequestType(one)); > //263 > message.setField(newquickfix.field.MarketDepth(1)); //264 > message.setField(newquickfix.field.MDUpdateType(0)); // 265 > quickfix.fix44.MarketDataRequest.MDReqGrpgroupMDReqGrp=newquickfix.fix44.MarketDataRequest.MDReqGrp(); > groupMDReqGrp.set(newNoMDEntryTypes('2')); //267 > groupMDReqGrp.set(newMDEntryType(zero)); //269 > groupMDReqGrp.set(newMDEntryType(one)); //269 > message.addGroup(groupMDReqGrp); > quickfix.fix44.MarketDataRequest.InstrmtMDReqGrpgroupInstrmtMDReqGrp=newquickfix.fix44.MarketDataRequest.InstrmtMDReqGrp(); > groupInstrmtMDReqGrp.set(newNoRelatedSym(1)); //146 > message.addGroup(groupInstrmtMDReqGrp); > Session.sendToTarget(message, senderCompID, marketTargetCompID); > > I changed fix42 to fix44 because I use FIX.4.4. Maven now fires > this error: > > [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile > (default-compile) on project automated: Compilation failure: > Compilation failure: > [ERROR] > /var/quickfixj/automated/src/main/java/com/automated/Application.java:[318,41] > cannot find symbol > [ERROR] symbol: class MDReqGrp > [ERROR] location: class quickfix.fix44.MarketDataRequest > [ERROR] > /var/quickfixj/automated/src/main/java/com/automated/Application.java:[318,103] > cannot find symbol > [ERROR] symbol: class MDReqGrp > [ERROR] location: class quickfix.fix44.MarketDataRequest > [ERROR] > /var/quickfixj/automated/src/main/java/com/automated/Application.java:[324,41] > cannot find symbol > [ERROR] symbol: class InstrmtMDReqGrp > [ERROR] location: class quickfix.fix44.MarketDataRequest > [ERROR] > /var/quickfixj/automated/src/main/java/com/automated/Application.java:[324,117] > cannot find symbol > [ERROR] symbol: class InstrmtMDReqGrp > [ERROR] location: class quickfix.fix44.MarketDataRequest > [ERROR] -> [Help 1] > > On Wed, Aug 21, 2019 at 3:24 PM <tom...@up... > <mailto:tom...@up...>> wrote: > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> > Support: http://www.quickfixj.org/support/ > > > Hi Pavel, > > You are doing repeating groups all wrong. See here for how to > supply > repeating groups: > https://www.quickfixj.org/usermanual/2.0.0/usage/repeating_groups.html > > Regards, > -- > Tom Tempelaere > > -----Original Message----- > From: Pavel Tashev <pav...@wh... > <mailto:pav...@wh...>> > Sent: Wednesday, 21 August 2019 13:34 > To: qui...@li... > <mailto:qui...@li...> > Subject: [Quickfixj-users] The order of the tags in the > message I sent is > mixed > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> > Support: http://www.quickfixj.org/support/ > > > > > --- > This email has been checked for viruses by Avast antivirus > software. > https://www.avast.com/antivirus > > > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > <mailto:Qui...@li...> > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users -- Colin DuPlantis Chief Architect, Marketcetera Download, Run, Trade 888.868.4884 https://www.marketcetera.com |
|
From: Pavel T. <pav...@wh...> - 2019-08-22 09:33:46
|
cannot find symbol
symbol: class MDReqGrp
location: class quickfix.fix44.MarketDataRequest
cannot find symbol
symbol: class MDReqGrp
location: class quickfix.fix44.MarketDataRequest
On Thu, Aug 22, 2019 at 12:17 PM Pavel Tashev <
pav...@wh...> wrote:
> Ok, I change the code to this:
>
> char zero = '0';
> char one = '1';
> quickfix.fix44.MarketDataRequest message = new quickfix.fix44.
> MarketDataRequest();
>
> message.setField(new quickfix.field.MDReqID("EURUSD")); //262
> message.setField(new quickfix.field.SubscriptionRequestType(one)); //263
> message.setField(new quickfix.field.MarketDepth(1)); //264
> message.setField(new quickfix.field.MDUpdateType(0)); // 265
>
> quickfix.fix44.MarketDataRequest.MDReqGrp groupMDReqGrp = new
> quickfix.fix44.MarketDataRequest.MDReqGrp();
> groupMDReqGrp.set(new NoMDEntryTypes('2')); //267
> groupMDReqGrp.set(new MDEntryType(zero)); //269
> groupMDReqGrp.set(new MDEntryType(one)); //269
> message.addGroup(groupMDReqGrp);
>
> quickfix.fix44.MarketDataRequest.InstrmtMDReqGrp groupInstrmtMDReqGrp =
> new quickfix.fix44.MarketDataRequest.InstrmtMDReqGrp();
> groupInstrmtMDReqGrp.set(new NoRelatedSym(1)); //146
> message.addGroup(groupInstrmtMDReqGrp);
>
> Session.sendToTarget(message, senderCompID, marketTargetCompID);
>
> I changed fix42 to fix44 because I use FIX.4.4. Maven now fires this error:
>
> [ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile
> (default-compile) on project automated: Compilation failure: Compilation
> failure:
> [ERROR]
> /var/quickfixj/automated/src/main/java/com/automated/Application.java:[318,41]
> cannot find symbol
> [ERROR] symbol: class MDReqGrp
> [ERROR] location: class quickfix.fix44.MarketDataRequest
> [ERROR]
> /var/quickfixj/automated/src/main/java/com/automated/Application.java:[318,103]
> cannot find symbol
> [ERROR] symbol: class MDReqGrp
> [ERROR] location: class quickfix.fix44.MarketDataRequest
> [ERROR]
> /var/quickfixj/automated/src/main/java/com/automated/Application.java:[324,41]
> cannot find symbol
> [ERROR] symbol: class InstrmtMDReqGrp
> [ERROR] location: class quickfix.fix44.MarketDataRequest
> [ERROR]
> /var/quickfixj/automated/src/main/java/com/automated/Application.java:[324,117]
> cannot find symbol
> [ERROR] symbol: class InstrmtMDReqGrp
> [ERROR] location: class quickfix.fix44.MarketDataRequest
> [ERROR] -> [Help 1]
>
> On Wed, Aug 21, 2019 at 3:24 PM <tom...@up...> wrote:
>
>> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
>> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support:
>> http://www.quickfixj.org/support/
>>
>>
>> Hi Pavel,
>>
>> You are doing repeating groups all wrong. See here for how to supply
>> repeating groups:
>> https://www.quickfixj.org/usermanual/2.0.0/usage/repeating_groups.html
>>
>> Regards,
>> --
>> Tom Tempelaere
>>
>> -----Original Message-----
>> From: Pavel Tashev <pav...@wh...>
>> Sent: Wednesday, 21 August 2019 13:34
>> To: qui...@li...
>> Subject: [Quickfixj-users] The order of the tags in the message I sent is
>> mixed
>>
>> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
>> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support:
>> http://www.quickfixj.org/support/
>>
>>
>>
>>
>> ---
>> This email has been checked for viruses by Avast antivirus software.
>> https://www.avast.com/antivirus
>>
>>
>>
>> _______________________________________________
>> Quickfixj-users mailing list
>> Qui...@li...
>> https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>>
>
|
|
From: Christoph J. <chr...@ma...> - 2019-08-22 09:33:18
|
Hmm, looks as if you didn't declare the dependency on quickfixj in your pom.xml? But hard to tell without more info. Chris. On 22.08.19 11:17, Pavel Tashev wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Ok, I change the code to this: > > charzero='0'; > charone='1'; > quickfix.fix44.MarketDataRequestmessage=newquickfix.fix44.MarketDataRequest(); > message.setField(newquickfix.field.MDReqID("EURUSD")); //262 > message.setField(newquickfix.field.SubscriptionRequestType(one)); //263 > message.setField(newquickfix.field.MarketDepth(1)); //264 > message.setField(newquickfix.field.MDUpdateType(0)); // 265 > quickfix.fix44.MarketDataRequest.MDReqGrpgroupMDReqGrp=newquickfix.fix44.MarketDataRequest.MDReqGrp(); > groupMDReqGrp.set(newNoMDEntryTypes('2')); //267 > groupMDReqGrp.set(newMDEntryType(zero)); //269 > groupMDReqGrp.set(newMDEntryType(one)); //269 > message.addGroup(groupMDReqGrp); > quickfix.fix44.MarketDataRequest.InstrmtMDReqGrpgroupInstrmtMDReqGrp=newquickfix.fix44.MarketDataRequest.InstrmtMDReqGrp(); > groupInstrmtMDReqGrp.set(newNoRelatedSym(1)); //146 > message.addGroup(groupInstrmtMDReqGrp); > Session.sendToTarget(message, senderCompID, marketTargetCompID); > > I changed fix42 to fix44 because I use FIX.4.4. Maven now fires this error: > > [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile > (default-compile) on project automated: Compilation failure: Compilation failure: > [ERROR] /var/quickfixj/automated/src/main/java/com/automated/Application.java:[318,41] cannot find > symbol > [ERROR] symbol: class MDReqGrp > [ERROR] location: class quickfix.fix44.MarketDataRequest > [ERROR] /var/quickfixj/automated/src/main/java/com/automated/Application.java:[318,103] cannot > find symbol > [ERROR] symbol: class MDReqGrp > [ERROR] location: class quickfix.fix44.MarketDataRequest > [ERROR] /var/quickfixj/automated/src/main/java/com/automated/Application.java:[324,41] cannot find > symbol > [ERROR] symbol: class InstrmtMDReqGrp > [ERROR] location: class quickfix.fix44.MarketDataRequest > [ERROR] /var/quickfixj/automated/src/main/java/com/automated/Application.java:[324,117] cannot > find symbol > [ERROR] symbol: class InstrmtMDReqGrp > [ERROR] location: class quickfix.fix44.MarketDataRequest > [ERROR] -> [Help 1] > > On Wed, Aug 21, 2019 at 3:24 PM <tom...@up... <mailto:tom...@up...>> wrote: > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support: > http://www.quickfixj.org/support/ > > > Hi Pavel, > > You are doing repeating groups all wrong. See here for how to supply > repeating groups: > https://www.quickfixj.org/usermanual/2.0.0/usage/repeating_groups.html > > Regards, > -- > Tom Tempelaere > > -----Original Message----- > From: Pavel Tashev <pav...@wh... <mailto:pav...@wh...>> > Sent: Wednesday, 21 August 2019 13:34 > To: qui...@li... <mailto:qui...@li...> > Subject: [Quickfixj-users] The order of the tags in the message I sent is > mixed > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support: > http://www.quickfixj.org/support/ > > > > > --- > This email has been checked for viruses by Avast antivirus software. > https://www.avast.com/antivirus > > > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... <mailto:Qui...@li...> > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > > > _______________________________________________ > 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 |
|
From: Pavel T. <pav...@wh...> - 2019-08-22 09:17:22
|
Ok, I change the code to this:
char zero = '0';
char one = '1';
quickfix.fix44.MarketDataRequest message = new quickfix.fix44.
MarketDataRequest();
message.setField(new quickfix.field.MDReqID("EURUSD")); //262
message.setField(new quickfix.field.SubscriptionRequestType(one)); //263
message.setField(new quickfix.field.MarketDepth(1)); //264
message.setField(new quickfix.field.MDUpdateType(0)); // 265
quickfix.fix44.MarketDataRequest.MDReqGrp groupMDReqGrp = new
quickfix.fix44.MarketDataRequest.MDReqGrp();
groupMDReqGrp.set(new NoMDEntryTypes('2')); //267
groupMDReqGrp.set(new MDEntryType(zero)); //269
groupMDReqGrp.set(new MDEntryType(one)); //269
message.addGroup(groupMDReqGrp);
quickfix.fix44.MarketDataRequest.InstrmtMDReqGrp groupInstrmtMDReqGrp = new
quickfix.fix44.MarketDataRequest.InstrmtMDReqGrp();
groupInstrmtMDReqGrp.set(new NoRelatedSym(1)); //146
message.addGroup(groupInstrmtMDReqGrp);
Session.sendToTarget(message, senderCompID, marketTargetCompID);
I changed fix42 to fix44 because I use FIX.4.4. Maven now fires this error:
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile
(default-compile) on project automated: Compilation failure: Compilation
failure:
[ERROR]
/var/quickfixj/automated/src/main/java/com/automated/Application.java:[318,41]
cannot find symbol
[ERROR] symbol: class MDReqGrp
[ERROR] location: class quickfix.fix44.MarketDataRequest
[ERROR]
/var/quickfixj/automated/src/main/java/com/automated/Application.java:[318,103]
cannot find symbol
[ERROR] symbol: class MDReqGrp
[ERROR] location: class quickfix.fix44.MarketDataRequest
[ERROR]
/var/quickfixj/automated/src/main/java/com/automated/Application.java:[324,41]
cannot find symbol
[ERROR] symbol: class InstrmtMDReqGrp
[ERROR] location: class quickfix.fix44.MarketDataRequest
[ERROR]
/var/quickfixj/automated/src/main/java/com/automated/Application.java:[324,117]
cannot find symbol
[ERROR] symbol: class InstrmtMDReqGrp
[ERROR] location: class quickfix.fix44.MarketDataRequest
[ERROR] -> [Help 1]
On Wed, Aug 21, 2019 at 3:24 PM <tom...@up...> wrote:
> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support:
> http://www.quickfixj.org/support/
>
>
> Hi Pavel,
>
> You are doing repeating groups all wrong. See here for how to supply
> repeating groups:
> https://www.quickfixj.org/usermanual/2.0.0/usage/repeating_groups.html
>
> Regards,
> --
> Tom Tempelaere
>
> -----Original Message-----
> From: Pavel Tashev <pav...@wh...>
> Sent: Wednesday, 21 August 2019 13:34
> To: qui...@li...
> Subject: [Quickfixj-users] The order of the tags in the message I sent is
> mixed
>
> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
> QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support:
> http://www.quickfixj.org/support/
>
>
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
>
>
>
> _______________________________________________
> Quickfixj-users mailing list
> Qui...@li...
> https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>
|
|
From: <tom...@up...> - 2019-08-21 12:24:26
|
Hi Pavel, You are doing repeating groups all wrong. See here for how to supply repeating groups: https://www.quickfixj.org/usermanual/2.0.0/usage/repeating_groups.html Regards, -- Tom Tempelaere -----Original Message----- From: Pavel Tashev <pav...@wh...> Sent: Wednesday, 21 August 2019 13:34 To: qui...@li... Subject: [Quickfixj-users] The order of the tags in the message I sent is mixed QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus |
|
From: Christoph J. <chr...@ma...> - 2019-08-21 12:21:02
|
QFJ orders the tags based on the order in the default data dictionary. If you want to change this order you need to re-generate the message classes. https://www.quickfixj.org/usermanual/2.1.0/usage/codegen.html The easiest is probably when you change the default FIX4.4 dictionary that is packaged with QFJ and rebuild. However, the actual problem might be that you are not adding the repating groups correctly to the message. NoMDEntryTypes is a repeating group and needs to be added differently than the flat tags. https://www.quickfixj.org/usermanual/2.1.0/usage/repeating_groups.html Cheers, Chris. On 21.08.19 13:34, Pavel Tashev wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Hi, > > I construct a message in the following way: > > > quickfix.fix44.MarketDataRequestmessage=newquickfix.fix44.MarketDataRequest(); > charzero='0'; > charone='1'; > message.setField(newquickfix.field.MDReqID("EURUSD")); // 262 > message.setField(newquickfix.field.SubscriptionRequestType(one)); // 263 > message.setField(newquickfix.field.MarketDepth(1)); // 264 > message.setField(newquickfix.field.MDUpdateType(0)); // 265 > message.setField(newquickfix.field.NoMDEntryTypes(2)); // 267 > message.setField(newquickfix.field.MDEntryType(zero)); // 269 > message.setField(newquickfix.field.MDEntryType(one)); // 269 > message.setField(newquickfix.field.NoRelatedSym(1)); // 146 > message.setField(newquickfix.field.SecurityID("4001")); // 48 > message.setField(newquickfix.field.SecurityIDSource("8")); // 22 > Session.sendToTarget(message, senderCompID, marketTargetCompID); > > I also load a dictionary in which tags 146, 48 and 22 are after tag 269. But the message sent to > the trader looks like this: > > 8=FIX.4.4^A9=121^A35=V^A34=2^A49=USERNAME^A52=20190821-11:11:42.045^A56=TRADER^A22=8^A48=4001^A146=1^A262=EURUSD^A263=1^A264=1^A265=0^A267=2^A269=1^A10=191^A > > The confusing thing is that tags 146, 48 and 22 are mixed and moved before tag 262 even though the > dictionary doesn't allow that. > > I have two suggestion why this may happen: > > * Quickfix/J mixes the tags because of an issue or because I miss some configuration. > * The dictionary provided by the trader is not loaded and I use some defaultdictionary which > brings me to this issue. > > I don't know if that would help but here is the cfg file: > > [DEFAULT] > ConnectionType=initiator > BeginString=FIX.4.4 > StartTime=08:30:00 > EndTime=21:30:00 > ReconnectInterval=5 > HeartBtInt=5 > LogonTimeout=60 > FileStorePath=target/data/sessions/ > FileLogPath=target/data/logs/ > SenderCompID=USERNAME > UseDataDictionary=Y > SocketUseSSL=Y > [SESSION] > TargetCompID=TRADER > SocketConnectHost=URL_OF_THE_TRADER > SocketConnectPort=443 > DataDictionary=/var/quickfixj/automated/DICTIONARY.xml > > 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 |