|
From: Herman H. <hh...@bl...> - 2015-05-18 14:39:46
|
Hi everyone, First time sending an email out to the group...I apologize if it is improperly formatted or anything, or if this is the wrong place for this type of question. I've run into an issue where I am trying to get executions from an exchange, and they are delivering them in a customized message type with the FIX execution report embedded inside a FIX tag (213), wrapped in an XML field: 8=FIX.4.2 9=472 35=n 34=15 369=11 52=20150512-17:17:29.197 43=Y 49=TESTEP 50=G 56=PMEBBBN 57=G 122=20150512-17:08:25.119 212=357 213=<RTRF>8=FIX.4.2 9=321 35=8 34=2893 369=2893 52=20150512-17:08:25.119 49=TESTEP 50=G 56=DSD000N 57=DUMMY 143=US,IL 1=00521 6=0 11=ACP1431450505080 14=0 17=99131:14769 20=0 37=999893893 38=30 39=0 40=2 41=0 44=9980.5 48=998900 54=2 55=90 59=0 60=20150512-17:08:25.117 107=0EJZ4 150=0 151=30 167=FUT 432=20150512 1028=Y 1091=N 9717=ACP1431450505080 10=083 </RTRF> 10=226 I don't really care about the rest of the contents of the "n" message, I only care about the contents of tag 213. Needless to say, this is causing me issues for a couple of reasons: 1.) QuickFix/J's AbstractIoHandler is choking because it is trying to split the entirety of the FIX message via the \x001 delimiter, so it doesn't "understand" the end XML tag as a field. How do I get around this? May 12, 2015 12:17:29 PM quickfix.mina.AbstractIoHandler messageReceived SEVERE: Invalid message: bad tag format: For input string: "</RTRF>^A10" 2.) Even if I can get past the AbstractIoHandler, I know I can just parse the message as one big string in the fromApp callback and get my data that way, but I just wanted to confirm...I can't just process 213 as a single StringField and get that entire embedded FIX message (with XML) can I? Thanks for the help, definitely appreciated. Regards, Herman |
|
From: Christoph J. <chr...@ma...> - 2015-05-19 09:38:06
|
Hi, welcome to the list. This is the right place to ask. :) re 1: could you paste the message contents with a delimiter that does not appear elsewhere in the message? Maybe pipe separated or hash spearated? That way I could replace the pipe or hash characters with the SOH character (start-of-heading, ascii value = 1) to read the message into a unit test. Especially important is whether the message between the RTRF tags is also separated by the default SOH characters? IMHO the problem is in the FixMessageDecoder, which gets the messages from the wire and puts them into the AbstractIoHandler. re 2: I don't understand what you mean. You could just call getString(213) on the message, or more correctly on the header since 213 is a header tag. That *should* work (but never tested it with that message type to be honest). Cheers, Chris. On 18/05/15 15:05, Herman Hung wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > > Hi everyone, > > First time sending an email out to the group…I apologize if it is improperly formatted or > anything, or if this is the wrong place for this type of question. > > I’ve run into an issue where I am trying to get executions from an exchange, and they are > delivering them in a customized message type with the FIX execution report embedded inside a FIX > tag (213), wrapped in an XML field: > > 8=FIX.4.2 9=472 35=n 34=15 369=11 52=20150512-17:17:29.197 43=Y 49=TESTEP 50=G 56=PMEBBBN 57=G > 122=20150512-17:08:25.119 212=357 *213=<RTRF>8=FIX.4.2 9=321 35=8 34=2893 369=2893 > 52=20150512-17:08:25.119 49=TESTEP 50=G 56=DSD000N 57=DUMMY 143=US,IL 1=00521 6=0 > 11=ACP1431450505080 14=0 17=99131:14769 20=0 37=999893893 38=30 39=0 40=2 41=0 44=9980.5 48=998900 > 54=2 55=90 59=0 60=20150512-17:08:25.117 107=0EJZ4 150=0 151=30 167=FUT 432=20150512 1028=Y 1091=N > 9717=ACP1431450505080 10=083 </RTRF>* 10=226 > > I don’t really care about the rest of the contents of the “n” message, I only care about the > contents of tag 213. > > Needless to say, this is causing me issues for a couple of reasons: > > 1.)QuickFix/J’s AbstractIoHandler is choking because it is trying to split the entirety of the FIX > message via the \x001 delimiter, so it doesn’t “understand” the end XML tag as a field. How do I > get around this? > > *May 12, 2015 12:17:29 PM quickfix.mina.AbstractIoHandler messageReceived* > > *SEVERE: Invalid message: bad tag format: For input string: "</RTRF>^A10"* > > 2.)Even if I can get past the AbstractIoHandler, I know I can just parse the message as one big > string in the fromApp callback and get my data that way, but I just wanted to confirm…I can’t just > process 213 as a single StringField and get that entire embedded FIX message (with XML) can I? > > Thanks for the help, definitely appreciated. > > Regards, > > Herman > > > > ------------------------------------------------------------------------------ > One dashboard for servers and applications across Physical-Virtual-Cloud > Widest out-of-the-box monitoring support with 50+ applications > Performance metrics, stats and reports that give you Actionable Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users -- Christoph John Development & Support Direct: +49 241 557080-28 Mailto:Chr...@ma... http://www.macd.com <http://www.macd.com/> ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- MACD GmbH Oppenhoffallee 103 D-52066 Aachen Tel: +49 241 557080-0 | Fax: +49 241 557080-10 Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- take care of the environment - print only if necessary |
|
From: sundar <sun...@cu...> - 2019-08-18 08:05:34
|
Hi All I am getting issues to parse the FIX message with <RTRF></RTRF> Tag embedded in the FIX message string . Can anyone assist Thanks in Advance for your help Thanks Sundar -- Sent from: http://quickfix-j.364392.n2.nabble.com/ |
|
From: Christoph J. <chr...@ma...> - 2019-08-18 11:03:21
|
Do you have an example? Which issues do you have? Am 18. August 2019 10:05:11 MESZ schrieb sundar <sun...@cu...>: >QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ >QuickFIX/J Support: http://www.quickfixj.org/support/ > > >Hi All > > I am getting issues to parse the FIX message with <RTRF></RTRF> Tag >embedded in the FIX message string . Can anyone assist > >Thanks in Advance for your help > >Thanks >Sundar > > > >-- >Sent from: http://quickfix-j.364392.n2.nabble.com/ > > >_______________________________________________ >Quickfixj-users mailing list >Qui...@li... >https://lists.sourceforge.net/lists/listinfo/quickfixj-users |
|
From: sundar <sun...@cu...> - 2019-08-19 11:15:01
|
Hi AllI am getting the below issue while processing the embedded fix message . QuickFix.MessageParseError: Could not parse message: Error at position (509) while parsing msg (8=FIX.4.29=50135=n34=5369=352=20190819-07:55:16.78043=Y49=DUMMY50=G56=DUMMY57=DUMMY122=20190819-07:51:43.657143=IN212=370213=*8=FIX.4.29=33435=834=841369=84152=20190819-07:51:43.86349=DUMMY50=G56=8H1000N57=DUMMY143=US,IL1=ACP6=011=DUMMY14=017=99530:1300620=037=995135386938=7839=040=241=044=586648=99787054=155=P$59=060=20190819-07:51:43.854107=0WSV9150=0151=78167=FUT432=201908191028=Y5979=15662011038548014509717=DUMMY10=096*10=034)System.FormatException: Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Convert.ToInt32(String value) at QuickFix.Message.ExtractField(String msgstr, Int32& pos, DataDictionary sessionDD, DataDictionary appDD) --- End of inner exception stack trace --- at QuickFix.Message.ExtractField(String msgstr, Int32& pos, DataDictionary sessionDD, DataDictionary appDD) at QuickFix.Message.FromString(String msgstr, Boolean validate, DataDictionary sessionDD, DataDictionary appDD, IMessageFactory msgFactory, Boolean ignoreBody) at QuickFix.Message.FromString(String msgstr, Boolean validate, DataDictionary sessionDD, DataDictionary appDD, IMessageFactory msgFactory) at QuickFix.MessageBuilder.Build() at QuickFix.Session.Next(MessageBuilder msgBuilder) at QuickFix.Session.NextMessage(String msgStr) at QuickFix.Session.Next(String msgStr) at QuickFix.SocketInitiatorThread.ProcessStream() at QuickFix.SocketInitiatorThread.Read()Thanks in Advance for your helpThanksSundar -- Sent from: http://quickfix-j.364392.n2.nabble.com/ |
|
From: sundar <sun...@cu...> - 2019-08-19 11:16:28
|
Hi AllI am getting the below issue while processing the embedded fix message . QuickFix.MessageParseError: Could not parse message: Error at position (509) while parsing msg (8=FIX.4.29=50135=n34=5369=352=20190819-07:55:16.78043=Y49=DUMMY50=G56=DUMMY57=DUMMY122=20190819-07:51:43.657143=IN212=370213=*8=FIX.4.29=33435=834=841369=84152=20190819-07:51:43.86349=DUMMY50=G56=8H1000N57=DUMMY143=US,IL1=ACP6=011=DUMMY14=017=99530:1300620=037=995135386938=7839=040=241=044=586648=99787054=155=P$59=060=20190819-07:51:43.854107=0WSV9150=0151=78167=FUT432=201908191028=Y5979=15662011038548014509717=DUMMY10=096*10=034)System.FormatException: Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Convert.ToInt32(String value) at QuickFix.Message.ExtractField(String msgstr, Int32& pos, DataDictionary sessionDD, DataDictionary appDD) --- End of inner exception stack trace --- at QuickFix.Message.ExtractField(String msgstr, Int32& pos, DataDictionary sessionDD, DataDictionary appDD) at QuickFix.Message.FromString(String msgstr, Boolean validate, DataDictionary sessionDD, DataDictionary appDD, IMessageFactory msgFactory, Boolean ignoreBody) at QuickFix.Message.FromString(String msgstr, Boolean validate, DataDictionary sessionDD, DataDictionary appDD, IMessageFactory msgFactory) at QuickFix.MessageBuilder.Build() at QuickFix.Session.Next(MessageBuilder msgBuilder) at QuickFix.Session.NextMessage(String msgStr) at QuickFix.Session.Next(String msgStr) at QuickFix.SocketInitiatorThread.ProcessStream() at QuickFix.SocketInitiatorThread.Read()Thanks in Advance for your helpThanksSundar -- Sent from: http://quickfix-j.364392.n2.nabble.com/ |
|
From: Philip W. <ph...@wh...> - 2019-08-19 11:22:09
|
I think you want QuickFIXN’s mailing list. That’s not Java code. http://quickfixn.org/help Best, Philip Whitehouse > On 19 Aug 2019, at 12:16, sundar <sun...@cu...> wrote: > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > Hi All I am getting the below issue while processing the embedded fix message . QuickFix.MessageParseError: Could not parse message: Error at position (509) while parsing msg ( 8=FIX.4.29=50135=n34=5369=352=20190819-07:55:16.78043=Y49=DUMMY50=G56=DUMMY57=DUMMY 122=20190819-07:51:43.657143=IN212=370213=8=FIX.4.29=33435=834=841369=84152=20190819-07:51:43.863 49=DUMMY50=G56=8H1000N57=DUMMY143=US,IL1=ACP6=011=DUMMY14=017=99530:1300620=037=995135386938=78 39=040=241=044=586648=99787054=155=P$59=060=20190819-07:51:43.854107=0WSV9150=0151=78167=FUT432=201908191028=Y 5979=15662011038548014509717=DUMMY10=09610=034) System.FormatException: Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Convert.ToInt32(String value) at QuickFix.Message.ExtractField(String msgstr, Int32& pos, DataDictionary sessionDD, DataDictionary appDD) --- End of inner exception stack trace --- at QuickFix.Message.ExtractField(String msgstr, Int32& pos, DataDictionary sessionDD, DataDictionary appDD) at QuickFix.Message.FromString(String msgstr, Boolean validate, DataDictionary sessionDD, DataDictionary appDD, IMessageFactory msgFactory, Boolean ignoreBody) at QuickFix.Message.FromString(String msgstr, Boolean validate, DataDictionary sessionDD, DataDictionary appDD, IMessageFactory msgFactory) at QuickFix.MessageBuilder.Build() at QuickFix.Session.Next(MessageBuilder msgBuilder) at QuickFix.Session.NextMessage(String msgStr) at QuickFix.Session.Next(String msgStr) at QuickFix.SocketInitiatorThread.ProcessStream() at QuickFix.SocketInitiatorThread.Read() Thanks in Advance for your help Thanks Sundar > Sent from the QuickFIX/J mailing list archive at Nabble.com. > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users |